2015年11月2日星期一

iOS(九)内存dump应用&手动解密


1.获取应用Mach-o头信息
otool -l /var/mobile/Applications/xxxx/coyote.app/coyote >> /tmp/coyote.txt
搜索LC_ENCRYPTION_INFO,其中cryptoff为混淆代码在文件中的偏移(不包括头部信息,文件的前4096字节),cryptsize为混淆代码的大小,cryptid由于指示在将代码有文件加载到内存中是否需要解混淆

2.gdb附加进程
先获取应用pid
ps aux | grep coyote
gdb -p pid
3.获取进程基址
gdb中使用:info sh
获取到coyote基址为:0xe0000
4.计算解密后应用内存位置
起始位置:基址+cryptoff偏移=0xe0000+hex(16384)=0xe4000
终止位置:基址+cryptoff偏移+cryptsize混淆代码大小=0xe0000+hex(16384+5357568)=0x600000
5.dump解密后的应用
dump binary memory dump.bin 0xe4000 0x600000

没有评论:

发表评论

zip伪加密

 # 0x1 前言      最近分析两个apk, 将后缀改为zip后,解压提示需要密码: `7z l -slt *.zip` 可以查看zip包内文件加密情况,大部分文件都如下图未标记加密: 但classes.dex、AndroidManifest.xml等关键文件标记使用Zip...