好友
阅读权限10
听众
最后登录1970-1-1
|
霖韵嫣然
发表于 2016-8-25 08:05
本帖最后由 霖韵嫣然 于 2016-8-25 08:08 编辑
关于某“苹果产品解锁器”的分析
今日闲来无趣,在某个免杀论坛逛的时候, 偶然看到了这个软件,出于兴趣,就拿来分析了一下,当然分析的不好,还存在一点疑惑,各位大神轻喷......
度盘链接:http://pan.baidu.com/s/1dE4eVDn
1.运行软件,查看情况。
注意:软件只有在检测到有苹果驱动程序的时候才会运行,否则会报错。但是, iTunse最低支持系统是WINDOWS7,所以也不得不在WIN7(x86)的环境下分析。
运行截图如下:
如果随意输入激活码的情况如下图:
很明显的错误提示,可据此找到关键。
2.查壳
比较懒,就使用DIE查壳。情况如图所示:
它告诉我是ASPack壳,于是我就信了,懒得手动脱壳,于是使用了通用脱壳机。如图:
但是结果是悲惨的:
好吧,明显还有壳,我不再懒惰了,手动来脱。
看见这种壳,那么,首先,使用ESP定律简单的来一次:
随后,就发现,这玩意貌似是VMP壳。
这作者真是够了。
好吧,来干掉VMP。(其实不需要把VMP脱掉,只需要找到关键点分析即可)
1.在VirtualProtect处下硬件访问断点。(怕CC断点被查出来)......如图所示:
2.运行,观察堆栈。找到合适的时机,返回.text区段。
3.发现.text区段已解码。
但是花指令很多,上图已经去掉了一些花指令......
这样,我们再让OD重新分析。
查壳与处理结束。
3.分析代码
观察反汇编码可以轻易的看出来易语言特征。所以,我们可以尝试在FF 55 FC 5F 5E处下断。(只是不知道被VM掉了没有)由于这个软件加壳多层,为了以后重载方便,下硬件访问断点。
令人惊喜的事情果然发生了,这个地方没有被VM掉,也不知道是害怕不稳定还是.........不知道作者怎么想的。
之后,我们就可以输入假注册码,点击"解锁iPhone",可以看到已经断下来了。F7进入,查看事件。
这里就是按钮事件的代码了:
[Asm] 纯文本查看 复制代码 00402F29 /. 55 push ebp ; 解锁iPhone按钮事件
00402F2A |. 8BEC mov ebp,esp
00402F2C |. 81EC 08000000 sub esp,0x8
00402F32 |. 6A FF push -0x1
00402F34 |. 6A 08 push 0x8
00402F36 |. 68 4A010116 push 0x1601014A
00402F3B |. 68 03000152 push 0x52010003
00402F40 |. E8 02010000 call 苹果产品.00403047 ; 获取假注注册码
00402F45 |. 83C4 10 add esp,0x10
00402F48 |. 8945 FC mov [local.1],eax
00402F4B |. 90 nop
00402F4C |. 90 nop
00402F4D |. 90 nop
00402F4E |. 68 D5985300 push 苹果产品.005398D5 ; 释放皮肤DLL
00402F53 |. FF75 FC push [local.1] ; 苹果产品.00402F29
00402F56 |. E8 31FFFFFF call 苹果产品.00402E8C
00402F5B |. 83C4 08 add esp,0x8
00402F5E |. 83F8 00 cmp eax,0x0
00402F61 |. B8 00000000 mov eax,0x0
00402F66 |. 0f94c0 sete al
00402F69 |. 8945 F8 mov [local.2],eax
00402F6C |. 8B5D FC mov ebx,[local.1] ; 苹果产品.00402F29
00402F6F |. 85DB test ebx,ebx
00402F71 |. 74 09 je short 苹果产品.00402F7C
00402F73 |. 53 push ebx
00402F74 |. E8 C8000000 call 苹果产品.00403041
00402F79 |. 83C4 04 add esp,0x4
00402F7C |> 837D F8 00 cmp [local.2],0x0
00402F80 |. 0F84 39000000 je 苹果产品.00402FBF ; 判断输入框是否为空
00402F86 |. BB 06000000 mov ebx,0x6
00402F8B |. E8 71EDFFFF call 苹果产品.00401D01
00402F90 |. 68 01030080 push 0x80000301
00402F95 |. 6A 00 push 0x0
00402F97 |. 68 40000000 push 0x40
00402F9C |. 68 04000080 push 0x80000004
00402FA1 |. 6A 00 push 0x0
00402FA3 |. 68 C2F45400 push 苹果产品.0054F4C2 ; 请输入激活码!
00402FA8 |. 68 04000000 push 0x4
00402FAD |. BB F03E4000 mov ebx,苹果产品.00403EF0
00402FB2 |. E8 84000000 call 苹果产品.0040303B
00402FB7 |. 83C4 34 add esp,0x34
00402FBA |. E9 34000000 jmp 苹果产品.00402FF3
00402FBF |> BB 06000000 mov ebx,0x6 ; 垃圾指令,这时候EBX从0变为了6
00402FC4 |. E8 38EDFFFF call 苹果产品.00401D01 ; 垃圾指令,这个CALL里面就是把EBX还原回0
00402FC9 |. 68 01030080 push 0x80000301
00402FCE |. 6A 00 push 0x0
00402FD0 |. 68 10000000 push 0x10
00402FD5 |. 68 04000080 push 0x80000004
00402FDA |. 6A 00 push 0x0
00402FDC |. 68 D1F45400 push 苹果产品.0054F4D1 ; 激活码错误!购买激活码,请联系QQ:63035992
00402FE1 |. 68 04000000 push 0x4
00402FE6 |. BB F03E4000 mov ebx,苹果产品.00403EF0
00402FEB |. E8 4B000000 call 苹果产品.0040303B
00402FF0 |. 83C4 34 add esp,0x34
00402FF3 |> 8BE5 mov esp,ebp
00402FF5 |. 5D pop ebp ; 苹果产品.0041C9B0
00402FF6 \. C3 retn
经过一番分析,并没有在这里找到激活成功的地方,甚至连一个CALL,一个跳转到成功的地方都没有。
于是思索,难道在其他窗口?
又开始寻找其他窗口代码。
搜索Push 10001寻找其他窗口。
但是,仍旧没有找到有价值的东西。(对易语言也不是很熟悉,所以也不知道该去找什么了)
最后,又找了FF 25找到最开始代码,分析了很久仍然没有找到真正的解锁iPhone的地方。
于是开始怀疑作者是不是就是在搞恶作剧......
字符串里面仅有的关于iTunes的地方也是在最开始查找是否有苹果驱动的地方。
令我疑惑的地方是一些地方明显有VM过的痕迹,却没有调用这些地方,不知何故。
各位大神可否给一点思路,谢谢。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|