|
吾爱游客
发表于 2022-9-14 15:39
1、申 请 I D:zhusong
2、个人邮箱:song.zhu@lasong.com.cn
ANDROID逆向工程-修改SMAIL源码
问题
在我们反编译apk之后, 再重新打包并签名之后, 打开应用闪退, 这是应用针对签名再次做了一次校验, 如果签名不对, 就关闭应用
思路
那么我们的思路也很简单, 找到判断的地方, 修改smail源码, 跳过这个签名的判断
步骤
1. 使用apktool 反编译apk, 得到反编译后的文件夹
2. 查看AndroidManifest.xml, 查看apk的应用类与启动类
3. 查看apk的Java代码, 方法很多
1. 最简单的, jadx-gui, 可以查看apk/dex/jar代码, 因为不是直接的应用程序, 每次打开会占用终端, 所以写了个脚本, 结合Alfred可以快速启动
2. dex2jar 和 JD-GUI, 使用dex2jar导出jar包, 然后用JD-GUI查看jar包源码
4. 找到应用类与启动类, 查看源码, 找到作为判断的地方, 这里使用jadx-gui演示
5. 切换到smail, 找到onCreate方法, 在一步步跟踪, 找到判断条件的地方
5.1 smail代码调试
* 拷贝smail文件夹 Android Stuido 项目中
* 工具栏下拉的Edit Configurations
* 点击+号选择Remote
* 配置Remote
* Debug模式启动应用程序
* 找到应用进程ID
* 绑定调试程序到
* 工具栏下拉的Edit Configurations的位置, 选择我们新建的Remote配置
* 运行菜单栏Run 选择 Debug "smail debug"
* 开始调试smail代码
6. 修改, 我们自己签名的肯定跟原包的签名不一样, 那我们就会执行finish, 我们把这个条件改成反向的, 不就跳过这个判断了嘛, 使用文本编辑软件, 修改if-eqz为if-nez, 保存文件
7. 重新打包签名, 参照上篇 00:ANDROID逆向工程-APKTOOL重建失败
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|