能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我按照《加密与解密》上所讲的对OD的用法,在OD中用“查找”->“所有参考文本字串”,没有发现提示框中提示的“注册码错误!”的字串。
在出现注册码错误提示信息时,用OD打开这个软件,窗口停留在如下信息的地方。
10001B30 > $ 55 PUSH EBP ; (初始 cpu 选择)
10001B31 . 8BEC MOV EBP,ESP
10001B33 . 6A FF PUSH -1
10001B35 . 68 A0500010 PUSH dot.100050A0
10001B3A . 68 28300010 PUSH dot.10003028 ; SE 处理程序安装
10001B3F . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
10001B45 . 50 PUSH EAX
10001B46 . 64:8925 00000>MOV DWORD PTR FS:[0],ESP
10001B4D . 83C4 A8 ADD ESP,-58
10001B50 . 53 PUSH EBX
10001B51 . 56 PUSH ESI
10001B52 . 57 PUSH EDI
10001B53 . 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
10001B56 . FF15 1C500010 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>; kernel32.GetVersion
10001B5C . 33D2 XOR EDX,EDX
10001B5E . 8AD4 MOV DL,AH
10001B60 . 8915 24870010 MOV DWORD PTR DS:[10008724],EDX
10001B66 . 8BC8 MOV ECX,EAX
10001B68 . 81E1 FF000000 AND ECX,0FF
10001B6E . 890D 20870010 MOV DWORD PTR DS:[10008720],ECX
10001B74 . C1E1 08 SHL ECX,8
10001B77 . 03CA ADD ECX,EDX
10001B79 . 890D 1C870010 MOV DWORD PTR DS:[1000871C],ECX
10001B7F . C1E8 10 SHR EAX,10
10001B82 . A3 18870010 MOV DWORD PTR DS:[10008718],EAX
10001B87 . E8 64130000 CALL dot.10002EF0
10001B8C . 85C0 TEST EAX,EAX
10001B8E 75 0A JNZ SHORT dot.10001B9A
10001B90 . 6A 1C PUSH 1C
10001B92 . E8 69010000 CALL dot.10001D00
10001B97 . 83C4 04 ADD ESP,4
10001B9A > C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0
10001BA1 . E8 4A110000 CALL dot.10002CF0
10001BA6 . E8 65060000 CALL dot.10002210
10001BAB . FF15 08500010 CALL DWORD PTR DS:[<&KERNEL32.GetCommand>; [GetCommandLineA
10001BB1 . A3 B4890010 MOV DWORD PTR DS:[100089B4],EAX
10001BB6 . E8 D50F0000 CALL dot.10002B90
10001BBB . A3 BC840010 MOV DWORD PTR DS:[100084BC],EAX
10001BC0 . 85C0 TEST EAX,EAX
10001BC2 74 09 JE SHORT dot.10001BCD
10001BC4 . A1 B4890010 MOV EAX,DWORD PTR DS:[100089B4]
10001BC9 . 85C0 TEST EAX,EAX
10001BCB 75 0A JNZ SHORT dot.10001BD7
10001BCD > 6A FF PUSH -1
10001BCF . E8 7C090000 CALL dot.10002550
10001BD4 . 83C4 04 ADD ESP,4
10001BD7 > E8 040D0000 CALL dot.100028E0
10001BDC . E8 0F0C0000 CALL dot.100027F0
10001BE1 . E8 3A090000 CALL dot.10002520
10001BE6 . 8B35 B4890010 MOV ESI,DWORD PTR DS:[100089B4]
10001BEC . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI
10001BEF . 803E 22 CMP BYTE PTR DS:[ESI],22
10001BF2 . 0F85 BE000000 JNZ dot.10001CB6
10001BF8 > 46 INC ESI
10001BF9 . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI
10001BFC . 8A06 MOV AL,BYTE PTR DS:[ESI]
10001BFE . 3C 22 CMP AL,22
10001C00 . 74 1C JE SHORT dot.10001C1E
10001C02 . 84C0 TEST AL,AL
10001C04 . 74 18 JE SHORT dot.10001C1E
10001C06 . 25 FF000000 AND EAX,0FF
10001C0B . 50 PUSH EAX
10001C0C . E8 9FFEFFFF CALL dot.10001AB0
10001C11 . 83C4 04 ADD ESP,4
10001C14 . 85C0 TEST EAX,EAX
10001C16 .^ 74 E0 JE SHORT dot.10001BF8
10001C18 . 46 INC ESI
10001C19 . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI
10001C1C .^ EB DA JMP SHORT dot.10001BF8
10001C1E > 803E 22 CMP BYTE PTR DS:[ESI],22
10001C21 . 75 04 JNZ SHORT dot.10001C27
10001C23 . 46 INC ESI
10001C24 . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI
10001C27 > 8A06 MOV AL,BYTE PTR DS:[ESI]
10001C29 . 84C0 TEST AL,AL
10001C2B . 74 0A JE SHORT dot.10001C37
10001C2D . 3C 20 CMP AL,20
10001C2F . 77 06 JA SHORT dot.10001C37
10001C31 . 46 INC ESI
10001C32 . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI
10001C35 .^ EB F0 JMP SHORT dot.10001C27
10001C37 > C745 D0 00000>MOV DWORD PTR SS:[EBP-30],0
10001C3E . 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C]
10001C41 . 50 PUSH EAX ; /pStartupinfo
我想应该在这段代码里下断,但是总是下不对,不知为什么?请高手指点,谢谢!
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
首先,软件加壳了没有?加壳的话是找不出字符串的
其次注册码设置都是1111,不便于查找1111-2222-3333-4444不是更好些么?
再次有的软件即使没加壳,用字符串查找功能也找不到,要用超级字符串查找(插件的那个)
在天草的破解动画里有这个例子的
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢“大头和尚”朋友,我先去看看天草的破解动画,然后用你说的方法再试一试。
另外,我用PEiD查了一下,应该是没有加壳的,我也用“超级字符串查找”查了一下,也没有找到警告框里的提示信息。
非常感谢!
|