【逆向分析】一个Crackme软件的加载流程

查看 99|回复 9
作者:lianquke   
本来没啥想发的,但感觉他这个软件的加载流程很有趣,就分析记录一下。
原帖地址:https://bbs.binmt.cc/thread-98991-1-1.html


屏幕截图 2023-01-07 211721.jpg (83.41 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

一、看


IMG_20230107_211412.jpg (41.75 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

只有一个dex,是用了lspatch处理过的


IMG_20230107_211439.jpg (47.38 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

用lspatch内置了一个模块,这显然有问题,先看看


IMG_20230107_211524.jpg (271.51 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

模块的MainHook类里,结合“dexClassLoader”,“setDexElements”,一看便知是一代dex动态加载,这段代码在网络上流传很广,搜索全都是。


IMG_20230107_211855.jpg (111.98 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

这是“copyassets”,顾名思义,将dex从assets目录复制出来。
果然,assets目录有众多dex,或加密,或未加密,或混淆视听。


IMG_20230107_212300.jpg (87.59 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

二、析
到这里,显然关键代码都是动态加载的。那怎么处理呢?
两个方式:
1.脱壳
2.在xp模块的合适的地方插入代码,将动态加载的dex文件单独复制出来。
他这个crackme难度适宜,思路巧妙,不是无意义的全篇dcc,各位喜欢逆向的可以尝试一下。
三、解
简单起见,采用脱壳的方式(
当然,将dex复制出来也很简单,例如:在copyAssets的时候,加载两次,第一次按照他的逻辑,复制到data/.../cache,第二次按照你的逻辑,复制到你指定的地方;再例如,他最后进行dex数组修改的方法中,即“Crash666(String )”中,参数就是他的dex路径,在这直接加个fileoutputstream直接写出也行。



IMG_20230107_213137.jpg (121.91 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

四、改
脱壳后,将dex放入origin.apk,之前的classes.dex可以删掉,因为是个无用的幌子,根本不是dex文件


IMG_20230107_212346.jpg (40.4 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

回填后打开Mainactivity


IMG_20230107_213706.jpg (89.98 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

对唯一的Button设置onclick监听


IMG_20230107_213732.jpg (112.3 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

click后,传入数据验证。


IMG_20230107_213750.jpg (316.28 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

这么一大堆,显然就是关键点了。
这里,最简单的方式是log注入看看(
当然,未必有效,比如他转而比较hashcode,或转成char[],转成byte[]后一系列操作就不行



IMG_20230107_213926.jpg (86.39 KB, 下载次数: 0)
下载附件
2023-1-7 21:52 上传

打印方式选择所有返回值为String的函数。
运行,看看结果。


IMG_20230107_214236.jpg (194.16 KB, 下载次数: 0)
下载附件
2023-1-7 21:53 上传

在“密码错误”上面的“CrashErrorCrash”就很像密码,事实证明也确实是。
看了这个app后的一些想法:
一、自己hook自己,修改自己本身的逻辑
二、像一些签名校验相关,通过PLT或inline hook IO相关的函数,那我自己也把自己重定向了呢,然后二次重定向会发生什么?
三、用破解的办法来保护,例如MT 的新过签,置换Packageinfo的CREATOR,那大可以再次置换回去,抄一下CREATOR原始的代码,自己写一个置换回去。

下载次数, 下载附件

lianquke
OP
  

lianquke佬手撕软件教学
aonima   


正己 发表于 2023-1-7 23:04
lianquke佬手撕软件教学

多看正己大佬的教学才能提高逆向技术
LZW1768857595   

感谢分享
ziyouzjt   

感谢分享思路
sunzhw   

感谢大佬分享
amwquhwqas128   

感谢大神分享
tzblue   

感谢分享知识的大佬
makmak79   

感谢楼主分享技术!
lianquke
OP
  

感谢大佬分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部