最近准备从x86上转移到linux上, 于是乎弄了个手游来玩, 正巧朋友推荐了一个修改软件,类似于八门神器、CE,用于搜索修改游戏数据,于是抱着好奇的心理初步研究了下该软件的原理: 研究了下软件, 搜索,修改,暂停游戏,实现BT都有,比较齐全,猜测应该核心功能是基于SO上实现的。 打开AndroidKiller.exe,拖进APK,很顺利的反编译完成 在目录结构并没有发现so相关的东西, 搜索LoadLibrary也一无所获,看下进程信息 我擦,竟然没有进程信息。。。纠结了。先通过smail看它现有的信息吧。 搜索它的catch_.me_.if_.you_.can_,也依然一无所获, 那么搜索它的版本号呢, 发现了: 这里定义的版本号,继续往下浏览, 发现: 这里的代码,通过插入输出信息,可以知道,它这里获取了包名,接着原名被替换掉了,至此原来不是没有找到,而是被替换了,所以按照原来的去找就肯定找不到了。 此举做法,应该是防止壳或者检测类软件检测它的进程信息。 接着继续看它的启动信息, 因为该软件能kill掉其他进程,所以它可能是守护进程。 在这里输出exec的参数,可以发现一个关键性的点: 好家伙果然有so 文件 ,那么目录中没有,这里又加载了,说明它的so是通过下载流dump出来的。 继续往下看,发现: 到这里OK,可以在该路径下把so文件给pull出来。 分析so部分 原来它用了ptrace该函数实现注入游戏进程。 通过这两个部分,同样可以对它实行一些检测,比如检测进程在被注入的情况下,进程状态, 检测TracerPid的值, 被注入调试,该值不为0。 菜鸟第一次挑战apk,结果整得怀疑人生,终于知道android apk加密的重要性了。apk如果不做防护,一个菜鸟花一点时间就能破解它,找个在线加密工具做防护还是很必要的,在网上找了几家加密做测试,发现几维安全的apk加密工具,dex文件加密用起来还不错,关键还是免费。平台可以免费使用加密工具,有需要的自取了! 操作方法非常简单只需四步: 1、登录官网注册几维安全(kiwisec.com/ 选中打开链接)账号; 2、上传所需加密文件(如.apk/.so等文件); 3、下载加密完成应用; 4、签名; 此平台也还有其他加密功能,例如:安全检测、安全监测、iOS加密等等。 由于是菜鸟初入门槛,水平所限,写的比较浅显,还请大神勿喷。
|