能力值:
( LV9,RANK:680 )
2 楼
你看到的是汇编代码吧,建议不要上来就去破解什么软件,找几个crackme练手,先熟悉一下常用破解工具的使用吧
能力值:
(RANK:260 )
3 楼
能力值:
( LV2,RANK:10 )
4 楼
非常感谢LS二位给回的贴!谢谢!
恩,crackme我也破解过好多了,比如标志位破解法,追码,灰色菜单,NAG窗口的我基本都接触过!我就去尝试弄一个软件,可是没成功!当然,论坛里的carckme我也看过了!有些都是字符加密的……根本找不到注册信息!请问这个要怎么办啊?
谢谢大家了!
能力值:
(RANK:260 )
5 楼
要从程序流程上入手,不要对“字符串”这个东西有依赖。
所谓拄着拐杖永远也学不会自己走路。
忘掉字符串,你才能走得更远
能力值:
(RANK:300 )
6 楼
很同意书呆子的观点.
能力值:
( LV2,RANK:10 )
7 楼
呵呵,我学到了一个GetWindowTextA这个涵数,我们可以断点在这里,使用bp GetWindowTextA
然后在找!呵呵!
能力值:
( LV2,RANK:10 )
8 楼
这里呢,我分析不了这里的代码了!
我不知道怎么来追码,大家教教吧!谢谢了!
代码如下:
77D3B078 ^\E9 0671FFFF JMP user32.77D32183 我在这里寄存器里,看到我输入的注册名了!
77D3B07D 33C0 XOR EAX,EAX
77D3B07F ^ E9 0371FFFF JMP user32.77D32187 这里它跳走了^
77D3B084 33C0 XOR EAX,EAX
77D3B086 ^ E9 B24FFFFF JMP user32.77D3003D
77D3B08B 6A 01 PUSH 1
77D3B08D 6A 01 PUSH 1
77D3B08F 68 F4000000 PUSH 0F4
77D3B094 FF75 10 PUSH DWORD PTR SS:[EBP+10]
77D3B097 ^ E9 86ACFEFF JMP user32.77D25D22
77D3B09C 897D FC MOV DWORD PTR SS:[EBP-4],EDI
77D3B09F ^ E9 8BAAFEFF JMP user32.77D25B2F
77D3B0A4 33C0 XOR EAX,EAX
77D3B0A6 40 INC EAX
77D3B0A7 ^ E9 36ACFEFF JMP user32.77D25CE2
77D3B0AC 83E9 69 SUB ECX,69
77D3B0AF 0F84 F3040000 JE user32.77D3B5A8
77D3B0B5 49 DEC ECX
77D3B0B6 ^ 0F85 10B2FEFF JNZ user32.77D262CC
77D3B0BC 3955 B0 CMP DWORD PTR SS:[EBP-50],EDX
77D3B0BF ^ 0F82 F6B1FEFF JB user32.77D262BB
77D3B0C5 395D B0 CMP DWORD PTR SS:[EBP-50],EBX
77D3B0C8 0F87 A2110000 JA user32.77D3C270
77D3B0CE 837D B8 00 CMP DWORD PTR SS:[EBP-48],0
77D3B0D2 74 07 JE SHORT user32.77D3B0DB
77D3B0D4 C745 B8 0100000>MOV DWORD PTR SS:[EBP-48],1
77D3B0DB 8B46 04 MOV EAX,DWORD PTR DS:[ESI+4]
77D3B0DE 8BC8 MOV ECX,EAX
77D3B0E0 23CB AND ECX,EBX
77D3B0E2 3B4D B8 CMP ECX,DWORD PTR SS:[EBP-48]
77D3B0E5 ^ 0F84 D0B1FEFF JE user32.77D262BB
77D3B0EB 83E0 FC AND EAX,FFFFFFFC
77D3B0EE 0B45 B8 OR EAX,DWORD PTR SS:[EBP-48]
77D3B0F1 57 PUSH EDI
77D3B0F2 8946 04 MOV DWORD PTR DS:[ESI+4],EAX
能力值:
(RANK:260 )
9 楼
你还在系统代码当中,需要返回用户代码分析。
试试ALT+F9,或多次Ctrl+F9,直到OD显示当前模块是程序的主模块。
能力值:
( LV2,RANK:10 )
10 楼
我这里返回领空(不知道对不对!我看书,书上的alt+f9就是返回领空的)……不知道对不对,如果错了,请高手朋友们指正一下,谢谢了!
我返回以后,到了这里,我看到我自己追踪的一个东西!
004055A7 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
004055AA |. 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
004055AD |. BA 98564000 MOV EDX,sha1crac.00405698 这里,我在寄存器里看到了,我输入的密码了!
004055B2 |. E8 B5D9FFFF CALL sha1crac.00402F6C
004055B7 |. 83C9 FF OR ECX,FFFFFFFF
004055BA |. 837D F4 00 CMP DWORD PTR SS:[EBP-C],0
004055BE |. 75 08 JNZ SHORT sha1crac.004055C8
004055C0 |. 837D F0 1E CMP DWORD PTR SS:[EBP-10],1E
004055C4 |. 77 53 JA SHORT sha1crac.00405619
004055C6 |. EB 02 JMP SHORT sha1crac.004055CA
004055C8 |> 7F 4F JG SHORT sha1crac.00405619
004055CA |> 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004055CD |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004055D0 |. BA A4564000 MOV EDX,sha1crac.004056A4 ; ASCII "DiKeN" 这里我在寄存器里看到了我输入的注册名!
004055D5 |. E8 92D9FFFF CALL sha1crac.00402F6C 这里,我看到了DiKeN被带入程序,貌似要和注册码和注册名有什么关系!
004055DA |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004055DD |. E8 3ED9FFFF CALL sha1crac.00402F20 这里我看到EAX寄存器里,DiKeN被加到了我输入的用户名前!
004055E2 |. 99 CDQ
004055E3 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
004055E6 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
004055E9 |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
004055EC |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004055EF |. BA 04000000 MOV EDX,4 这里ECX里在一次看到DiKeN+用户名!这里的意思是把4赋给EDX!
004055F4 |. E8 0FFDFFFF CALL sha1crac.00405308
004055F9 |. B8 04000000 MOV EAX,4 这里又一次出现DiKeN+用户名!
004055FE |. 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
00405601 |> 8B0A /MOV ECX,DWORD PTR DS:[EDX]
00405603 |. 314D D4 |XOR DWORD PTR SS:[EBP-2C],ECX
00405606 |. 83C2 04 |ADD EDX,4
00405609 |. 48 |DEC EAX
0040560A |.^ 75 F5 \JNZ SHORT sha1crac.00405601 这里循环三次,都跳到00405601 |> 8B0A /MOV ECX,DWORD PTR DS:[EDX]这了!
0040560C |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0040560F |. E8 88EBFFFF CALL sha1crac.0040419C 这里EAX寄存器!出现了我的密码(123456),但是这里出现的是0123456
00405614 |. 8BC8 MOV ECX,EAX
00405616 |. 334D D4 XOR ECX,DWORD PTR SS:[EBP-2C] 前面两句,都出现0123456!
00405619 |> 85C9 TEST ECX,ECX 这里怎么往原来的代码处跳了,可惜没实现跳转……
0040561B |. 75 29 JNZ SHORT sha1crac.00405646 它跳走了!从一开始就没出现过注册码的痕迹啊……
0040561D |. 837D F4 00 CMP DWORD PTR SS:[EBP-C],0
00405621 |. 75 08 JNZ SHORT sha1crac.0040562B
00405623 |. 837D F0 04 CMP DWORD PTR SS:[EBP-10],4
00405627 |. 76 1D JBE SHORT sha1crac.00405646
00405629 |. EB 02 JMP SHORT sha1crac.0040562D
0040562B |> 7E 19 JLE SHORT sha1crac.00405646
各位高手,这是我自己看着OD分析的,不知道对不对,也许我只是说了一边我自己看到的东西!郁闷!我前后详细的弄了5次,都没出现真正的注册码!
不知道为什么!请各位高手指教,谢谢您了!
同时感谢LS的朋友,谢谢您!
能力值:
(RANK:260 )
11 楼
你的问题不回答了,不是不愿意回答,是你问得根本不在点子上,没法回答。
你基础知识缺太多了。这样学习是没什么效果的。
先好好学学编程,学学软件运行原理,否则你可能得花更多倍的时间和精力来弄清楚一些本来很基础的东西。
哪个是捷径哪个是弯路,你好好想想。
打个不恰当的比方,张无忌仗着九阳真经的基础,可以在几个时辰学会需要几十年的乾坤挪移之法。而杨逍则直接去练习乾坤大挪移,几十年只学得个入门级水平。
能力值:
( LV2,RANK:10 )
12 楼
恩,谢谢LS的朋友!我现在正在学C++,只会写几个系统控制台下的程序……哎……
您说叫我学学软件的运行原理?请问需要看什么样的书?
比如汇编语言和接口技术?还是什么?能否给我介绍下?
还有,能不能教我把这个注册码追出来,毕竟我弄了两天……我不想放弃这次的练手……
我朋友告诉我不能轻易放弃一样你快成功的东西……我希望我能把这个成功完成!帮帮我吧!谢谢了!
等这个弄好了,我就开始学习您说的这些了!我接触破解也没几天……我这几天学的,都是靠杂志上的破解文章来学习的……但是我也发现了,一些东西还得靠基础知识,呵呵!
能力值:
(RANK:260 )
13 楼
很好,在学C++,那就把C++学好。
先学好一种语言,等学得深入后,自然就对程序有更深入的认识了。
真要推荐书,去看看《编程高手箴言》——梁肇新,此书有些观点过于极端,但是对于程序的理解是很深入的。不过这书算不上是“教材”,教材的话,有一本国外的经典教材,《Computer Systems - A Programmer's Perspective》,中译本《深入理解计算机系统》,不过这本书很厚,而且书中的示例是用的Unix世界的代码,但对于真正想深入理解程序的人,这本书很值得一读。
对于Windows系统下开发,如果图书馆能找到《Windows操作系统原理》一书(中文书),是非常有帮助的。我指的是微软官方授权出版的,由Bill先生亲自作序的那本。 如果你真是练手,则大可不必抱着一个目标不放,现在搞不定,先放下,过一段时间自己提高了,没准很容易就搞定了。
如果是为了这一个软件,为了破解,再讨论也是无谓的。自知自重。
能力值:
( LV2,RANK:10 )
14 楼
呵呵,非常感谢LS的朋友!
其实我在破解的不是一个软件,而是一个carckme!
呵呵!这个carckme是杂志上的一个例子,我就拿着研究,我看了我们断点在GetWindowTextA这里断下点以后,就开始追码,可是我始终找不到这个注册码!我很郁闷!
我不是为了软件破解而来这里的!我是真想学习破解!
我知道很多人都是为了一个软件的破解来这个论坛注册个ID,但是这个ID最多发三几个贴就永远不上线了!
我个人对编程很感兴趣,我C也学了(但是不能说会.只能说是看完了,会写点阶乘之类的!)
虽然学习语言很累,但是我有信心学好……上次看到了反汇编这门技术,我就来到这里,而且尝试着看杂志来学习这个技术……呵呵!
谢谢您能为我解答这么多!我明天就去学校图书馆找这几本书(今天才借过一本LINUX,因为我对这个系统也很喜欢,我还打算往LINUX编程这方面发展……)
呵呵!谢谢您……
上传的附件:
能力值:
(RANK:260 )
15 楼
你真得找个简单点的了。
这个sha1加密的,属于算法型的CrackMe,而不是能“追出”注册码的那种,需要一定的密码学算法基础。
能力值:
(RANK:260 )
16 楼
算法:
对输入的名字,如"Pain",前面加上"DiKeN",变成"DiKeNPain",取SHA-160摘要值,并将摘要值的5个32位字(或按Windows习惯称为双字)进行异或,得到结果A
对输入的注册码,从首字节开始,取其ASCII值,减去0x30(即'0'),然后乘10,再循环加上后续的字节。
所以:对"DiKeNPain"取SHA1摘要,并将5个字节进行异或,得到的结果转换成十进制数,即为注册码。
能力值:
(RANK:260 )
17 楼
刚才看完代码就发了,现在补个结果
Name:Pain
Code:519488803
上图:
上传的附件:
能力值:
( LV2,RANK:10 )
18 楼
0040560C |. 8B45 F8 mov eax,dword ptr ss:[ebp-8]
0040560F |. E8 88EBFFFF call sha1crac.0040419C
00405614 |. 8BC8 mov ecx,eax
00405616 |. 334D D4 xor ecx,dword ptr ss:[ebp-2C]
00405619 |> 85C9 test ecx,ecx
0040561B |. 75 29 jnz short sha1crac.00405646 ; 爆破的话把这里改成JZ就可以了
0040561D |. 837D F4 00 cmp dword ptr ss:[ebp-C],0
00405621 |. 75 08 jnz short sha1crac.0040562B
00405623 |. 837D F0 04 cmp dword ptr ss:[ebp-10],4
00405627 |. 76 1D jbe short sha1crac.00405646
00405629 |. EB 02 jmp short sha1crac.0040562D
0040562B |> 7E 19 jle short sha1crac.00405646
0040562D |> 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
0040562F |. 68 AC564000 push sha1crac.004056AC ; |Title = "OK"
00405634 |. 68 AC564000 push sha1crac.004056AC ; |Text = "OK"
00405639 |. A1 0C754000 mov eax,dword ptr ds:[40750C] ; |
0040563E |. 50 push eax ; |hOwner => 006E0410 ('Crackme only SHA1 - DiKeN',class='MyWindowClass')
0040563F |. E8 E0E9FFFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00405644 |. EB 17 jmp short sha1crac.0040565D
00405646 |> 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
00405648 |. 68 B0564000 push sha1crac.004056B0 ; |Title = "No"
0040564D |. 68 B0564000 push sha1crac.004056B0 ; |Text = "No"
00405652 |. A1 0C754000 mov eax,dword ptr ds:[40750C] ; |
00405657 |. 50 push eax ; |hOwner => 006E0410 ('Crackme only SHA1 - DiKeN',class='MyWindowClass')
00405658 |. E8 C7E9FFFF call <jmp.&user32.MessageBoxA> ; \错误提示
0040565D |> 33C0 xor eax,eax
要是想追码的话,就进那个CALL自己研究吧。。。
呵呵。版主在这我本来是不想发的,可是我觉得。。。。。
最终还是发了。。对不对的就这样的。嘿嘿
能力值:
( LV2,RANK:10 )
19 楼
其实这个算法挺简单的。。。吼吼。。我就奇怪书呆怎么在这里这么长时间啊。呵呵
能力值:
( LV2,RANK:10 )
20 楼
睡觉了。书呆发算法了,偶就不发咯。。
能力值:
( LV2,RANK:10 )
21 楼
囧,,,这有什么好难的
不就是最正常的crackme嘛
能力值:
( LV2,RANK:10 )
22 楼
呵呵,非常谢谢LS的朋友!
我会好好学的!非常感谢!