火星啊 发表于 2019-8-2 12:56

app从smali到java再到动态so调试

{:301_998:}    我也是一个小白   只是记录自己从0分析的过程    也欢迎大家跟我一起学习讨论   (我也打算跟论坛大神们一样   做一整个从0开始的逆向系列   然后从拿到apk一直分析加密以及逆向然后到一个成品的软件   也希望大家多多支持)

首先拿到apk利用反编译查看smali代码 找到包名入口查看onCreate函数找到点击函数事假函数




查看一下java代码
1620235

然后点击过去查看ni的方法


这里NI是个native层的调用用了静态方法修饰
利用ida把so拖进去反编译


找到导出函数窗口查看注册方法   只找到了此jni_onload方法说明这个so只利用了动态注册直接跟进


点进去AD 也就是j__Z2ADv




这里可能是反调试


检测了pid的值是否在调试状态返回动态注册函数接着分析


好了静态分析完毕了接下来利用ida进行动态调试


附加的时候提示我端口被占用那再切换一个端口试试


接下来在jni_onload进行下段


然后勾选三项
1620262

成功在jni_onload断下来接着根据静态分析的结果在调用ad函数的地方跟进修改指令


同步hex操作窗口进行修改然后f2提交接着往下执行动态注册函数位置


由此推出
1620266

动态注册了bc这个函数然后f9直接运行下去


取消3项


计算偏移地址下段然后在手机上随意输入一个密码


再在静态ida中逐步跟进发现是个RC4的加密 再去此函数地址下段


成功断下


这里成功得出我输入的字符串信息


这里就是破解出来的密码啦


好啦分析也就到这里了   下一个帖子我打算分析一款app的协议分析 以及利用Android Studio动态调试smali代码   后面还有脱壳以及如何hook   (如果有对手游方面感兴趣的朋友可以留言也可以讲讲注入 内存解密dll以及lua文件)

火星啊 发表于 2019-8-2 18:41

Hmily 发表于 2019-8-2 17:42
原文是从word复制过来的?太乱了,我编辑了下,好像还缺少3个图?你检查下。

哈哈哈头一次在吾爱写帖子编辑的有点乱

Hmily 发表于 2019-8-2 17:42

原文是从word复制过来的?太乱了,我编辑了下,好像还缺少3个图?你检查下。

Rolanju 发表于 2019-8-2 19:44

支持楼主分享,越详细越好{:1_893:}

xubo 发表于 2019-8-2 20:03

学习学习 感谢分享

无敌的巴啦啦 发表于 2019-8-2 23:07

学习了 最近也有这方面的想法

FUcksir 发表于 2019-8-4 17:23

dalao,能分析下360壳的so吗,据说有classes2和签名校验,好头疼

zhvfeng 发表于 2019-8-6 09:44

写的很好,慢慢学习

wkf 发表于 2019-8-14 23:49

不错~~这个crackerme01的地址是什么? 我也去下载玩玩

majia4075669072 发表于 2019-8-15 00:09

学习了,东西有点多,其实最底层还是看ARM汇编怎么写的吧。
页: [1] 2
查看完整版本: app从smali到java再到动态so调试