看雪CTF 2017 第六题设计思路和解题思路
这道题主要需要花时间搞清楚套路,就迎刃而解了。^_^
1.java层稍作字符串加密和类名方法名混淆处理(本来是打算java层也做点文章的@[email protected])
解题:通过阅读代码,可以知道check函数为关键函数,当返回为真的时候,注册成功。
2.so层用花指令对程序指令进行混淆,在一定程度上防止分析。
解题:编写去花指令脚本,F5就会变得很简单。去花后check函数如下:
这样就能很清楚看到注册过程了,第一个while循环释放存放好的字符串到byte_20020。sub_19DA8为加密函数,返回结果到v14,最后v14与byte_20020做比较,一样就行了。算法采用了RC4加密+base64编码。