好了我们来到关键地方喽:
代码:
* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040111C(C) | :0040110C 0FBE840D48FFFFFF movsx eax, byte ptr [ebp+ecx-000000B8] :00401114 41 inc ecx :00401115 33C1 xor eax, ecx :00401117 03D8 add ebx, eax :00401119 3B4DD8 cmp ecx, dword ptr [ebp-28] :0040111C 75EE jne 0040110C
代码:
:0040111E 6BC006 imul eax, 00000006 ;EAX其实是上面最后一轮计算的结果,乘6 :00401121 C1E307 shl ebx, 07 ;EBX是几轮计算累加起来的结果,左移7位 :00401124 03C3 add eax, ebx ;加起来 :00401126 8945C8 mov dword ptr [ebp-38], eax :00401129 FF75C8 push [ebp-38] ;上面的结果,作为一个参数 * Possible StringData Ref from Data Obj ->"%lX" | :0040112C 6838B44000 push 0040B438 ;"%lX"有点眼熟哟 :00401131 8D8D80FEFFFF lea ecx, dword ptr [ebp+FFFFFE80] :00401137 51 push ecx ;这是什么呢? :00401138 E8873D0000 call 00404EC4 :0040113D 83C40C add esp, 0000000C
代码:
:00401140 8D8580FEFFFF lea eax, dword ptr [ebp+FFFFFE80];眼熟吗,刚才的转换结果呀 :00401146 50 push eax ;EAX指向上面转换得到的字符串 :00401147 8D95E4FEFFFF lea edx, dword ptr [ebp+FFFFFEE4];这个很早了,向前面找找是啥 :0040114D 52 push edx ;EDX指向我们输入的假注册码 * Reference To: KERNEL32.lstrcmpA, Ord:0000h | :0040114E E8339C0000 Call 0040AD86 :00401153 85C0 test eax, eax :00401155 750D jne 00401164 ;关键跳转哟
代码:
#include <string.h> #include <stdio.h> #include <stdlib.h> void main() { int EAX=0,EBX=0,len; char name[50]={0}; char password[50]={0}; printf("Please input your name:"); scanf("%s",name); len=strlen(name); for (int i=0;i<len;i++) { EAX=name[i]^(i+1); EBX+=EAX; } EAX*=6; EBX<<=7; EAX+=EBX; printf("Your password is: %lX\n",EAX); printf("KeyGen by RoBa Enjoy Cracking,Newbies!\n"); }
| 另类破解鸽子连接密码 | 03-21 | |
| 教菜鸟写注册机 | 12-27 | |
| QQ聊天记录察看器 5.2算法分析 | 12-04 | |
| 如何汉化一个软件 | 12-02 | |
| 扭曲变换加密 【目前防止软件被破 | 11-02 | |
| 破解利器Olldbg脚本教学(二)- | 11-01 | |
| 破解利器Olldbg脚本教学(二)- | 10-31 | |
| 破解利器Olldbg脚本教学(一)- | 10-30 | |
| 破解|利器|ollydbg|教学|Run tra | 10-28 | |
| 破解WebEasyMail v3.6.2.1 企业版 | 10-24 | |
| 破解利器OllyDBG入门系列(五)- | 10-18 | |
| 破解利器OllyDBG入门系列(四)- | 10-17 | |