tony_liu518
发表于 2008-10-3 19:48:30
个人感觉改00401000 C3 retn最简单,详见附件
老海
发表于 2008-10-3 21:41:40
有几种方法破,没必要死守一种就可以随心所欲了。
thefire
发表于 2008-10-3 23:09:17
原帖由 goldharp 于 2008-10-3 17:44 发表 https://www.chinapyg.com/images/common/back.gif
/*40100C*/push 0 //这里把0改成1就ok了
这样也行,但能说下是什么意思吗?
yayazhi
发表于 2008-10-4 16:47:35
我也会了,呵呵:loveliness:
Nisy
发表于 2008-10-4 17:42:19
最好不要修改AIP哦 ~ 直接NOP掉API可能会出问题
简单的方法就是大家提示的retn掉NAG窗口的代码:
00401000 6A 00 PUSH 0 ; 将这行代码 retn掉就可以了
00401002 68 1E304000 PUSH CRACKME2.0040301E ; Nag
00401007 68 00304000 PUSH CRACKME2.00403000 ; 这就是Nag窗口了\r\nCrack Me~!
0040100C 6A 00 PUSH 0
0040100E E8 DB000000 CALL CRACKME2.004010EE ; JMP 到 USER32.MessageBoxA
00401013 C3 RETN
通过ASCII定位 也可以来去掉NAG:
0040103A /EB 64 JMP SHORT CRACKME2.004010A0
0040103C |817D 0C 1001000>CMP DWORD PTR SS:,110
00401043 |EB 32 JMP SHORT CRACKME2.00401077 ; 这里修改为JMP
00401045 |6A 67 PUSH 67
00401047 |FF35 24304000 PUSH DWORD PTR DS: ; CRACKME2.00400000
0040104D |E8 96000000 CALL CRACKME2.004010E8 ; JMP 到 USER32.LoadIconA
00401052 |50 PUSH EAX
00401053 |6A 01 PUSH 1
00401055 |68 80000000 PUSH 80
0040105A |FF75 08 PUSH DWORD PTR SS: ; 启动时候下面这个CALL调用NAG
0040105D |E8 92000000 CALL CRACKME2.004010F4 ; JMP 到 USER32.SendMessageA
00401062 |E8 99FFFFFF CALL CRACKME2.00401000
00401067 |B8 00000000 MOV EAX,0 ; (Initial CPU selection)
0040106C |59 POP ECX
0040106D |5A POP EDX
0040106E |5E POP ESI
0040106F |5F POP EDI
00401070 |5B POP EBX
00401071 |C9 LEAVE
00401072 |C2 1000 RETN 10
00401075 |EB 29 JMP SHORT CRACKME2.004010A0
00401077 |817D 0C 1101000>CMP DWORD PTR SS:,111
0040107E |75 20 JNZ SHORT CRACKME2.004010A0
00401080 |8B45 10 MOV EAX,DWORD PTR SS:
00401083 |25 FFFF0000 AND EAX,0FFFF
00401088 |83F8 66 CMP EAX,66
0040108B |75 05 JNZ SHORT CRACKME2.00401092 ; 这里的跳转修改为 JMP
0040108D |E8 6EFFFFFF CALL CRACKME2.00401000 ; 进入程序后 这里提示显示NAG
00401092 |B8 00000000 MOV EAX,0
00401097 |59 POP ECX
00401098 |5A POP EDX
00401099 |5E POP ESI
0040109A |5F POP EDI
0040109B |5B POP EBX
0040109C |C9 LEAVE
0040109D |C2 1000 RETN 10
dtkissme
发表于 2008-10-21 21:31:35
我也来学习一下。亲自搞一下看看。
1328558
发表于 2009-2-15 10:01:08
亲自搞一下看看
today1001
发表于 2009-2-17 21:05:59
我试了试最少有两种方法。一个分别改了他的调用,一种按楼上说的PUSH0 改成PUSH1也可以。
coolfire1983
发表于 2009-2-18 14:11:57
恩 学习了!
liuyun213
发表于 2009-2-26 21:29:27
00401000 6A 00 PUSH 0 ; 将这行代码 retn掉就可以了
00401002 68 1E304000 PUSH CRACKME2.0040301E ; Nag
00401007 68 00304000 PUSH CRACKME2.00403000 ; 这就是Nag窗口了\r\nCrack Me~!
0040100C 6A 00 PUSH 0//改为 push 1
为什么100c改为push 1 也可以呢?