能力值:
( LV2,RANK:10 )
|
-
-
2 楼
居然被我破了
想不到我这种纯净的菜鸟也能破软件
我真的好感动,谢谢CCTV,MTV,谢谢看雪,谢谢我的爸爸妈妈
还有要谢谢楼主,是你给了我这次机会
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
恭喜楼上的,你的成长就是我的动力!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这个程序是用易语言写的,验证代码在krnln.fnr里(实际是个DLL),从这句进入:
00401145 |. 66:C703 5C00 MOV WORD PTR DS:[EBX],5C
0040114A |> 68 23104000 PUSH xjxc.00401023 ; /StringToAdd = "krnln.fne"
0040114F |. 8D85 FCFEFFFF LEA EAX,DWORD PTR SS:[EBP-104] ; |
00401155 |. 50 PUSH EAX ; |ConcatString
00401156 |. E8 83000000 CALL <JMP.&KERNEL32.lstrcatA> ; \lstrcatA
0040115B |. 50 PUSH EAX ; /FileName
0040115C |. E8 77000000 CALL <JMP.&KERNEL32.LoadLibraryA> ; \LoadLibraryA
00401161 |. 85C0 TEST EAX,EAX
00401163 |. 74 40 JE SHORT xjxc.004011A5
00401165 |> 8985 F8FEFFFF MOV DWORD PTR SS:[EBP-108],EAX
0040116B |. 68 2D104000 PUSH xjxc.0040102D ; /ProcNameOrOrdinal = "GetNewSock"
00401170 |. 50 PUSH EAX ; |hModule
00401171 |. E8 5C000000 CALL <JMP.&KERNEL32.GetProcAddress> ; \GetProcAddress
00401176 |. 85C0 TEST EAX,EAX
00401178 |. 74 20 JE SHORT xjxc.0040119A
0040117A |. 68 E8030000 PUSH 3E8
0040117F |. FFD0 CALL EAX
00401181 |. 85C0 TEST EAX,EAX
00401183 |. 74 15 JE SHORT xjxc.0040119A
00401185 |. E8 00000000 CALL xjxc.0040118A
0040118A |$ 810424 761E00>ADD DWORD PTR SS:[ESP],1E76
00401191 |. FFD0 CALL EAX ; krnln.1002973A
进到之后,你拦截所有MessageBoxA调用就可以拦截到注册码错误的对话框了
它是通过读取硬盘序列号来分辨机器的
易语言有点怪,很多都是通过后期链接的(LoadLibrary),通过Call函数指针来调用。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
刚开始在学,看得有点头大。看不太懂,能说得清楚点么?谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
你可以根据你要下的断点的类型啊直接用命令下断
|
能力值:
( LV9,RANK:180 )
|
-
-
7 楼
你忘了谢谢楼主
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
如何进入啊?我把光标移到00401145 |. 66:C703 5C00 MOV WORD PTR DS:[EBX],5C
这一行按下F4,可程序已经打开了还没停到这一行上,设断点也不行。请兄弟详细说一下,刚刚初学,问的问题比较弱智,见笑了。
另外我照了另一个方法用ECODE找到了字符串,可是也不知改那一行能实现破解的,有没人告诉我一下啊?谢谢!
找到的代码如下:
00508A5A 8B5D FC MOV EBX,DWORD PTR SS:[EBP-4]
00508A5D 85DB TEST EBX,EBX
00508A5F 74 09 JE SHORT xjxc.00508A6A
00508A61 53 PUSH EBX
00508A62 E8 BA5C1B00 CALL xjxc.006BE721
00508A67 83C4 04 ADD ESP,4
00508A6A 58 POP EAX
00508A6B 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00508A6E 68 05334000 PUSH xjxc.00403305
00508A73 FF75 FC PUSH DWORD PTR SS:[EBP-4]
00508A76 E8 9AFEFFFF CALL xjxc.00508915
00508A7B 83C4 08 ADD ESP,8
00508A7E 83F8 00 CMP EAX,0
00508A81 0F84 83000000 JE xjxc.00508B0A
00508A87 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00508A8A 50 PUSH EAX
00508A8B E8 08010000 CALL xjxc.00508B98
00508A90 85C0 TEST EAX,EAX
00508A92 0F84 38000000 JE xjxc.00508AD0
00508A98 68 02000080 PUSH 80000002
00508A9D 6A 00 PUSH 0
00508A9F 68 01000000 PUSH 1
00508AA4 6A 00 PUSH 0
00508AA6 6A 00 PUSH 0
00508AA8 6A 00 PUSH 0
00508AAA 68 01000100 PUSH 10001
00508AAF 68 BA460106 PUSH 60146BA
00508AB4 68 BB460152 PUSH 520146BB
00508AB9 68 03000000 PUSH 3
00508ABE BB 20030000 MOV EBX,320
00508AC3 E8 5F5C1B00 CALL xjxc.006BE727
00508AC8 83C4 28 ADD ESP,28
00508ACB E9 35000000 JMP xjxc.00508B05
00508AD0 6A 00 PUSH 0
00508AD2 6A 00 PUSH 0
00508AD4 6A 00 PUSH 0
00508AD6 68 01030080 PUSH 80000301
00508ADB 6A 00 PUSH 0
00508ADD 68 10000000 PUSH 10
00508AE2 68 04000080 PUSH 80000004
00508AE7 6A 00 PUSH 0
00508AE9 68 06334000 PUSH xjxc.00403306 ; 对不起,注册码不对,请重新注册
00508AEE 68 03000000 PUSH 3
00508AF3 BB 00030000 MOV EBX,300
00508AF8 E8 2A5C1B00 CALL xjxc.006BE727
00508AFD 83C4 28 ADD ESP,28
00508B00 E9 7F000000 JMP xjxc.00508B84
00508B05 E9 7A000000 JMP xjxc.00508B84
00508B0A 833D 804CCD00 1>CMP DWORD PTR DS:[CD4C80],1E
00508B11 0F8C 3A000000 JL xjxc.00508B51
00508B17 6A 00 PUSH 0
00508B19 6A 00 PUSH 0
00508B1B 6A 00 PUSH 0
00508B1D 68 01030080 PUSH 80000301
00508B22 6A 00 PUSH 0
00508B24 68 10000000 PUSH 10
00508B29 68 04000080 PUSH 80000004
00508B2E 6A 00 PUSH 0
00508B30 68 25334000 PUSH xjxc.00403325 ; 对不起,未注册版使用时间已到,如果要继续使用请你注册
00508B35 68 03000000 PUSH 3
00508B3A BB 00030000 MOV EBX,300
00508B3F E8 E35B1B00 CALL xjxc.006BE727
00508B44 83C4 28 ADD ESP,28
00508B47 E9 38000000 JMP xjxc.00508B84
00508B4C E9 33000000 JMP xjxc.00508B84
00508B51 68 02000080 PUSH 80000002
00508B56 6A 00 PUSH 0
00508B58 68 01000000 PUSH 1
00508B5D 6A 00 PUSH 0
00508B5F 6A 00 PUSH 0
00508B61 6A 00 PUSH 0
00508B63 68 01000100 PUSH 10001
00508B68 68 BA460106 PUSH 60146BA
00508B6D 68 BB460152 PUSH 520146BB
00508B72 68 03000000 PUSH 3
00508B77 BB 20030000 MOV EBX,320
00508B7C E8 A65B1B00 CALL xjxc.006BE727
00508B81 83C4 28 ADD ESP,28
00508B84 8B5D FC MOV EBX,DWORD PTR SS:[EBP-4]
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
给点提示吧,注册验证不在你上面的代码里面,是从其他地方对比完以后在到
00508AE9 68 06334000 PUSH xjxc.00403306 ; 对不起,注册码不对,请重新注册
这一条的,我是用跟踪的方法找到了对比注册码的地方,我感觉跟踪特简单,特适合新人,就是常常不好用
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
能不能说得清楚一点怎么跟踪怎么找到对比注册码的地方啊?谢谢了!
刚刚开始学有点难不知怎么做好。能说得详细点么?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
00508C55 B8 00000000 mov eax, 0
改为
00508C55 B8 01000000 mov eax, 1
ok,ok,ok.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
此程序是个重启验证 用bp GetPrivateProfileStringA断点拦截 运行三此到读取注册码的位置
注册码放在xil.ini文件中
|
能力值:
( LV5,RANK:60 )
|
-
-
13 楼
我也不会找啊,郁闷的是,连着几个都是易语言的,闷死我了。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
已经强奸了
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
这个不难,用内存断点搞
|
|
|