小攸 发表于 2017-8-10 17:13

【已开源】超强大的CM1.2来了,不加壳不加花,欢迎大神来挑战!from time:2017.08.10

本帖最后由 小攸 于 2017-8-11 09:27 编辑


支持爆破,支持追码!


用尽你的大脑吧~让我们来一波头脑风暴~


破解成功后,公布源码,给大家参考研究!

这个版本主要加工了追码方面,爆破方面没有主要去防御。算法很麻烦,我自己写的头都炸,写了整整一下午。。。。。

==================================================================================已被破解,以下是源码,如果大家有什么好的玩法,可完善源码,然后上传上来,我们一起交流讨论
源码+模块下载地址:https://pan.baidu.com/s/1bOMOYM 密码: z3dq
里面采用了自身HOOK的方式,进行功能的阻止和调用,并使用字节对比的方式,判断指定位置是否被断点。
知识点:断点后的位置 字节为int3,因此断点的位置字节被改变,可用于对比判断是否被断点

zbnysjwsnd8 发表于 2017-8-11 09:24

本帖最后由 zbnysjwsnd8 于 2017-8-11 09:30 编辑

我看了一下你的代码
你这个检测断点有问题
这是我的GetWindowTextA的代码
7783CAB0 >6A 0C         push 0xC
7783CAB2    68 602F8A77   push user32.778A2F60
7783CAB7    E8 081A0100   call user32.7784E4C4
7783CABC    8B75 0C         mov esi,dword ptr ss:
7783CABF    85F6            test esi,esi                           ; echap543.<ModuleEntryPoint>
7783CAC1    74 56         je short user32.7783CB19
7783CAC3    837D 10 00      cmp dword ptr ss:,0x0
7783CAC7    74 50         je short user32.7783CB19
7783CAC9    8365 FC 00      and dword ptr ss:,0x0
7783CACD    C606 00         mov byte ptr ds:,0x0
7783CAD0    8B4D 08         mov ecx,dword ptr ss:
7783CAD3    E8 D8AEFEFF   call user32.778279B0
7783CAD8    8BD8            mov ebx,eax
7783CADA    8BC2            mov eax,edx                              ; echap543.<ModuleEntryPoint>
7783CADC    8945 E4         mov dword ptr ss:,eax
7783CADF    8BCB            mov ecx,ebx
7783CAE1    0BC8            or ecx,eax
7783CAE3    0F84 DC2E0200   je user32.7785F9C5
7783CAE9    50            push eax
7783CAEA    53            push ebx
7783CAEB    E8 C3000000   call user32.7783CBB3
7783CAF0    6A 01         push 0x1
7783CAF2    56            push esi                                 ; echap543.<ModuleEntryPoint>
7783CAF3    85C0            test eax,eax
7783CAF5    0F84 A52E0200   je user32.7785F9A0
7783CAFB    FF75 E4         push dword ptr ss:
7783CAFE    53            push ebx
7783CAFF    8B55 10         mov edx,dword ptr ss:
7783CB02    6A 0D         push 0xD
7783CB04    59            pop ecx                                  ; kernel32.75DA38F4
7783CB05    E8 4694FEFF   call user32.77825F50
7783CB0A    C745 FC FEFFFFF>mov dword ptr ss:,-0x2
7783CB11    E8 F3190100   call user32.7784E509
7783CB16    C2 0C00         retn 0xC
7783CB19    33C0            xor eax,eax
7783CB1B^ EB F4         jmp short user32.7783CB11

这是我的GetWindowTextW代码:
7783CB30 >6A 0C         push 0xC
7783CB32    68 802F8A77   push user32.778A2F80
7783CB37    E8 88190100   call user32.7784E4C4
7783CB3C    8B75 0C         mov esi,dword ptr ss:
7783CB3F    85F6            test esi,esi                           ; echap543.<ModuleEntryPoint>
7783CB41    74 67         je short user32.7783CBAA
7783CB43    837D 10 00      cmp dword ptr ss:,0x0
7783CB47    74 61         je short user32.7783CBAA
7783CB49    8365 FC 00      and dword ptr ss:,0x0
7783CB4D    33C0            xor eax,eax
7783CB4F    66:8906         mov word ptr ds:,ax
7783CB52    8B4D 08         mov ecx,dword ptr ss:
7783CB55    E8 56AEFEFF   call user32.778279B0
7783CB5A    8BD8            mov ebx,eax
7783CB5C    8BC2            mov eax,edx                              ; echap543.<ModuleEntryPoint>
7783CB5E    8945 E4         mov dword ptr ss:,eax
7783CB61    8BCB            mov ecx,ebx
7783CB63    0BC8            or ecx,eax
7783CB65    74 3C         je short user32.7783CBA3
7783CB67    50            push eax
7783CB68    53            push ebx
7783CB69    E8 45000000   call user32.7783CBB3
7783CB6E    6A 00         push 0x0
7783CB70    56            push esi                                 ; echap543.<ModuleEntryPoint>
7783CB71    85C0            test eax,eax
7783CB73    74 1E         je short user32.7783CB93
7783CB75    FF75 E4         push dword ptr ss:
7783CB78    53            push ebx
7783CB79    8B55 10         mov edx,dword ptr ss:
7783CB7C    6A 0D         push 0xD
7783CB7E    59            pop ecx                                  ; kernel32.75DA38F4
7783CB7F    E8 CC93FEFF   call user32.77825F50
7783CB84    C745 FC FEFFFFF>mov dword ptr ss:,-0x2
7783CB8B    E8 79190100   call user32.7784E509
7783CB90    C2 0C00         retn 0xC
7783CB93    FF75 10         push dword ptr ss:
7783CB96    6A 0D         push 0xD
7783CB98    FF75 E4         push dword ptr ss:
7783CB9B    53            push ebx
7783CB9C    E8 7F69FEFF   call user32.77823520
7783CBA1^ EB E1         jmp short user32.7783CB84
7783CBA3    C745 FC FEFFFFF>mov dword ptr ss:,-0x2
7783CBAA    33C0            xor eax,eax
7783CBAC^ EB DD         jmp short user32.7783CB8B

0x6A 0x0C 0x68转换成易语言的字节集是这样的:
{106,12,104}
和你这里检测的 { 106, 8, 104 } 根本就不一样
通用性好差啊{:301_1004:}
恐怕只有和楼主一个系统的
不修改代码才能验证算法吧

zbnysjwsnd8 发表于 2017-8-10 19:23

本帖最后由 zbnysjwsnd8 于 2017-8-10 21:29 编辑

爆破:
楼主真是脑洞大开啊
00404330   . /EB 35         jmp short CM1_2.00404367
00404332   |90            nop
00404333   |90            nop
00404334   |90            nop
00404335   |90            nop

这有个前提:干掉那三个call中的强制销毁线程
004011BE   . /E9 7F000000   jmp CM1_2.00401242

0040189F   . /E9 7F000000   jmp CM1_2.00401923

004019AD   . /E9 7F000000   jmp CM1_2.00401A31

追码:
在虚拟机中测试:

注册机在第21楼。

楚辞 发表于 2017-8-10 17:43

吣嘸囃唸 发表于 2017-8-10 17:53

学习一下,谢谢你的分享

zxs1127 发表于 2017-8-10 17:54

我是不可能成功的了,路过看看

dazong 发表于 2017-8-10 17:56

破不掉!我对源码感兴趣,         发了后改装点我的东西进去       编程其实很有意思,每个人的写法都不一样

SeriousSnow 发表于 2017-8-10 18:00


SeriousSnow 发表于 2017-8-10 18:03

本帖最后由 SeriousSnow 于 2017-8-10 18:06 编辑

最简单的办法就是你的那个“功能”call太好找了,,,按钮事件里直接call 然后ret

fq645122 发表于 2017-8-10 18:09

看起来好厉害

小攸 发表于 2017-8-10 18:17

SeriousSnow 发表于 2017-8-10 18:03
最简单的办法就是你的那个“功能”call太好找了,,,按钮事件里直接call 然后ret

功能那边大意了,卧槽,太过关注算法了。。。功能那边没加效验、。、、、

52pojie3009 发表于 2017-8-10 18:27

看起来好厉害
页: [1] 2 3 4
查看完整版本: 【已开源】超强大的CM1.2来了,不加壳不加花,欢迎大神来挑战!from time:2017.08.10