ELFF-DUMP-FIX
RESP ini mencakup dua util tentang pembuangan dan memperbaiki lengan ELF32/ELF64 dari memori.
- membuang
- Jalankan di Android, dapat membuang peri dari memori proses dan memperbaikinya, membangun kembali header bagian untuk analisis IDA yang lebih baik.
- sofix
- Jalankan di PC, dapat memperbaiki file ELF yang dibuang dari memori dan membangun kembali header bagian untuk analisis IDA yang lebih baik.
Target utamanya adalah untuk membangun kembali header bagian elf dengan memori yang dibuang. Penggunaan dalam Breaking dikemas jadi file seperti upx atau sekitar 360 libjiagu.so
Membangun
membuang
- Jalur output adalah aplikasi/lib/armeabi-v7a/dump
sofix
- Di Linux/Mac, pastikan dentang/GCC diinstal, cukup jalankan ./build-fix.sh
- Di jendela, itu dapat dibangun di Mingw, tetapi tidak diuji.
Howtouse
- sofix
- Params <src_so_path> <sase_addr_in_memory_in_hex> <Un out_so_path>
- <src_so_path> File ELF yang dibuang dari memori. (Anda dapat menggunakan DD atau IDA Debugger membuang file ELF dari proses Android)
- <base_addr_in_memory_in_hex> basis memori untuk file elf yang dibuang dari memori, jika Anda tidak tahu, pass 0 ok
- <out_so_path> file output
- contoh
- ./sofix dibuang.so 0x6f5a4000 b.so
- membuang
- Ini dijalankan di ponsel android
- Pastikan ponsel Anda memiliki akses root.
- Dorong ke/Data/Lokal/TMP dan Grant +X seperti ini
- ADB PUSH APP/LIBS/ARMEBI-V7A/DUMP/DATA/LOKAL/TMP/&& ADB Shell CHMOD 777/DATA/LOKAL/TMP/DUMP
- Gunakan ADB Shell untuk memasukkan ponsel Anda dan beralih ke Pengguna Root dengan perintah SU.
- params <base_hex> <end_hex> [is-stop-process-before-dump] [is-fix-so-after-dump]
- ID proses yang ingin Anda buang
- <base_hex> Alamat mulai peri yang ingin Anda buang dalam memori proses, Anda bisa mendapatkannya dengan
cat /proc/<pid>/maps - <end_hex> Alamat akhir peri yang ingin Anda buang dalam memori proses, Anda bisa mendapatkannya dengan
cat /proc/<pid>/maps - Jalur output ELF tetap di ponsel Anda.
- [is-stop-Process-before-dump] 0/1 harus mengirim Sigal ke proses sebelum melakukan pekerjaan dump, berguna di beberapa aplikasi anti dumping. Jika tidak ada anti dumping pada proses target Anda, 0 baik -baik saja
- [IS-FIX-so-after-dump] 0/1 harus melakukan pekerjaan perbaikan dan pembangunan kembali header bagian, jika Anda meneruskan, itu akan mencoba memperbaiki peri setelah dibuang.
- contoh
- Jika Anda ingin membuang libc.so, dan Anda/proc/[pid]/peta seperti ini
40105000-4014c000 r-xp 00000000 b3:19 717 /system/lib/libc.so
4014c000-4014d000 ---p 00000000 00:00 0
4014d000-4014f000 r--p 00047000 b3:19 717 /system/lib/libc.so
4014f000-40152000 rw-p 00049000 b3:19 717 /system/lib/libc.so
40152000-40160000 rw-p 00000000 00:00 0
- ./dump 1148 0x40105000 0x40160000 ./out.so 0 1
- Buang ke 40160000 bukan 40152000 adalah karena memori ELF .BSS jika ada juga harus dibuang, proses perbaikan tergantung padanya.
Bandingkan antara No-Fix dan Fixed Elf

