前些天写了一个“个人日程助手1.0”算法分析和注册机编写。。。。。。。。
http://bbs.pediy.com/showthread.php?s=&threadid=17675
今天无聊中又在我的电脑电看到他。。。
就打开看看。。这就有了下文,让程序自己显示注册码。。
呵呵
双击来到下面:
0047AD7B . 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
0047AD7E . 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
0047AD81 . E8 1EC9FFFF CALL Assistan.004776A4 ;计算机器码,这我们不用管它
0047AD86 . 8B45 EC MOV EAX, DWORD PTR SS:[EBP-14]
0047AD89 . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0047AD8C . E8 5FD1F8FF CALL Assistan.00407EF0 ;关键CALL,计算注册码我们就在这找出注册码在赋值给谁了
0047AD91 . 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
0047AD94 . 58 POP EAX
0047AD95 . E8 9E96F8FF CALL Assistan.00404438 ;比较注册码
0047AD9A . 0F85 8B000000 JNZ Assistan.0047AE2B ;这关键跳,跳了就会显示注册码错误,我们改下面的↓
0047ADA0 . B2 01 MOV DL,1
0047ADA2 . A1 98E44200 MOV EAX,DWORD PTR DS:[42E498]
0047ADA7 . E8 EC37FBFF CALL Assistan.0042E598
0047ADAC . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
0047ADAF . 33C0 XOR EAX,EAX
0047ADB1 . 55 PUSH EBP
0047ADB2 . 68 24AE4700 PUSH Assistan.0047AE24
0047ADB7 . 64:FF30 PUSH DWORD PTR FS:[EAX]
0047ADBA . 64:8920 MOV DWORD PTR FS:[EAX],ESP
0047ADBD . BA 02000080 MOV EDX,80000002
0047ADC2 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0047ADC5 . E8 6E38FBFF CALL Assistan.0042E638
0047ADCA . 33C9 XOR ECX,ECX
0047ADCC . BA 74AE4700 MOV EDX,Assistan.0047AE74 ;Software\MyAssistant\Option
0047ADD1 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0047ADD4 . E8 C738FBFF CALL Assistan.0042E6A0
0047ADD9 . 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
0047ADDC . E8 8BC9FFFF CALL Assistan.0047776C
0047ADE1 . 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]
0047ADE4 . 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
0047ADE7 . E8 B8C8FFFF CALL Assistan.004776A4
0047ADEC . 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0047ADEF . BA 98AE4700 MOV EDX,Assistan.0047AE98 ;RegistryCode"注册码写入注册表
0047ADF4 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0047ADF7 . E8 403CFBFF CALL Assistan.0042EA3C
0047ADFC . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0047ADFF . E8 0438FBFF CALL Assistan.0042E608
0047AE04 . B8 B0AE4700 MOV EAX,Assistan.0047AEB0 ;弹出对话框注册成功
0047AE09 . E8 52E2FAFF CALL Assistan.00429060
0047AE0E . 33C0 XOR EAX,EAX
0047AE10 . 5A POP EDX
0047AE11 . 59 POP ECX
0047AE12 . 59 POP ECX
0047AE13 . 64:8910 MOV DWORD PTR FS:[EAX],EDX
0047AE16 . 68 35AE4700 PUSH Assistan.0047AE35
0047AE1B > 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0047AE1E . E8 B984F8FF CALL Assistan.004032DC
0047AE23 . C3 RETN
0047AE24 .^ E9 078CF8FF JMP Assistan.00403A30
0047AE29 .^ EB F0 JMP SHORT Assistan.0047AE1B
0047AE2B > B8 C4AE4700 MOV EAX,Assistan.0047AEC4 ;注册码不正确,请注册申请注册码!跳到这就失败了!
0047AE30 . E8 2BE2FAFF CALL Assistan.00429060
0047AE35 . 33C0 XOR EAX,EAX
从上面分析我们知道真正的注册码赋值给“DWORD PTR SS:[EBP-10]”了~~
那我们把弹出错误对话框给改掉,不就会显示真真正的注册码了嘛1
好了,我们开始动手。。。。。。
找到弹出错误对话框的地址
047AE2B > B8 C4AE4700 MOV EAX,Assistan.0047AEC4
我们已经知道注册码的所在那个值中了
我们把上面的改为
0047AE2B 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 注册码不正确,请注册申请注册码!
0047AE2E 90 NOP
0047AE2F 90 NOP
做存程序发。。。。运行~~~随便输入注册码点确定,呵呵弹出真正的注册码了,哈哈成功了~~~~`
呵呵~~~没有什么水平~~~~~
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)