龙人在线
about me

Arron

抛砖只为引玉(QQ长期隐身在线)
不能富贵难成大器皆因懒,
胸无大志庸庸碌碌只为闲。

这里是我平时收集的和写的一些东西,希望和大家一起共同进步!

无聊看看电影 边听音乐边看 有空多交流
Google_search
Google
hot
latest
photos
还你真实的开幕式!震撼美图[转]【连载】 央行今日发行600万张面额10元奥运纪念钞(组图) 巧遇日本妹妹海滩拍片片 诱不可挡超级丰胸大美人
links
龙人在线 >> 学习资料 >> 破解教程 >> 商朝子的破解教学第八章(5)

商朝子的破解教学第八章(5)

来源:来自网络 作者:不详 日期:2010-06-23 热度:

就再跳到0040446F处,来继续比较前4位中的1、3两位
0040448F |> 33C0       XOR EAX,EAX                   <--1-4位全部比较完后会跳到这里
00404491 |. EB 05       JMP SHORT LIAOCACH.00404498
00404493 |> 1BC0       SBB EAX,EAX
00404495 |. 83D8 FF     SBB EAX,-1
00404498 |> 3BC3       CMP EAX,EBX
0040449A |. 0F85 AB000000 JNZ LIAOCACH.0040454B
004044A0 |. 8D7424 38     LEA ESI,DWORD PTR SS:[ESP+38]       <--与上面的大体相同嘛,将正确注册码的5-8位的内存地址装入ESI中
004044A4 |. 8D4424 18     LEA EAX,DWORD PTR SS:[ESP+18]       <--你输入的注册码的5-8位的内存地址装入EAX中
004044A8 |> 8A10       /MOV DL,BYTE PTR DS:[EAX]           <--得到你输入的注册码的第5 or 7位(道理我相信你一定已经明白了)
004044AA |. 8ACA       |MOV CL,DL                     <--再装入CL中
004044AC |. 3A16       |CMP DL,BYTE PTR DS:[ESI]           <--与正确的注册码的第5 or 7位比较
004044AE |. 75 1C       |JNZ SHORT LIAOCACH.004044CC         <--不相等就跳走
004044B0 |. 3ACB       |CMP CL,BL                     <--与BL中的00000000比较,看5-8位是否已经全部比较完毕
004044B2 |. 74 14       |JE SHORT LIAOCACH.004044C8         <--是的话就跳走
004044B4 |. 8A50 01     |MOV DL,BYTE PTR DS:[EAX+1]         <--得到你输入的注册码的第6 or 8位  
004044B7 |. 8ACA       |MOV CL,DL                     <--装入CL
004044B9 |. 3A56 01     |CMP DL,BYTE PTR DS:[ESI+1]         <--与正确的注册码的第6 or 8位比较
004044BC |. 75 0E       |JNZ SHORT LIAOCACH.004044CC         <--不正确就跳走
004044BE |. 83C0 02     |ADD EAX,2                     <--EAX加2,这样做的目的相信你已经知道了吧
004044C1 |. 83C6 02     |ADD ESI,2                     <--ESI也加上2
004044C4 |. 3ACB       |CMP CL,BL                     <--比较CL是否为空
004044C6 |.^75 E0       \JNZ SHORT LIAOCACH.004044A8         <--不是就跳回去再来一遍
004044C8 |> 33C0       XOR EAX,EAX                   <--5-8位全部比较完后全跳到这里
004044CA |. EB 05       JMP SHORT LIAOCACH.004044D1
004044CC |> 1BC0       SBB EAX,EAX
004044CE |. 83D8 FF     SBB EAX,-1
004044D1 |> 3BC3       CMP EAX,EBX
004044D3 |. 75 76       JNZ SHORT LIAOCACH.0040454B
004044D5 |. 8D7424 40     LEA ESI,DWORD PTR SS:[ESP+40]       <--将正确的注册码的9-12位的内存地址装入ESI
004044D9 |. 8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]       <--你输入的
004044DD |> 8A10       /MOV DL,BYTE PTR DS:[EAX]           <--得到你输入的注册码的第9 or 11位
004044DF |. 8ACA       |MOV CL,DL                     <--装入CL
004044E1 |. 3A16       |CMP DL,BYTE PTR DS:[ESI]           <--与正确的注册码的第9 or 11位比较
004044E3 |. 75 1C       |JNZ SHORT LIAOCACH.00404501         <--不对便跳走
004044E5 |. 3ACB       |CMP CL,BL                     <--看CL是否为空,即看9-12位是否全部比较完毕
004044E7 |. 74 14       |JE SHORT LIAOCACH.004044FD         <--是的话跳走
004044E9 |. 8A50 01     |MOV DL,BYTE PTR DS:[EAX+1]         <--得到你输入的注册码的第10 or 12位
004044EC |. 8ACA       |MOV CL,DL                     <--装入CL
004044EE |. 3A56 01     |CMP DL,BYTE PTR DS:[ESI+1]         <--与正确的注册码的第10 or 12位比较
004044F1 |. 75 0E       |JNZ SHORT LIAOCACH.00404501         <--不相等就跳走
004044F3 |. 83C0 02     |ADD EAX,2                     <--EAX加2
004044F6 |. 83C6 02     |ADD ESI,2                     <--ESI加2
004044F9 |. 3ACB       |CMP CL,BL                     <--看是否全部比较完毕
004044FB |.^75 E0       \JNZ SHORT LIAOCACH.004044DD         <--没有就跳回去再来一遍
004044FD |> 33C0       XOR EAX,EAX                   <--9-12位全部比较完毕后会跳到这里
004044FF |. EB 05       JMP SHORT LIAOCACH.00404506
00404501 |> 1BC0       SBB EAX,EAX
00404503 |. 83D8 FF     SBB EAX,-1
00404506 |> 3BC3       CMP EAX,EBX
00404508 |. 75 41       JNZ SHORT LIAOCACH.0040454B
0040450A |. 8D7424 48     LEA ESI,DWORD PTR SS:[ESP+48]       <--嘿嘿,都讲了三遍了,你一定明白了吧,所以我把这最后一段留给你自己来看吧,从这里到00404530处我相信你猜也猜的出来 (众人:鄙视你!)
0040450E |. 8D4424 28     LEA EAX,DWORD PTR SS:[ESP+28]
00404512 |> 8A10       /MOV DL,BYTE PTR DS:[EAX]
00404514 |. 8ACA       |MOV CL,DL
00404516 |. 3A16       |CMP DL,BYTE PTR DS:[ESI]
00404518 |. 75 1C       |JNZ SHORT LIAOCACH.00404536
0040451A |. 3ACB       |CMP CL,BL
0040451C |. 74 14       |JE SHORT LIAOCACH.00404532
0040451E |. 8A50 01     |MOV DL,BYTE PTR DS:[EAX+1]
00404521 |. 8ACA       |MOV CL,DL
00404523 |. 3A56 01     |CMP DL,BYTE PTR DS:[ESI+1]
00404526 |. 75 0E       |JNZ SHORT LIAOCACH.00404536
00404528 |. 83C0 02     |ADD EAX,2
0040452B |. 83C6 02     |ADD ESI,2
0040452E |. 3ACB       |CMP CL,BL
00404530 |.^75 E0       \JNZ SHORT LIAOCACH.00404512
00404532 |> 33C0       XOR EAX,EAX                   <--全部通过后来到这里
00404534 |. EB 05       JMP SHORT LIAOCACH.0040453B
00404536 |> 1BC0       SBB EAX,EAX
00404538 |. 83D8 FF     SBB EAX,-1
0040453B |> 3BC3       CMP EAX,EBX
0040453D |. 75 0C       JNZ SHORT LIAOCACH.0040454B
0040453F |. 8BC7       MOV EAX,EDI
00404541 |. 5F         POP EDI
00404542 |. 5E         POP ESI
00404543 |. 5D         POP EBP
00404544 |. 5B         POP EBX
00404545 |. 83C4 54     ADD ESP,54
00404548 |. C2 0400     RETN 4

我的注释写的还算清楚吧 ^_^,我再大概给你讲解一下:
软件的注册码是这样计算出来的,机器码中的各个字符的ASCII码加上1500后除以62的余数在密码表中对应的字符,就是相应的注册码。
比如说我这里的机器码为xn2urkeUMwpNv5xZ,x的ASCII码为78(十进制120) 78+5DC的值为654(即1620) 接着用1620除以3E(62)得商26余8,好的,我们从“密码表”0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ的开始处向后数8下,就会到了8这个字符,嘿嘿,这就是x对应的注册码。
好的,我给出Delphi的注册机(我仍将其写为函数的形式):
function KeyGen(Name: String): String;
var
S:String[16];
P:String;
Key:String;
i,N,Z:integer;
begin
P:='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
if Length(Name)<16 then
  Result:='机器码必须为16位...'
else
  begin
  S:=Name;
  for i:=1 to 16 do
    begin
      N:=Ord(S);
      N:=N+1500;
      Z:= N mod 62;
      Z:=Z+1;
      Key:=Key+P[Z];
    end;
  Result:=Key;
  end;
end;

呵呵,这一章就是最后一章了,现在也写完了.... 打个Kiss~~
<本章完>

写在最后
这篇教程到目前算是全部写完了,呵呵,我不知道它对你是否有帮助...但你肯赏个面子把它看完,偶在此还是要感谢一下的嘛嘿嘿,点名感谢版主zmworm老哥,没有他,你们看到的这篇文章中会有N多错字
我写这篇教程的目的,除了给那些初学Crack的新手讲解一下大概的方法外,另一个目的就是想告诉你:Crack一点儿也不神秘.....只要你有信心,不久的将来,你一定有成为老鸟的一天.....
我不知道你是否看懂了这篇教程,如果你没看懂,那么也不要失去信心,造成这样的原因,除多数是因为本人水平有限外,还有一小小小小部分是因为你的基础知识没有打好,建议你先花一些时间把那些基础知识给打好再过来学Crack...刚才看到看雪老哥这样回复一位网友的贴子:
初学者我是这样定义的:掌握了汇编、至少掌握了一门编程语言(当然最好得掌握Win32编程)。
一些读者什么基础都没有,就来学习加解密,刚开始可能还好,但到了一定程度是提高不了的。到时,不得不回过头再来学习汇编、编程,反而浪费时间和精力。
加密技术发展很快的,像以前改一、二个跳转就能爆破、明码比较的时代要过去了。所以想学,就得有扎实的基本功。
了解?
总而言之言而总之一句话,基础知识--------一定要掌握......否则的话没人能帮你!
前天在红盟看到狮子在主页上写了这样一段话:
有一天,在QQ上挂着,突然收到一个消息
(2002-12-03 23:16:04) 无敌小子
我打算入侵美国白宫的主页.
我现在有个软件叫流光,但是可我不会用.
你能教我吗?
呵呵,他的用意很明显,是想告诫那些Hack初学者......
学人家出来Hacking,连最基本的扫描器都不会用,就想去Hacking白宫的首页?这就好比连调试器都不会用就想把iPB的CrackMe给拿下一样....
勿在浮沙筑高台!

 

Tags: 商朝子的破解教学第八章(5)
广告位招租,广告代号:gg468
search
站内
advertise
Copyright © www.jx19.Com All rights reserved.