首先先道歉,因为最近Boss让我开始搞apk,所以之前做的《修改ProcessMonitor过TMD壳反监测》就没继续做下去了,中间也有一些收获,本来想分享一下,但是总觉得没啥干货,所以这个注定不会有续集了。作为补偿,把最近的一个面试题给大家分享一个,祝所有应届生和打算找工作的兄弟们都一些顺利,心想事成。
顺带,跟大家推荐那个工具,android killer,真的很好用,就算不是用来分析病毒木马锁屏软件,平时自己没事儿了,看看代码,修改一些功能,自己给自己打包个专用版apk,感觉也挺爽的。而且,这个难度比.Net程序还低哟。
另外,我也希望用我的事情鼓励一下之前可能比较少动手做实践的朋友们:
之前几个哥们去专门搞移动端样本分析了,而我当时总觉得自己到了移动端,万事都要从头来,就没敢去。
如今Boss说我们干PC不挣钱,都靠着移动端养活呢,不由分说就让我同时搞安卓。
这几周边学边干下来,感觉其实没有想象中的那么难,有时候还觉得比搞PE容易不少,等发现有意思的样本的时候再跟大家分享。
尤其是那些希望从事安全的学生党们,Just Do IT。有些东西,做了就会发现,其实不难。
---------------------------------------------------------------------------
缘分
应该说,最近跟CFT缘分还是挺大的。上次刚做过一个CTF题(某CTF比赛题解析分享--RSA Roll),然后,这次面试又遇到一个CTF题,还是挺巧的。
破解
1.首先观察样本
你会先发现样本的按钮是会移动的,当你光标移动过去,鼠标就会偏移。
具体效果截图也看不出来,大家动手试试吧!
2. 摘掉“会飞的按钮的翅膀”
用OD加载样本,发现这个样本还有Anti-Debug功能,主要是通过CheckRemoteDebuggerPresent这个API实现的。
解决方法:那就重新加载一次,然后改一下ZF或者返回值,就可以Bypass。
Anti-Debug
接下来,就可以正常调试了。推测这个让按钮“飞走”的API是MoveWindow。这时候在IDA上打开,找到调用的地方,然后对照着OD,把所有MoveWindow这段全部NOP掉。
MoveWindow
不过,我也看到了这个,这时什么鬼,能吃么,能提供线索么?我不知道
tian
好了,不管它了,继续走,终于,我们可以点击到那个该死的按钮了。
至于key,我不知道,爆破一下吧,如下图。
crack
好了,满足了精神上的征服感,我们开动IDA来找找它的key吧。
解题
1.用IDA祭出F5大法看看最后边的检查吧
lastcode
laststring
0x418217(ImageBase按照0x400000算)的值因为有线程里的代码不断改变,可能为0x03, 0x0C, 0x30, 0xC0,但根据最终的检查结果
(edx),它只能为(2),因此,则可以推算出跟Jc14(4A 63 31 34)组合的结果可以是: 0x02 | 48(H) | 61(a) | 33(3) | 36(6) |
据此来看,那么key的18-21位就是“Ha36“。
2. 按照检查的顺序,再看看开头的检查
前5个字符为"HCTF{",最后一个字符为(})。 因为可以看出来,这个函数在运行时仅检查返回值是否为 TRUE ,调试时我直接把返回值进行了更改
3. 中间部分的分析
可以看到,数据弄来弄去的,好乱的样子,我做了个表。根据上述运算,推测出来中间的几个字符为“UareS6cLeVer” Addr | 4191C0 | 4190C4 | 4190C8 | 4190CC | 4190D0 | 4190D4 | 4190D8 | 4190DC | 4190E0 | 4190E4 | 4190E8 | 4190EC | After Exch | 66 | 64 | C8 | 68 | 75 | 75 | 14 | 0B | 68 | 15 | 68 | 12 | Before | 14 |
| 75 | 68 | 12 | C8 | 66 |
| 68 |
|
| 75 | Oct | 20 | 100 | 117 | 104 | 18 | 200 | 102 | 11 | 104 | 21 | 104 | 117 | Char | U | a | r | e | S | 0 | c | L | e | V | e | r |
4. 拼接字符串
Key = “HCTF{UareS0cLeVerHa36}”。 可能作者给破解人增加难度,增加了两个线程不断修改两个数值,导致最后无法顺利弹出“OK”窗口,不过我相信作者的本地就是逆向出整个思路,这里应该不是考察的地方。
key的意思是,You are so clever,最后几个我不太懂,跟甜党有关么,我这么吃货怎么居然不知道? 看官们也试试吧,或许你们能明白出题者的用意,聪明的小孩们!
最后,作为资深吃货,我也要振臂高呼:甜党万岁!!! 豆腐脑和粽子就应该是甜的,吃咸的的人都应该被火烧死,哼哼
|