小攸 发表于 2017-8-9 09:38

【已破解】来一发CM1.1,不加壳不加花,欢迎来搞-from time:2017年8月9日

本帖最后由 小攸 于 2017-8-9 14:39 编辑


老规矩,支持爆破,支持密钥逆向,随便你怎么玩~


在原来1.0的基础上进行了强化加深,本次不加壳不加花,减小代码分析繁琐性


欢迎各位大神来挑战


from time:2017年8月9日09:36:07

zbnysjwsnd8 发表于 2017-8-9 13:02

本帖最后由 zbnysjwsnd8 于 2017-8-9 13:42 编辑

{:1_902:}
唔。。。感觉蛮简单 注册码是201778
0x0 爆破:
按照这个修改即可。
0040414F   .837D E8 00    cmp dword ptr ss:,0x0
00404153   .90            nop
00404154   .90            nop
00404155   .90            nop
00404156   .90            nop
00404157   .90            nop
00404158   .90            nop
00404159   .833D 0CF34A00>cmp dword ptr ds:,0x0
00404160   .90            nop
00404161   .90            nop
00404162   .90            nop
00404163   .90            nop
00404164   .90            nop
00404165   .90            nop
00404166   .837D EC 00    cmp dword ptr ss:,0x0
0040416A   .EB 52         jmp short CM1_1.004041BE
0040416C      90            nop
0040416D      90            nop
0040416E      90            nop
0040416F      90            nop

爆破效果图:


顺便说一下怎么过掉反调试(我这里遇到两个 一个是ZwSetInformationThread 另一个是SetUnhandledExceptionFilter)
ZwSetInformationThread:将0x004021EB处的push 0x11改成push 0。这个反调试就GG了
SetUnhandledExceptionFilter:
在kernel32!UnhandledExceptionFilter处有调用ntdll!ZwQueryInformationProcess来查询DEBUG PORT
如果DEBUG PORT不为0的话 就将异常交给调试器 调试器如果不处理程序就GG。
不多说了 直接放代码吧。
7600EFEE    8BFF            mov edi,edi                              ; fx.<ModuleEntryPoint>
7600EFF0    55            push ebp
7600EFF1    8BEC            mov ebp,esp
7600EFF3    51            push ecx                                 ; fx.<ModuleEntryPoint>
7600EFF4    56            push esi                                 ; fx.<ModuleEntryPoint>
7600EFF5    33F6            xor esi,esi                              ; fx.<ModuleEntryPoint>
7600EFF7    8D45 FC         lea eax,dword ptr ss:
7600EFFA    56            push esi                                 ; fx.<ModuleEntryPoint>
7600EFFB    6A 04         push 0x4
7600EFFD    50            push eax
7600EFFE    6A 07         push 0x7
7600F000    6A FF         push -0x1
7600F002    8975 FC         mov dword ptr ss:,esi         ; fx.<ModuleEntryPoint>
7600F005    FF15 20A00276   call dword ptr ds:[<&ntdll.NtQueryInform>; ntdll.ZwQueryInformationProcess
7600F00B    85C0            test eax,eax
7600F00D    78 06         js short KernelBa.7600F015
7600F00F    3975 FC         cmp dword ptr ss:,esi         ; fx.<ModuleEntryPoint>
7600F012    74 01         je short KernelBa.7600F015               ; 修改这里 将je改成jmp即可
7600F014    46            inc esi                                  ; fx.<ModuleEntryPoint>
7600F015    8BC6            mov eax,esi                              ; fx.<ModuleEntryPoint>
7600F017    5E            pop esi                                  ; kernel32.75DA38F4
7600F018    8BE5            mov esp,ebp
7600F01A    5D            pop ebp                                  ; kernel32.75DA38F4
7600F01B    C3            retn

为了方便可以写一个DLL来做这些工作
然后给CM加一个导入表即可。
放一个我写的Anti-Anti-Debug代码




0x1 追码:
算法其实就在判断的上面。
设注册码为a
则有a * 44 * 2 = 44 * 403556
解得a = 201778 追码效果图:



mdzz007 发表于 2017-8-9 10:15

小攸 发表于 2017-8-9 10:40

mdzz007 发表于 2017-8-9 10:15


-。-复制我的图片。。。

linuxprobe 发表于 2017-8-9 14:06

感谢楼主提供分享~~~~~~~~~

小攸 发表于 2017-8-9 14:14

zbnysjwsnd8 发表于 2017-8-9 13:02
唔。。。感觉蛮简单 注册码是201778
0x0 爆破:
按照这个修改即可。


不错哦,厉害哦~~就是反调试处理你的方法麻烦了。其实只要ret一个地方或者直接nop一个地方,就可以了。

老哥分析很详细,稳~

zbnysjwsnd8 发表于 2017-8-9 14:16

小攸 发表于 2017-8-9 14:14
不错哦,厉害哦~~就是反调试处理你的方法麻烦了。其实只要ret一个地方或者直接nop一个地方,就可以了。
...

{:1_902:}只是当时我不确定 你设置的回调函数里面 有没有设置什么数据和注册有关
如果有关直接ret或者nop就GG了

小攸 发表于 2017-8-9 14:38

zbnysjwsnd8 发表于 2017-8-9 14:16
只是当时我不确定 你设置的回调函数里面 有没有设置什么数据和注册有关
如果有关直接ret或者no ...

你过你可以追到密钥判断事件,那也是很厉害了,你是怎么追的?访问断点?还是其他方式?

zbnysjwsnd8 发表于 2017-8-9 14:51

本帖最后由 zbnysjwsnd8 于 2017-8-9 16:05 编辑

小攸 发表于 2017-8-9 14:38
你过你可以追到密钥判断事件,那也是很厉害了,你是怎么追的?访问断点?还是其他方式?
{:1_902:}bp GetWindowTextA
挨个线程看
可以用xjun师傅的神器找到按钮事件的地址和编辑框输入的地址

zbnysjwsnd8 发表于 2017-8-9 16:09

小攸 发表于 2017-8-9 14:38
你过你可以追到密钥判断事件,那也是很厉害了,你是怎么追的?访问断点?还是其他方式?

{:1_910:}原谅我太菜
刚刚试了一下
FF25找不到按钮事件。
我不用特征码。。。
页: [1] 2 3 4
查看完整版本: 【已破解】来一发CM1.1,不加壳不加花,欢迎来搞-from time:2017年8月9日