对某“苹果产品解锁器”的分析的一点疑惑
本帖最后由 霖韵嫣然 于 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进入,查看事件。
这里就是按钮事件的代码了:
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 ,eax
00402F4B|.90 nop
00402F4C|.90 nop
00402F4D|.90 nop
00402F4E|.68 D5985300 push 苹果产品.005398D5 ;释放皮肤DLL
00402F53|.FF75 FC push ;苹果产品.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 ,eax
00402F6C|.8B5D FC mov ebx, ;苹果产品.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 ,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过的痕迹,却没有调用这些地方,不知何故。
各位大神可否给一点思路,谢谢。
第一层是aspack,第二层是易语言自己的混淆加壳(程序没有使用VM,从区段也可以看出来),你用esp定律走一下就到oep了465B73,还有一个小技巧就是程序还用了易语言的花指令,到oep后先用插件把花指令清除,再dump修复iat比较合适继续分析,或者带壳分析。
这个程序就是假的,开始检查下iTunes就是让你以为是真的,其实暖用没有就让你联系付钱,苹果的网络锁随便谁都能查能解,他公司早翻天了。 肯定是假的了,楼主还要想吗。。 吾爱小神 发表于 2016-8-25 08:16
肯定是假的了,楼主还要想吗。。
我也这么觉得,但是有一些地方感觉很奇怪......(所以就觉得有猫腻)......(可能是我多虑了){:301_1004:} 来到易语言体,看到有没有其他主窗口。vmp壳没有VM关键区段.....so....,现在这个界面不一定是主窗体,今天下午我再看看 这都出来了,ID可以解锁么 怎么可能是真的,开玩笑。解锁必须要越狱才行,这什么破玩意?
就和以前的刷Q币工具一样,骗钱玩意。 国外有真的可以破解id的 这个东西不会是真的。。就算是有也是硬件穷举! 不苹果的加密FPI都破不了吗,这破玩意。....== 一看就是骗钱的东西 不过楼主拿来练手还不错