无壳无算法新手CM一枚
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。
无任何加密操作
第一次发 轻虐 zbnysjwsnd8 发表于 2017-7-19 18:37
我找到了一处
00401040/$55 PUSH EBP
00401041|.8BEC ...
简单说一下 这里比较ECX 是否=6464的十进制是100 也就是 记次循环首(100)如果 然后下面跟着一个Seh异常CALL 00401082
PUSH 0x80000301
PUSH 0x0
PUSH 0x3E8 十进制的1000 mov ebx,402560 这里是一个Sleep 然后再调用 也就是延时(1000)循环一次 crack5 发表于 2017-7-19 18:35
死循环的话 是一个反调试而触发的
我找到了一处
00401040/$55 PUSH EBP
00401041|.8BEC MOV EBP, ESP
00401043|.33C9 XOR ECX, ECX
00401045|>41 /INC ECX
00401046|.51 |PUSH ECX
00401047|.83F9 64 |CMP ECX, 0x64
0040104A|.0F8F 26000000 |JG 00401076
00401050|.E8 2D000000 |CALL 00401082
00401055|.68 01030080 |PUSH 0x80000301
0040105A|.6A 00 |PUSH 0x0
0040105C|.68 E8030000 |PUSH 0x3E8
00401061|.68 01000000 |PUSH 0x1
00401066|.BB 60254000 |MOV EBX, 00402560
0040106B|.E8 910D0000 |CALL 00401E01
00401070|.83C4 10 |ADD ESP, 0x10
00401073|.59 |POP ECX ;小菜CM一.0040107E
00401074|.^ EB CF \JMP SHORT 00401045
00401076|>83C4 04 ADD ESP, 0x4
00401079|.E8 C2FFFFFF CALL 00401040 ;!!!
0040107E|.8BE5 MOV ESP, EBP
00401080|.5D POP EBP ;小菜CM一.0040107E
00401081\.C3 RETN
本帖最后由 zbnysjwsnd8 于 2017-7-19 17:38 编辑
byh3025 发表于 2017-7-19 12:52
楼主是不是加入了什么,载入OD运行后就卡死了
03D9FF54 004010BC/CALL 到 SetUnhandledExceptionFilter 来自 小菜CM一.004010B7
03D9FF58 0040112E\pTopLevelFilter = 小菜CM一.0040112E
这个反调试的方法我很久就看到过了
用这个API设置SEH然后触发除零异常。
004010CE|> \31C0 XOR EAX, EAX ;小菜CM一.0046D9F7
004010D0|.F7F0 DIV EAX ;除零异常 如果有调试器 则调试器捕获异常 否则转到0040112E处
新手不懂{:1_904:} 这个做什么用的,谢谢! 楼主是不是加入了什么,载入OD运行后就卡死了 zbnysjwsnd8 发表于 2017-7-19 17:27
03D9FF54 004010BC/CALL 到 SetUnhandledExceptionFilter 来自 小菜CM一.0040 ...
嗯,谢谢你的解答,那么如何定位并去除呢?呵呵,好羡慕你,知道的这么多{:1_921:} 本帖最后由 zbnysjwsnd8 于 2017-7-19 17:51 编辑
byh3025 发表于 2017-7-19 17:40
嗯,谢谢你的解答,那么如何定位并去除呢?呵呵,好羡慕你,知道的这么多
死循环的 我还没定位到
这个很简单的
先给CreateThread下断点。
我测试了一下
把这个CreateThread干掉以后
OD附加就可以了。
验证点不止一处。 zbnysjwsnd8 发表于 2017-7-19 17:45
死循环的 我还没定位到
这个很简单的
先给CreateThread下断点。
CreateThread,查了下,说是创建新线程的,你说的死循环是不是说它不断的创建线程从而卡死的