作者原来没有注意上传的东西
注意原来是没有语音的作者更成语音了
以前在论坛上逛时发现这样一篇文章【练习从OD中提取代码做注册机】,那时把它收藏了没有来得及动手研究,这几天翻找东西,见了它手痒了,动手试了,也成功了,感觉这样的方法还不错,只可惜这东西没有视频所以,对很多菜鸟可能是只能膜拜,所以有做视频教程的冲动,就做了这个教程。希望大家看得懂吧。
首先要这样做我们必须知道目标程序的注册码的算法,在程序中的位置,并且对它的算法有一定的了解才行,并用OD找出来,然后对汇编编程熟悉才行,好了废话不多说,说做就做吧。
【文章标题】: 练习从OD中提取代码做注册机
【软件名称】: 小榕的黑客字典
【编写语言】: ASM
【使用工具】: OD,MASMPlus(论坛上有这个工具,写汇编程序用的)
【操作平台】: windowsXP sp2
【详细过程】
OD载入BP GetWindowTextA可以断下,两次断下后看见下面(请看视频教程)
00401BFA . 8D7C24 20 lea edi,dword ptr ss:[esp+0x20] 取用户名
00401BFE . 83C9 FF or ecx,0xFFFFFFFF
00401C01 . 33C0 xor eax,eax
00401C03 . F2:AE repne scas byte ptr es:[edi]
00401C05 . F7D1 not ecx
00401C07 . 49 dec ecx
00401C08 . 0F84 16020000 je UltraDic.00401E24 为空则跳走不算注册码
00401C0E . 8DBC24 840000>lea edi,dword ptr ss:[esp+0x84] 取注册名
00401C15 . 83C9 FF or ecx,0xFFFFFFFF
00401C18 . F2:AE repne scas byte ptr es:[edi]
00401C1A . F7D1 not ecx
00401C1C . 49 dec ecx
00401C1D . 0F84 01020000 je UltraDic.00401E24 为空则跳走不算注册码
00401C23 . 8D7C24 20 lea edi,dword ptr ss:[esp+0x20] 这里重新取注册名
00401C27 . 83C9 FF or ecx,0xFFFFFFFF 开始算注册码,先取
00401C2A . 33F6 xor esi,esi 得用户名的长度存
00401C2C . F2:AE repne scas byte ptr es:[edi] 入ecx中。
00401C2E . F7D1 not ecx
00401C30 . 49 dec ecx
00401C31 . 74 79 je XUltraDic.00401CAC
00401C33 > 0FBE7C34 20 movsx edi,byte ptr ss:[esp+esi+0x20] 这里取用户名
00401C38 . 8BC7 mov eax,edi 第一个字母开
00401C3A . B9 0A000000 mov ecx,0xA 算注册码。也
00401C3F . 99 cdq 循环开始处
00401C40 . F7F9 idiv ecx
00401C42 . 8BCA mov ecx,edx
00401C44 . 81E2 01000080 and edx,0x80000001
00401C4A . 79 05 jns XUltraDic.00401C51
00401C4C . 4A dec edx
00401C4D . 83CA FE or edx,0xFFFFFFFE
00401C50 . 42 inc edx
00401C51 > 75 16 jnz XUltraDic.00401C69
00401C53 . 8BC7 mov eax,edi
00401C55 . B9 1A000000 mov ecx,0x1A
00401C5A . 99 cdq
00401C5B . F7F9 idiv ecx
00401C5D . 80C2 41 add dl,0x41
00401C60 . 889434 480100>mov byte ptr ss:[esp+esi+0x148],dl 保存算好的注册码
00401C67 . EB 2E jmp XUltraDic.00401C97
00401C69 > 8BC1 mov eax,ecx
00401C6B . BB 03000000 mov ebx,0x3
00401C70 . 99 cdq
00401C71 . F7FB idiv ebx
00401C73 . 85D2 test edx,edx
00401C75 . 75 16 jnz XUltraDic.00401C8D
00401C77 . 8BC7 mov eax,edi
00401C79 . B9 1A000000 mov ecx,0x1A
00401C7E . 99 cdq
00401C7F . F7F9 idiv ecx
00401C81 . 80C2 61 add dl,0x61
00401C84 . 889434 480100>mov byte ptr ss:[esp+esi+0x148],dl
00401C8B . EB 0A jmp XUltraDic.00401C97
00401C8D > 80C1 31 add cl,0x31
00401C90 . 888C34 480100>mov byte ptr ss:[esp+esi+0x148],cl 保存算好的注册
00401C97 > 8D7C24 20 lea edi,dword ptr ss:[esp+0x20]
00401C9B . 83C9 FF or ecx,0xFFFFFFFF
00401C9E . 33C0 xor eax,eax
00401CA0 . 46 inc esi 这是一个循环变量计数作用
00401CA1 . F2:AE repne scas byte ptr es:[edi]
00401CA3 . F7D1 not ecx
00401CA5 . 49 dec ecx
00401CA6 . 3BF1 cmp esi,ecx
00401CA8 .^ 72 89 jb XUltraDic.00401C33 返回循环
练习从OD中提取代码写注册机.rar
练习从OD中提取代码写注册机.rar
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课