首页
社区
课程
招聘
[求助]查找字符,全是英文,要怎么找关键跳?
发表于: 2008-11-29 14:07 7095

[求助]查找字符,全是英文,要怎么找关键跳?

2008-11-29 14:07
7095
先谢谢大家能看小弟的贴,谢谢,小弟的问题如下:
我在破解一个软件(我技术很差,才开始学,只会找关键跳来暴力破解),使用OD载入以后,为什么全是英文的?没有任何一个中文?我想问是不是字符被加密了?
那么请问这样的问题要怎么办呢?
谢谢大家,希望各位帮帮我!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
2
你看到的是汇编代码吧,建议不要上来就去破解什么软件,找几个crackme练手,先熟悉一下常用破解工具的使用吧
2008-11-29 14:16
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
请详细描述你的问题。

http://bbs.pediy.com/showthread.php?t=77709
2008-11-29 15:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢LS二位给回的贴!谢谢!
恩,crackme我也破解过好多了,比如标志位破解法,追码,灰色菜单,NAG窗口的我基本都接触过!我就去尝试弄一个软件,可是没成功!当然,论坛里的carckme我也看过了!有些都是字符加密的……根本找不到注册信息!请问这个要怎么办啊?
谢谢大家了!
2008-11-30 14:09
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
要从程序流程上入手,不要对“字符串”这个东西有依赖。

所谓拄着拐杖永远也学不会自己走路。

忘掉字符串,你才能走得更远
2008-11-30 14:49
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
6
很同意书呆子的观点.
2008-11-30 21:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
呵呵,我学到了一个GetWindowTextA这个涵数,我们可以断点在这里,使用bp GetWindowTextA
然后在找!呵呵!
2008-12-1 20:00
0
雪    币: 200
活跃值: (10)
能力值: ( 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
2008-12-1 20:02
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
9
你还在系统代码当中,需要返回用户代码分析。

试试ALT+F9,或多次Ctrl+F9,直到OD显示当前模块是程序的主模块。
2008-12-1 20:05
0
雪    币: 200
活跃值: (10)
能力值: ( 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的朋友,谢谢您!
2008-12-1 20:11
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
11
你的问题不回答了,不是不愿意回答,是你问得根本不在点子上,没法回答。

你基础知识缺太多了。这样学习是没什么效果的。

先好好学学编程,学学软件运行原理,否则你可能得花更多倍的时间和精力来弄清楚一些本来很基础的东西。

哪个是捷径哪个是弯路,你好好想想。

打个不恰当的比方,张无忌仗着九阳真经的基础,可以在几个时辰学会需要几十年的乾坤挪移之法。而杨逍则直接去练习乾坤大挪移,几十年只学得个入门级水平。
2008-12-1 20:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
恩,谢谢LS的朋友!我现在正在学C++,只会写几个系统控制台下的程序……哎……
您说叫我学学软件的运行原理?请问需要看什么样的书?
比如汇编语言和接口技术?还是什么?能否给我介绍下?
还有,能不能教我把这个注册码追出来,毕竟我弄了两天……我不想放弃这次的练手……
我朋友告诉我不能轻易放弃一样你快成功的东西……我希望我能把这个成功完成!帮帮我吧!谢谢了!

等这个弄好了,我就开始学习您说的这些了!我接触破解也没几天……我这几天学的,都是靠杂志上的破解文章来学习的……但是我也发现了,一些东西还得靠基础知识,呵呵!
2008-12-1 20:34
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
13
很好,在学C++,那就把C++学好。

先学好一种语言,等学得深入后,自然就对程序有更深入的认识了。

真要推荐书,去看看《编程高手箴言》——梁肇新,此书有些观点过于极端,但是对于程序的理解是很深入的。不过这书算不上是“教材”,教材的话,有一本国外的经典教材,《Computer Systems - A Programmer's Perspective》,中译本《深入理解计算机系统》,不过这本书很厚,而且书中的示例是用的Unix世界的代码,但对于真正想深入理解程序的人,这本书很值得一读。

对于Windows系统下开发,如果图书馆能找到《Windows操作系统原理》一书(中文书),是非常有帮助的。我指的是微软官方授权出版的,由Bill先生亲自作序的那本。

如果你真是练手,则大可不必抱着一个目标不放,现在搞不定,先放下,过一段时间自己提高了,没准很容易就搞定了。

如果是为了这一个软件,为了破解,再讨论也是无谓的。自知自重。
2008-12-1 21:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
呵呵,非常感谢LS的朋友!
其实我在破解的不是一个软件,而是一个carckme!
呵呵!这个carckme是杂志上的一个例子,我就拿着研究,我看了我们断点在GetWindowTextA这里断下点以后,就开始追码,可是我始终找不到这个注册码!我很郁闷!
我不是为了软件破解而来这里的!我是真想学习破解!
我知道很多人都是为了一个软件的破解来这个论坛注册个ID,但是这个ID最多发三几个贴就永远不上线了!
我个人对编程很感兴趣,我C也学了(但是不能说会.只能说是看完了,会写点阶乘之类的!)
虽然学习语言很累,但是我有信心学好……上次看到了反汇编这门技术,我就来到这里,而且尝试着看杂志来学习这个技术……呵呵!
谢谢您能为我解答这么多!我明天就去学校图书馆找这几本书(今天才借过一本LINUX,因为我对这个系统也很喜欢,我还打算往LINUX编程这方面发展……)
呵呵!谢谢您……
上传的附件:
2008-12-1 21:25
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
15
你真得找个简单点的了。

这个sha1加密的,属于算法型的CrackMe,而不是能“追出”注册码的那种,需要一定的密码学算法基础。
2008-12-1 21:54
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
16
算法:

对输入的名字,如"Pain",前面加上"DiKeN",变成"DiKeNPain",取SHA-160摘要值,并将摘要值的5个32位字(或按Windows习惯称为双字)进行异或,得到结果A

对输入的注册码,从首字节开始,取其ASCII值,减去0x30(即'0'),然后乘10,再循环加上后续的字节。

所以:对"DiKeNPain"取SHA1摘要,并将5个字节进行异或,得到的结果转换成十进制数,即为注册码。
2008-12-1 22:36
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
17
刚才看完代码就发了,现在补个结果

Name:Pain

Code:519488803

上图:

上传的附件:
2008-12-1 22:40
0
雪    币: 200
活跃值: (10)
能力值: ( 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自己研究吧。。。
呵呵。版主在这我本来是不想发的,可是我觉得。。。。。
最终还是发了。。对不对的就这样的。嘿嘿
2008-12-1 23:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
其实这个算法挺简单的。。。吼吼。。我就奇怪书呆怎么在这里这么长时间啊。呵呵
2008-12-1 23:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
睡觉了。书呆发算法了,偶就不发咯。。
2008-12-1 23:51
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
囧,,,这有什么好难的

不就是最正常的crackme嘛
2008-12-2 05:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
呵呵,非常谢谢LS的朋友!
我会好好学的!非常感谢!
2008-12-2 19:18
0
游客
登录 | 注册 方可回帖
返回
//