7

Android安全–一次简单的脱壳Dump dex实践

 3 years ago
source link: https://blogread.cn/it/article/7713?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
您现在的位置首页 --> 安全 --> Android安全–一次简单的脱壳Dump dex实践

Android安全–一次简单的脱壳Dump dex实践

浏览:1274次  出处信息

   这篇脱壳是参考别人自己进行的一次简单的实践,主要是为了了解脱壳的流程以及工具的使用。

   下面直接进入正题吧:

   例子下载地址:

   链接: http://pan.baidu.com/s/1c08Ufeg 密码: n8dc

   首先把apk后缀改成.zip打开,发现dex文件只有1.23kb,所以真正的代码肯定不在这里,而是在运行中解密出来动态加载的。

   话不多说,直接上工具,首先找到IDA目录dbgsrv下面的android_server文件,然后push到手机上面,然后加上可执行权限,再运行。如图所示:

   

2015-07-30_125928

   运行后在端口23946端口监听。

   安装apk文件。

   2015-07-30_125641

   端口转发,让IDA可以连接本地端口进行远程调试。

   以调试模式启动程序:

   adb shell am start -D -n 包名/包名+类名

   程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,AndroidManifest.xml文件可以使用apktool工具反编译得到。

   image

   然后打开IDA,attach要调试的进程:

   

2015-07-30_130432

   hostname设为本机127.0.0.1

   

2015-07-30_130523

   

2015-07-30_130459

   找到应用的进行,并记下进程号:

   

2015-07-30_130646

   进程号为2696,使用 forward jdwp:<pid> 转换端口以连接到指定的 JDWP 进程。

   使用jdb附加调试应用程序。

   

2015-07-30_131010

   然后找到程序加载的模块libdvm.so,找到其中的函dvmdexfileopenpartialPKviPP6DvmDex,在这个函数下断点。

   

2015-07-30_093446

   

2015-07-30_093538

   

2015-07-30_093556

   为什么要在这个函数下断点,因为这个函数是加载dex文件的,R0就是加载的dex文件的地址。

   然后点击IDA的继续,程序便会断在这个函数上面。

   

2015-07-30_112539

   这时查看R0的值,然后显示其内存如下:

   

2015-07-30_112954

   

2015-07-30_113029

   我们看到了dex文件的标志。

   然后打开idc脚本,修改dump的内存起始地址和结束地址,起始地址就是R0的值,结束地址就是R0加上dex文件的大小,然dex文件的大小在dex header的0×20处,也就是0xFAEB4。

   

2015-07-30_113131

   

2015-07-30_113545

   点击run,之后会在D盘下面生成一个1M左右的dex文件,这就是我们dump出来的dex文件。

   使用dex2jar转成jar文件,再使用jd-gui.exe打开,得到程序代码:

   

2015-07-30_124918

   也可以把dex文件替换回去,打包运行。

   就是一个简单的例子,也是为了让自己加深印象,熟悉工具的使用,希望大家能够自动手动脱下壳~

建议继续学习:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK