CwithW 发表于 2017-3-14 20:25

安卓某款使用Unity引擎的图片查看软件破解实例

安卓某款使用Unity引擎的图片查看软件逆向实例

使用工具:
Fiddler(抓包)
安卓模拟器
Jd-gui(用来查看APK文件)
Apktool(用来反编译和回编译apk文件)
.NET Reflector (用于查看dll文件)
+ Reflexil插件v2.1(用于修改dll文件,Reflector本身没有修改功能)
Search And Replace(搜索字符串)
Notepad++(文本编辑器)
目标软件:
(原版APK)链接: https://pan.baidu.com/s/1jIQGypw 密码: srgj

教程:
1.        首先在模拟器内安装程序,用Fiddler抓包看看能不能抓到些有用的信息。

可以看到,当登录时,返回了一个xml形式的字符串,为(用户ID*用户邀请码*VIP到期日期)
首先会想到直接用Fiddler修改返回值,经测试是可行的,但是我们要做的是逆向apk文件

2.        使用jd-gui打开apk文件,查看AndroidManifest.xml找到启动器Activity,并找到onCreate(Bundle b)方法


发现居然是使用Unity制作的,那就不能使用Java方式修改了。
查阅资料得知,安卓Unity的文件放在APK\assets\bin\Data\Managed里,最主要的文件是Assembly-CSharp.dll,而且是可以使用.NET Reflector直接打开的。
也不知道为什么dll可以在安卓上运行。
2.5.        APK\res\values\string.xml下空空如也,说明字符串是硬写在程序里的。

3.反编译apk,使用.NET Reflector打开APK\assets\bin\Data\Managed\Assembly-CSharp.dll文件,并导出以便于搜索字符串。(右键根目录-Export Source Code-选择导出文件夹)

4.尝试直接搜索字符串VIP,结果还真搜到了赋值语句

5.打开LoginController.cs分析可得出在<ILogin>c__Iterator4类下的MoveNext() : Boolean 方法是处理登陆的


6.得知了方法位置,在.NET Reflector里打开修改。
打开.NET Reflector,找到LoginController/ <ILogin>c__Iterator4/MoveNext(),此时能看到C#格式的复制语句,但是Reflector是没有直接编辑的功能的。
状态栏Tools里选择Reflexil v2.1打开插件界面,在插件界面里找到VipExpTime的赋值语句。

将123-126行删除(Shift选选中-右键Delete),在call DateTime::Parse(System String)前加一个产生一个值为” 3017/3/16 19:11:58”的字符串的语句,这样VIP处理的返回值就一直是3017年了。
(选中DateTime::Parse(System String)行-右键Create New-OpCode:ldstr;Operand type=string;Operand=3017/3/16 19:11:58-点击右边的Insert Before Select)
(图片上已经刷新过了)

7.右键左边树形图里的MoveNext()方法,选择Reflexil-Update Reflector object model,可以刷新Reflector分析出的代码。(此步非必需)

8.保存(右键树形图根-Reflexil-Save as-覆盖反编译的apk里的dll文件)

9.回编译,模拟器上运行,成功


青白Pallor 发表于 2017-3-14 21:17

新人学习中{:5_117:}

asonicas 发表于 2017-3-14 23:16

谢谢楼主分享,又有可以学习的了

V58787 发表于 2017-4-8 10:59

谢谢楼主分享 学习下

yesong190 发表于 2018-1-3 10:06

在找安卓逆向的学习学习,谢谢分享

ghostxu 发表于 2022-1-28 11:01

共同努力,共同进步

别管我了行 发表于 2022-4-20 04:29

zg2600 发表于 2022-6-5 00:58

[吾爱汇编论坛52HB.COM]-支持一下,希望楼主做的更好,加油!感谢楼主分享,支持一下!!做的不错哦,楼主加油,期待更好的作品!

天使替我爱你 发表于 2022-6-5 01:15

谢谢大佬分享,大佬万福

凌夏随缘 发表于 2022-6-8 14:02

谢谢大佬分享
页: [1] 2
查看完整版本: 安卓某款使用Unity引擎的图片查看软件逆向实例