温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MSC-2015移动安全挑战赛 第二题

发布时间:2020-05-28 08:15:28 来源:网络 阅读:1106 作者:strawdog 栏目:移动开发

此题apk和so都没有加壳,但是so里面的一个关键函数jolin是加密的,在so加载时解密。并且so加入了反调试技术。

由于我学习安卓的so调试是从比赛前3天开始的,也就会一个最最基本的。无法对抗反调试,一度想放弃这题。不过后来发现,这个反调试要到JNI_Onload函数退出后才触发。所以在JNI_Onload入口处下断点,添加watch,在4450这个地址(就是wojiushidaan这个字符串保存的地方)。F8一直走,看到这个地址的内容变化,就是答案了。

MSC-2015移动安全挑战赛 第二题

securityCheck函数有价值的就是while循环,很明显就是用户输入的字符串和628c这个间接应用地址上的字符串比较。(实际地址在4450)

MSC-2015移动安全挑战赛 第二题

关键函数,如果F7进去,可以发现jolin解密后的代码,这个函数用来解密出4450处的答案。

MSC-2015移动安全挑战赛 第二题

hex view窗口可以看到4450地址内容的变化。

这题高手们有patch securityCheck函数的,利用__android_log_print输出4450的内容。(这个是我需要继续学习的——patch so)

还有是允许后dump出so,4450的地方就是答案了。


能做出这个题目纯属运气,因为反调试设置的要等到Onload退出才触发异常,而so的解码已经在Onload里面完成了。只需要正确分析出securityCheck函数用于比较的字符串存放的地方。根本需要去关心解密函数是如何被解密出来的。


期待哪位大牛能详细指点一下android的so里面所用到的反调试技术。

附件:http://down.51cto.com/data/2365374
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI