首页
社区
课程
招聘
[旧帖] [求助]关于《某国产软件暴破方法 》的些问题 0.00雪花
发表于: 2008-2-14 13:31 4077

[旧帖] [求助]关于《某国产软件暴破方法 》的些问题 0.00雪花

2008-2-14 13:31
4077
我用的是后台管理,注册界面
参数1值:5A9B492942546DC5E3F631FF815DAB0C

参数2值:3JV8ABWC
ACSII码:334A563841425743

参数3值:3913-1075053569
ACSII码:333931332D31303735303533353639

固定参数:SCMBUILDER9            //这是后台管理的固定参数  
ACSII码:53434D4255494C44455239

根据以上算法,可得注册码:A0D4 747B 7E97 9A07 3629 6D40 C797 D841

但得到的注册码不正确,上面说的暴力破解我不会,请高手帮忙看看注册码到怎样才能得到,如果须要华威管理按装文件可以加我QQ188145597 我发给大家,谢谢,帮忙看看

【原创】***************的注册码算法分析,附暴破方法

[软件名称]:*******************
[软件用途]:无硬件环境,详细作用不明确
[破解工具]:UtrlEdit10.20 ,OllyDbg1.09 ,W32Dasm8.93白金版
[破解方法]:找出注册码的算法,另附加暴力破解方法
[额外说明]:主程序本身无壳,仅自带文件“pos58j.dll”带一弱壳,可用工具自动脱,不脱好象也无影响
[破解目的]:仅受托于本论坛某初学者自我学习要求,本人也只限于学习,无任何商业目的

一、注册码校验原理

注册界面,系统会产生三个参数,依次称为参数1、参数2、参数3,系统内部还有一个固定参数字符串:SCMBUILDERYYPOS9,注册程序就是使用输入的注册码依次与固定参数、参数3、参数2的ACSII码逐位进行16进制加运算。输入的注册码各位必须是16进制数字,共为16位。固定参数也为16位,参数3和参数2一般不够16位,进行加运算的时候就循环进行,所有逐位运算结果只取低位值。最后得出的结果与参数1进行比较,如果一样,就正确注册,不一样,弹出错误提示。


在我的机器中运行,程序注册窗口的各参数如下:

参数1值:53 53 98 68 3C 6D 94 13 0D 8F D3 0D 12 D7 A8 1E
参数2值:5JVL4E5Q ACSII码:35 4A 56 4C 34 45 35 51
参数3值:067594 ACSII码:30 36 37 35 39 34
固定参数:SCMBUILDERYYPOS9 ACSII码:53 43 4D 42 55 49 4C 44 45 52 59 59 50 4F 53 39
根据以上算法,可得注册码:9B90 BEA5 7AAB E348 5CBE EB34 5E0D E95F

下面为详细算法实例解析,实际计算注册码时,请使用你机器的3个参数替换。

算法的代码见“四、暴力破解”。

二、注册码算法实例(逆向)

我的机器参数如下:

参数1值:53 53 98 68 3C 6D 94 13 0D 8F D3 0D 12 D7 A8 1E
参数2值:5JVL4E5Q ACSII码:35 4A 56 4C 34 45 35 51
参数3值:067594 ACSII码:30 36 37 35 39 34

现在根据参数1,2,3逆向计算正确的注册码。

1、参数1连续依次减去参数2:5JVL4E5Q 的ACSII码值

53 53 98 68 3C 6D 94 13 0D 8F D3 0D 12 D7 A8 1E
35 4A 56 4C 34 45 35 51 35 4A 56 4C 34 45 35 51
16进制减法 -------------------------------------------------取低位值
1E 09 42 1C 08 28 5F C2 D8 45 7D C1 DE 92 73 CD

2、第1步结果连续依次减去参数3:067594 的ACSII码值

1E 09 42 1C 08 28 5F C2 D8 45 7D C1 DE 92 73 CD
30 36 37 35 39 34 30 36 37 35 39 34 30 36 37 35
16进制减法 -------------------------------------------------取低位值
EE D3 0B E7 CF F4 2F 8C A1 10 44 8D AE 5C 3C 98

3、第2步结果连续依次减去固定参数 SCMBUILDERYYPOS9 的
ACSII码:53 43 4D 42 55 49 4C 44 45 52 59 59 50 4F 53 39

EE D3 0B E7 CF F4 2F 8C A1 10 44 8D AE 5C 3C 98
53 43 4D 42 55 49 4C 44 45 52 59 59 50 4F 53 39
16进制减法 -------------------------------------------------取低位值
9B 90 BE A5 7A AB E3 48 5C BE EB 34 5E 0D E9 5F

4、第3步结果两两拼合,即可得出正确的注册码
9B90 BEA5 7AAB E348 5CBE EB34 5E0D E95F

三、注册机

算法很简单,自己手算也可在5分钟内得出,再兼于是国产软件,就不做了。

四、如果不想找注册码,可如下暴力破解,由于每个CALL内的代码都特别长,这里就精简了。

1、先寻找以下到语句,看注册码的运算原理(可与注册算法步骤对应看)。

'赋值寄存器,准备进行算法运算

0053E8E6 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0053E8E9 |. 8B43 08 MOV EAX,DWORD PTR DS:[EBX+8]

'将输入的注册码的16进制字符串与固定参数:SCMBUILDERYYPOS9 的ACSII码
'(53 43 4D 42 55 49 4C 44 45 52 59 59 50 4F 53 39)
'逐位进行16进制加法,相加结果只取低位值

0053E8EC |. E8 8FF2FFFF CALL YYPOS.0053DB80

'将上一步所得结果赋值寄存器,准备进行下一步算法运算

0053E8F1 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0053E8F4 |. 8D4D FC LEA ECX,DWORD PTR SS:[EBP-4]
0053E8F7 |. 8B43 04 MOV EAX,DWORD PTR DS:[EBX+4]

'将上步骤得出的16进制字符串结果与参数3的ACSII码
'循环逐位进行16进制加法,相加结果只取低位值

'将上步骤得出的16进制字符串结果与参数2的ACSII码
'循环逐位进行16进制加法,相加结果只取低位值

0053E8FA |. E8 F5F5FFFF CALL YYPOS.0053DEF4

'将计算出的16进制字符串存EDX

0053E8FF 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]

'将注册窗口的参数1的16进制字符串存EAX

0053E902 |. 8B03 MOV EAX,DWORD PTR DS:[EBX]

'执行文本比较,返回BL,BL不为0,正确;为0,错误

0053E904 |. E8 2F59ECFF CALL YYPOS.00404238
0053E909 |. 75 04 JNZ SHORT YYPOS.0053E90F

'如果BL不为0,至BL为1,跳转YYPOS.0053E911;如果BL为0,跳转YYPOS.0053E90F

0053E90B |. B3 01 MOV BL,1
0053E90D |. EB 02 JMP SHORT YYPOS.0053E911

'BL清0,AL清0

0053E90F |> 33DB XOR EBX,EBX
0053E911 |> 33C0 XOR EAX,EAX
0053E913 |. 5A POP EDX
0053E914 |. 59 POP ECX
0053E915 |. 59 POP ECX
.......
0053E934 |. C3 RET

2、根据以上注册码比较原理,可如下暴破:

'原理是:原来EDX是用计算出的字符串赋值的,现在改为用实际参数1赋值
'这将抛弃算法计算结果,保证比较永远正确

'将:

0053E8FF 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]

'改为:

0053E8FF 8B13 MOV EDX,DWORD PTR DS:[EBX]
0053E901 90 NOP

'暴破OK!

3、由于我没有POS机,暴破不能完全测试,但根据分析,应该没问题。

五、题外话

本不想写破文,但觉得这个破解简单、完美,适合初学者的进步,就花时间写了。
整个破解过程只使用了2个小时,整理思路近1个小时,写此篇教程用1个小时,这可能就是高手们不愿意写详细破文的原因,所以,请大家不要责怪高手,时间对于每个人都很宝贵,自学很重要。

再:由于国产软件,请小范围内交流,谢谢

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢,帮忙看看
2008-2-14 16:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了,顶一下哦!!!!!!!!!
2008-2-14 21:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,帮忙看看
2008-2-14 21:32
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
交个朋友吧,我的QQ42007928
2008-2-14 21:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
'将:

0053E8FF 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]

'改为:

0053E8FF 8B13 MOV EDX,DWORD PTR DS:[EBX]
0053E901 90 NOP

'暴破OK!

如果楼主会用od的话,应该很简单

应该就是把0053E8FF这一行双击,改成上面的,再把下一行,也就是0053e901给nop掉(右键--二进制--nop填充)
2008-2-14 21:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我用W32Dasm但没打到  0053E8FF 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
2008-2-14 22:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个方法现在可能不行了,有没有别的方法注册啊,
2008-2-14 22:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
od我用了,也改了可是还是不行啊
这个方法现在可能不行了,有没有别的方法注册啊,
2008-2-14 23:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢,帮忙看看
2008-2-15 14:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个办法我也使了不行啊,请高手帮忙看看
2008-2-15 19:55
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
国产软件你还是把软件名适当隐去比较好
2008-11-24 15:00
0
游客
登录 | 注册 方可回帖
返回
//