您的位置:首页精文荟萃破解文章 → 黑客字典II 算法分析

黑客字典II 算法分析

时间:2004/10/15 0:53:00来源:本站整理作者:蓝点我要评论(0)

 

实际上它也不用pj,在作者网上已经有密码了。写此文,只是看看它的注册方式而已。
黑客字典II是一个共享软件,如果您需要使用它的全部功能,测需要进行注册。这种注册是免费的。您只要发一封标题为“注册”的电子邮件到作者信箱中即可收到以同样方式发回的注册码。为了给作者少添点麻烦,还是自己解决吧。
作用:生成字典档文件。
1、输入用户名和注册码后,启动TRW2000,设中断BPX HMEMCPY 再回到程序中,按确定,拦截成功。
2、按F10直到第二次回到程序中是慢走。看到如下程序。
0167:00401BC6  CALL     00420016
0167:00401BCB  MOV      EAX,[EBP+78]
0167:00401BCE  LEA      ESI,[EBP+5C]
0167:00401BD1  PUSH     EBX
0167:00401BD2  PUSH     BYTE -01
0167:00401BD4  PUSH     DWORD B1
0167:00401BD9  PUSH     EAX
0167:00401BDA  CALL     EDI
0167:00401BDC  MOV      ECX,[ESI+1C]
0167:00401BDF  PUSH     EBX
0167:00401BE0  PUSH     EBX
0167:00401BE1  PUSH     DWORD B7
0167:00401BE6  PUSH     ECX
0167:00401BE7  CALL     EDI
0167:00401BE9  LEA      EDX,[ESP+84]
0167:00401BF0  PUSH     BYTE +64
0167:00401BF2  PUSH     EDX
0167:00401BF3  MOV      ECX,ESI
0167:00401BF5  CALL     00420016
0167:00401BFA  LEA      EDI,[ESP+20]
0167:00401BFE  OR       ECX,BYTE -01
0167:00401C01  XOR      EAX,EAX
0167:00401C03  REPNE SCASB
0167:00401C05  NOT      ECX
0167:00401C07  DEC      ECX
0167:00401C08  JZ       NEAR 00401E24
0167:00401C0E  LEA      EDI,[ESP+84]
0167:00401C15  OR       ECX,BYTE -01
0167:00401C18  REPNE SCASB
0167:00401C1A  NOT      ECX
0167:00401C1C  DEC      ECX
0167:00401C1D  JZ       NEAR 00401E24
0167:00401C23  LEA      EDI,[ESP+20]
0167:00401C27  OR       ECX,BYTE -01
0167:00401C2A  XOR      ESI,ESI
0167:00401C2C  REPNE SCASB
0167:00401C2E  NOT      ECX
0167:00401C30  DEC      ECX
0167:00401C31  JZ       00401CAC
上面的代码是什么意思,你自己看吧。重点是下文。
0167:00401C33  MOVSX    EDI,BYTE [ESP+ESI+20]取用户名中的一个字节,
0167:00401C38  MOV      EAX,EDI做为被除数
0167:00401C3A  MOV      ECX,0A除数
0167:00401C3F  CDQ    
0167:00401C40  IDIV     ECX
0167:00401C42  MOV      ECX,EDX余数传给ECX。
0167:00401C44  AND      EDX,80000001进行与运算,
0167:00401C4A  JNS      00401C51不为负就跳。
0167:00401C4C  DEC      EDX
0167:00401C4D  OR       EDX,BYTE -02
0167:00401C50  INC      EDX
0167:00401C51  JNZ      00401C69不为零就跳
0167:00401C53  MOV      EAX,EDI否则重新赋值再次进行计算。
0167:00401C55  MOV      ECX,1A此次除数被换成1A。
0167:00401C5A  CDQ    
0167:00401C5B  IDIV     ECX
0167:00401C5D  ADD      DL,41余数与DL相加得出注册码
0167:00401C60  MOV      [ESP+ESI+0148],DL把注册码存入[ESP+ESI+0148]中。
0167:00401C67  JMP      SHORT 00401C97
0167:00401C69  MOV      EAX,ECX把余数传给EAX
0167:00401C6B  MOV      EBX,03
0167:00401C70  CDQ    
0167:00401C71  IDIV     EBX
0167:00401C73  TEST     EDX,EDX
0167:00401C75  JNZ      00401C8D不为零就跳,用上面的结果ECX+31得出注册码。
0167:00401C77  MOV      EAX,EDI如果为零重新赋值计算。
0167:00401C79  MOV      ECX,1A除数
0167:00401C7E  CDQ    
0167:00401C7F  IDIV     ECX
0167:00401C81  ADD      DL,61 余数DL与61相加得出注册码
0167:00401C84  MOV      [ESP+ESI+0148],DL
0167:00401C8B  JMP      SHORT 00401C97
0167:00401C8D  ADD      CL,31得出注册码
0167:00401C90  MOV      [ESP+ESI+0148],CL
0167:00401C97  LEA      EDI,[ESP+20]你所输入的用户名串地址。
0167:00401C9B  OR       ECX,BYTE -01
0167:00401C9E  XOR      EAX,EAX
0167:00401CA0  INC      ESI
0167:00401CA1  REPNE SCASB
0167:00401CA3  NOT      ECX
0167:00401CA5  DEC      ECX
0167:00401CA6  CMP      ESI,ECX ESI是循环的次数。 ECX是用户名的总的位数,
0167:00401CA8  JC       00401C33有进位(也就是没有循环完毕)就跳进行下一轮计算。
0167:00401CAA  XOR      EBX,EBX
0167:00401CAC  PUSH     EBP
0167:00401CAD  LEA      ECX,[ESP+EC]
0167:00401CB4  MOV      [ESP+ESI+014C],BL
0167:00401CBB  CALL     00401EB0
0167:00401CC0  MOV      [ESP+01B4],EBX
0167:00401CC7  LEA      ESI,[ESP+84]假码。
0167:00401CCE  LEA      EAX,[ESP+0148]真码
至此就可以结束了,下文是进行比较。
0167:00401CD5  MOV      DL,[EAX]
0167:00401CD7  MOV      CL,DL
0167:00401CD9  CMP      DL,[ESI]
0167:00401CDB  JNZ      00401CF9
0167:00401CDD  CMP      CL,BL
0167:00401CDF  JZ       00401CF5
0167:00401CE1  MOV      DL,[EAX+01]
0167:00401CE4  MOV      CL,DL
0167:00401CE6  CMP      DL,[ESI+01]
0167:00401CE9  JNZ      00401CF9
0167:00401CEB  ADD      EAX,BYTE +02
0167:00401CEE  ADD      ESI,BYTE +02
0167:00401CF1  CMP      CL,BL
0167:00401CF3  JNZ      00401CD5
0167:00401CF5  XOR      EAX,EAX
0167:00401CF7  JMP      SHORT 00401CFE
0167:00401CF9  SBB      EAX,EAX
0167:00401CFB  SBB      EAX,BYTE -01
总结:用户名有几位,注册码就有几位。举例。
用户名:abcde
密码:8UvW2



    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程