--------------------------------------------------------------------------------
【准备】
红尘岁月大侠的SoftSnoop破解教程:http://bbs.pediy.com/showthread.php?t=87459
林板发布的 CConvert1.0 工具下载:http://bbs.pediy.com/showthread.php?t=88081
--------------------------------------------------------------------------------
【过程】
对尘岁月大侠的SoftSnoop破解方式一直很感兴趣,而今天大侠释放出了他的屠龙刀:【SoftSnoop_红尘岁月版】,又恰巧遇上林板今天发的一个CConvert 1.0工具需要注册码,于是就有了下文:
首先得到注册名的长度:
返回地址: 00409D2E 函数名称: __vbaLenBstr(MSVBVM50.DLL)
__vbaLenBstr: 计算字符串
字符串="CuteSnail"
__vbaLenBstr返回值: 0x00000009(字符串长度)
然后将注册名转换为ASCII码:
返回地址: 00409DF4 函数名称: __vbaStrVarVal(MSVBVM50.DLL)
__vbaStrVarVal: 把字符转ascii码
参数1=0x0012F488
字符=0x0012F4AC (vb字符串:"CuteS")
__vbaStrVarVal返回值: 0x00160B6C (unicode字符串"CuteS")
取注册名第一个字符的ASCII码值:
返回地址: 00409DFB 函数名称: rtcAnsiValueBstr(MSVBVM50.DLL)
rtcAnsiValueBstr: 把字符转为数据,在eax反馈结果
字符="C"
rtcAnsiValueBstr返回值: 0x00000043 (BYTE数值:0x43)
换为十进制:
返回地址: 00409E14 函数名称: rtcVarStrFromVar(MSVBVM50.DLL)
rtcVarStrFromVar: 变量转为字符串表示
保存结果=0x0012F464
变量=0x0012F474
rtcVarStrFromVar返回值: 0x0012F464 (vb字符串:" 67")(字符串)
取假注册码的长度:
返回地址: 00409E79 函数名称: __vbaLenBstr(MSVBVM50.DLL)
__vbaLenBstr: 计算字符串
字符串="12345678"
__vbaLenBstr返回值: 0x00000008(字符串长度)
将换为十进制的数值乘以固定数值20:
返回地址: 00409F25 函数名称: __vbaVarMul(MSVBVM50.DLL)
__vbaVarMul: 乘法运算
保存结果=0x0012F474
变量1=0x0012F434 (vb整型:20)
变量2=0x0012F4AC (vb字符串:" 67")
__vbaVarMul返回值: 0x0012F474 (vb双精度:1340.000000)
连接“REG-”字符串和上面的结果:返回地址: 00409F67 函数名称: __vbaVarCat(MSVBVM50.DLL)
__vbaVarCat: 变量联接
保存结果=0x0012F474
变量2=0x0012F48C (vb双精度:1340.000000)
变量3=0x0012F434 (vb字符串:"REG-")
__vbaVarCat返回值: 0x0012F474 (vb字符串:"REG-1340")
将上面的字符串再连接"-CODE"字符串: 返回地址: 00409F75 函数名称: __vbaVarCat(MSVBVM50.DLL)
__vbaVarCat: 变量联接
保存结果=0x0012F464
变量2=0x0012F424 (vb字符串:"-CODE")
变量3=0x0012F474 (vb字符串:"REG-1340")
__vbaVarCat返回值: 0x0012F464 (vb字符串:"REG-1340-CODE")
比较真假注册码了,关键:
返回地址: 00409F7C 函数名称: __vbaVarTstEq(MSVBVM50.DLL)
__vbaVarTstEq: 变量是否相等
变量1=0x0012F464 (vb字符串:"REG-1340-CODE")
变量2=0x0012F4BC (vb字符串:"12345678")
__vbaVarTstEq返回值: 0x00000000(NULL表示不相等)
不一样的话,给出错误信息: 返回地址: 0040A124 函数名称: __vbaVarDup(MSVBVM50.DLL)
__vbaVarDup: 变量复制,从变量1复制到变量2
变量1=0x0012F4EC
变量2=0x0012F5C8
__vbaVarDup返回值: 0x0012F474 (vb字符串:"Sorry, Better Luck Next Time!")
再弹出错误的对话框,呵呵:
返回地址: 0040A142 函数名称: rtcMsgBox(MSVBVM50.DLL)
rtcMsgBox: 显示对话框
对话框内容=0x0012F474 (vb字符串:"Sorry, Better Luck Next Time!")
参数2=0x00000000
标题=0x0012F464 (NULL)
参数4=0x0012F454
参数5=0x0012F444
rtcMsgBox返回值: 0x00000001(1表示OK)
。。。(中间省略)。。。
返回地址: 0040A0FA 函数名称: __vbaEnd(MSVBVM50.DLL)
__vbaEnd: 结束进程
异常: Floating Point - Inexact Result
返回地址: 0040A321 函数名称: Zombie_Release(MSVBVM50.DLL)
Zombie_Release返回值: 0x00000003
TID: 00000478h:
卸载ApiSnoop dll.
进程已被SoftSnoop终止
通过对上面的分析,便对CConvert 1.0软件的算法一目了然了,呵呵,SoftSnoop确实很彪悍呀!
--------------------------------------------------------------------------------
【总结】
正确的注册信息:
Name: CuteSnail
Code: REG-1340-CODE
Api监控程序其实也可以玩破解的。^v^
--------------------------------------------------------------------------------
【声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
--------------------------------------------------------------------------------
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课