xxx管理软件V2.51算法分析+吾爱破解注册机生成器编写 算法注册机
本帖最后由 H夜 于 2019-6-6 18:21 编辑软件下载地址:http://www.crsky.com/soft/32113.html
使用工具:OD,吾爱破解注册机生成器V1.01D
首先OD载入程序搜索字符串,搜索“注册成功”字样
定位到:
006A81C9 .E8 466DDAFF call 0044EF14
006A81CE .8BC3 mov eax,ebx
006A81D0 .E8 F7BAD5FF call 00403CCC
006A81D5 .6A 40 push 0x40
006A81D7 .68 B0826A00 push 006A82B0 ;软件注册
006A81DC .68 BC826A00 push 006A82BC ;注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!
006A81E1 .8B45 FC mov eax,dword ptr ss:
向上回朔 找到关键CALL (当然为什么选择这里作为关键呢,只要在这个CALL下段,往下跟就知道了,会出现真码的,也就是明码比较的判断)
006A812F .64:8920 mov dword ptr fs:,esp
006A8132 .8B45 FC mov eax,dword ptr ss:
006A8135 .E8 AE020000 call 006A83E8 ;关键算法
006A813A .84C0 test al,al
006A813C .0F84 DB000000 je 006A821D
006A8142 .33C0 xor eax,eax
006A8144 .55 push ebp
进入关键CALL
006A83E8/$55 push ebp
006A83E9|.8BEC mov ebp,esp
006A83EB|.33C9 xor ecx,ecx
006A83ED|.51 push ecx
006A83EE|.51 push ecx
006A83EF|.51 push ecx
006A83F0|.51 push ecx
006A83F1|.51 push ecx
006A83F2|.53 push ebx
006A83F3|.56 push esi
006A83F4|.8BF0 mov esi,eax
006A83F6|.33C0 xor eax,eax
006A83F8|.55 push ebp
006A83F9|.68 A3846A00 push 006A84A3
006A83FE|.64:FF30 push dword ptr fs:
006A8401|.64:8920 mov dword ptr fs:,esp
006A8404|.8D55 FC lea edx,
006A8407|.8B86 14030000 mov eax,dword ptr ds:
006A840D|.E8 C66ADEFF call 0048EED8 ;取假码
006A8412|.8B45 FC mov eax,
006A8415|.50 push eax
006A8416|.8D55 F4 lea edx,
006A8419|.8B86 10030000 mov eax,dword ptr ds:
006A841F|.E8 B46ADEFF call 0048EED8 ;取机器码
006A8424|.8B55 F4 mov edx,
006A8427|.8D4D F8 lea ecx,
006A842A|.8BC6 mov eax,esi
006A842C|.E8 EFFAFFFF call 006A7F20 ;取真实注册码
006A8431|.8B55 F8 mov edx,
006A842C|.E8 EFFAFFFF call 006A7F20 ;这里也就是关键算法CALL了。
这里将机器码转换为16进制ASCII码,保存在EAX中
006A7F5C|.E8 CBCED5FF call 00404E2C
006A7F61|.8BF0 mov esi,eax ;将长度付给ESI
006A7F63|.85F6 test esi,esi
006A7F65|.7E 26 jle short 006A7F8D
006A7F67|.BB 01000000 mov ebx,0x1
006A7F6C|>8D4D EC /lea ecx,
006A7F6F|.8B45 FC |mov eax,
006A7F72|.0FB64418 FF |movzx eax,byte ptr ds:
006A7F77|.33D2 |xor edx,edx
006A7F79|.E8 AA20D6FF |call 0040A028 ;取ascii码
006A7F7E|.8B55 EC |mov edx, ;将结果放到EDX中
006A7F81|.8D45 F8 |lea eax,
006A7F84|.E8 ABCED5FF |call 00404E34 ;拼接转换后的ascii码
006A7F89|.43 |inc ebx ;ebx加1
006A7F8A|.4E |dec esi ;esi减1
006A7F8B|.^ 75 DF \jnz short 006A7F6C
006A7F8D|>8B45 F8 mov eax, ;将机器码转换结果放入eax中
006A7F90|.E8 97CED5FF call 00404E2C
006A7F95|.8BF0 mov esi,eax
这里将转换后的EAX中的ASCII码倒序
006A7F97|.85F6 test esi,esi
006A7F99|.7E 2C jle short 006A7FC7
006A7F9B|.BB 01000000 mov ebx,0x1
006A7FA0|>8B45 F8 /mov eax,
006A7FA3|.E8 84CED5FF |call 00404E2C
006A7FA8|.2BC3 |sub eax,ebx
006A7FAA|.8B55 F8 |mov edx,
006A7FAD|.8A1402 |mov dl,byte ptr ds:
006A7FB0|.8D45 E8 |lea eax,
006A7FB3|.E8 8CCDD5FF |call 00404D44
006A7FB8|.8B55 E8 |mov edx,
006A7FBB|.8D45 F4 |lea eax,
006A7FBE|.E8 71CED5FF |call 00404E34
006A7FC3|.43 |inc ebx
006A7FC4|.4E |dec esi
006A7FC5|.^ 75 D9 \jnz short 006A7FA0
006A7FC7|>8D45 F8 lea eax, ;将机器码转换后的ascii码倒序
006A7FCA|.50 push eax
006A7FCB|.B9 04000000 mov ecx,0x4
006A7FEB|.8B45 F4 mov eax,
006A7FEE|.E8 99D0D5FF call 0040508C ;取注册码前四位
006A7FF3|.8B45 F8 mov eax,
006A802F|> \8B45 F4 mov eax, ;取注册码前五-八位
006A8032|.E8 F5CDD5FF call 00404E2C
006A8037|.83F8 04 cmp eax,0x4
将固定字符Salemem45erpe放入EDX中,并取出前四位与第五位至第九位
006A806B|> \8D45 F0 lea eax,
006A806E|.BA F8806A00 mov edx,006A80F8 ;Salemem45erpe
006A8073|.E8 7CCBD5FF call 00404BF4
006A8078|.8D45 DC lea eax,
006A807B|.50 push eax
006A807C|.B9 04000000 mov ecx,0x4
006A8081|.BA 01000000 mov edx,0x1
006A8086|.8B45 F0 mov eax,
006A8089|.E8 FECFD5FF call 0040508C
006A808E|.FF75 DC push ;取出字符串的前四位
006A8091|.68 10816A00 push 006A8110 ;-
006A8096|.FF75 F8 push
006A8099|.8D45 D8 lea eax,
006A809C|.50 push eax
006A809D|.B9 05000000 mov ecx,0x5
006A80A2|.BA 05000000 mov edx,0x5
006A80A7|.8B45 F0 mov eax,
006A80AA|.E8 DDCFD5FF call 0040508C
006A80AF|.FF75 D8 push ;取出字符串的4-9位
006A80B2|.68 10816A00 push 006A8110 ;-
006A80B7|.FF75 F4 push
最后将字符串拼接
总结:
取出机器码:12345678901234567891
将机器码转换为16进制ASCII码:3132333435363738393031323334353637383931
将转换后的结果倒序:1393837363534333231303938373635343332313
取出前四位:1393
取出前五至八位:8373
取出固定字符串前四位:Sale
取出固定字符串前五至九位:mem45
拼接结果:Sale-1393mem45-8373
至此注册码算法结束。
附上吾爱破解专用注册机编写代码:
Function GetMC(X)
MC=X
End Function
Function GetSN()
dim a,b,c,d,e,f,g,i
c = "Salemem45erpe"
for i=1 to len(mc)
b=mid(mc,i,1)
a=a&cstr(hex(asc(b)))
next
a=strreverse(a)
d=mid(a,1,4)
e=mid(a,5,4)
f=mid(c,1,4)
g=mid(c,5,5)
GetSN = f&"-"&d&g&"-"&e
End Function
上张图:
如果帮到你了,请加点热心值哦。。谢谢啦
该注册机仅对部分算法进行分析,实际上还是不建议使用的有暗装。
虽然不是很复杂,但分析很完整,还给出注册机的编写方式,加精鼓励,期待更多分享。 沙发。。谢谢分享!~~ 谢谢分享学习了 感谢分享,像这样的注册机 不知道咋用呀 {:1_918:}好东西,谢谢楼主发布。 精彩的分析,学习了。 分析很精彩。 谢谢表哥分享,学习收藏!!
谢谢提供这么好的工具 谢谢楼主分享