吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 35586|回复: 104
收起左侧

[原创] 某档案管理软件 installshield安装程序序列号不完全分析

  [复制链接]
pk8900 发表于 2017-3-25 13:06
本帖最后由 pk8900 于 2018-2-28 09:37 编辑

先附上软件:某档案管理软件 链接: 链接: https://pan.baidu.com/s/1mj6Zbtu 密码: 5nr4
                   【更新分享注册机及补丁】链接:链接:http://pan.baidu.com/s/1pLK1TJd 密码:xwb7
相关工具软件:setup.inx文件反编译(sexy installshielddecompiler)
                        下载地址:http://www.greenxf.com/soft/75759.html
最近有个单位上班的朋友想让我找一个档案管理软件,于是我在网上开始寻找,试了很多,都不太理想,后来下载了一个KY档案管理软件,于是想安装看看,打开安装包,安装需要序列号,百度一下,没找到,又不甘心,便开始研究了一下。软件安装包采用的是InstallShield Installshield 封装,以前不太研究安装程序,对于InstallShield Installshield也不是太熟悉,OD调试安装程序,发现安装程序运行后,会调用一个新线程Ikernel.exe程序执行安装脚本,于是上网查相关资料,无意中看到关于安装文件 setup.inx的介绍的一个贴子,有个工具软件可以反编译,于是下载了一个【setup.inx文件反编译(sexy installshield decompiler) 】(地址:http://www.greenxf.com/soft/75759.html),打开setup.inx,反编译:
index.png

反编译1.png
菜单【view-message references,查看消息引用:


反编译 字符.png


找到注册码输入后的错误提示“序列号格式为XXXXX-XXXXX-XXXXX-XXXXX-XXXXX………”,双击找到代码位置:
[Delphi] 纯文本查看 复制代码
@00008347:0007         local_string4 = (global_string16 + "123456789012345678901234567890");
@00008372:0020         CalcSerialNo(local_string4); // dll: GetSerialNo.dll
@0000837B:0029         StrSub(global_string16, global_string16, 0, 29);
@0000838F:0029         StrSub(local_string4, local_string4, 0, 29);
@000083A3:000E         local_number4 = (global_string16 != local_string4);
@000083B0:0004         if(local_number4) then // ref index: 2
@000083BC:0021            MessageBox("序列号格式为XXXXX-XXXXX-XXXXX-XXXXX-XXXXX,全部为大写字母或数字,\n\n请检查字母的大小写。", -65535);
@00008420:0006            local_number3 = 0;
@0000842C:000D            local_number4 = (local_number2 = 3);
@0000843B:0004            if(local_number4) then // ref index: 1
@00008447:0002               abort;
@0000844B:0001            endif;
@0000844B:0001   label_844b:

大致分析一下代码:global_string16 ;安装界面输入的序列号DLL文件GetSerialNo.dll中有一个函数为:CalcSerialNo(字符串变量),此函数计算生成序列号,生成的序列号取前29位:即XXXXX-XXXXX-XXXXX-XXXXX-XXXXX格式,输入的序列号取前29位,进行对比,一样的话就能进行下一步,不一样的话MessageBox一个提示框。看到这里应该就有很多办法了,可以分析CalcSerialNo函数,得到序列号的生成算法,也可以写个程序调用CalcSerialNo函数,直接生成一个序列号:打开AU3(用着比较顺手,小程序用它方便快捷),写好代码:随便用“AAAAA-BBBBB-CCCCC-DDDDD-EEEEE”代入:
[Actionscript3] 纯文本查看 复制代码
Dim $b
$a=DllOpen ( "GetSerialNo.dll" ) 
MsgBox (0,0,$a)
$b="AAAAA-BBBBB-CCCCC-DDDDD-EEEEE" & "123456789012345678901234567890"
Local $stString = DllStructCreate("char[260]")
DllStructSetData($stString, 1, $b)
$c=DllCall($a,"none","CalcSerialNo","ptr",DllStructGetPtr($stString))   ;调用DLL 函数
MsgBox (0,0,@error) ;调用是否成功
MsgBox (0,0,DllStructGetData($stString, 1)) ;返回结果
ClipPut(DllStructGetData($stString, 1))  ;将结果置入剪贴板
sGetSerialNo.dll在安装软件运行时,系统临时目录里就有。】得到一个序列号:VQAAA-19YBB-ZMCCC-CZRDD-KBV6M,粘入安装程序,可以下一步继续安装了,哈哈,看来这个序列号不是太严格。软件安装完成后打开,有提示框,看来还在这等着呢。
软件运行提示.png

OD载入:OEP
[Asm] 纯文本查看 复制代码
0040276C >/$  68 94E44A00   push ArchiveM.004AE494
00402771  |.  E8 EEFFFFFF   call <jmp.&MSVBVM60.#ThunRTMain_100>
00402776  |.  0000          add byte ptr ds:[eax],al
00402778  |.  0000          add byte ptr ds:[eax],al
0040277A  |.  0000          add byte ptr ds:[eax],al
0040277C  |.  3000          xor byte ptr ds:[eax],al
0040277E  |.  0000          add byte ptr ds:[eax],al
00402780  |.  3800          cmp byte ptr ds:[eax],al
VB编的程序,采用加密狗限制使用,试用次数应该是计入一个数据库文件,OD查找字符串,一目了然。


注册字符串.png


关键代码


注册破解点.png


代码很清晰,改改条件,可以无限使用了,具体改法就不在这里写了,相信只要是论坛里呆上个把月,都不是问题,软件大概的试用了一翻,功能很多,操作不太人性化,这样的软件报价7K多,也不知道值不值这个价钱。说些题外话,接触逆向也有些年头了,无奈锁事太多,心无法静下来,到现在也还是一个菜鸟,最近一段时间打算下点功夫好好学习一下,毕竟不在年轻了,玩游戏的时代也过了,艺多不压身,会的东西多才能吃饱饭。写的不好,将就着看吧,等写的多了会好一点。
  应网友回复要求,我制作了注册机和补丁分享给大家,百度云地址:链接:链接:http://pan.baidu.com/s/1pLK1TJd 密码:xwb7

免费评分

参与人数 23吾爱币 +26 热心值 +22 收起 理由
jjd1979 + 1 + 1 我很赞同!
frerfghrtw + 1 + 1 链接失效了。楼主能分享一下原版程序吗?
hujunsw + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xiaoning8906 + 1 + 1 用心讨论,共获提升!
Hmily + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ugvnui + 1 + 1 好一个艺多不压身,给你点个赞!
hongdawx + 1 + 1 谢谢@Thanks!
海绵foryou + 1 + 1 热心回复!
cam001 + 1 + 1 艺多不压身!过了游戏的年龄
守护神艾丽莎 + 1 + 1 用心讨论,共获提升!
jgs + 1 + 1 谢谢@Thanks!
a5606495 + 1 + 1 谢谢@Thanks!
a2523188267 + 1 感谢楼主,让我 一下捡到了7K多
asdkula + 1 + 1 热心回复!
jori + 1 + 1 我很赞同!
lxcjy + 1 + 1 用心讨论,共获提升!
kim945 + 2 + 1 就冲最后两句话
oxxo119 + 1 + 1 我很赞同!
littlebit + 1 + 1 用心讨论,共获提升!写得很不错
mrqingzhuang + 1 已经处理,感谢您对吾爱破解论坛的支持!
ZF0806 + 1 热心回复!
数字蜀黍 + 1 + 1 我很赞同!
liphily + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hanxuliu 发表于 2020-3-11 15:43
本帖最后由 hanxuliu 于 2020-3-11 16:04 编辑

您好,软件破解打开后,需要输入密码,请问是多少能告知一下吗?谢谢

密码已经找到,isa,经过测试,软件不稳定,在录入文件时有任一条目录入不符合规范,随即无法保存到数据库,然后系统提示数据库连接错误,请退出软件,关于软件BUG较多,希望可以研究一下最新版管理软件,再破解分享,谢谢。
微信截图_20200311154301.png
nihao3640 发表于 2017-3-26 18:50
谢谢,思路分析很清楚,就是获取注册码,失败。
已破解。
jori 发表于 2017-3-26 09:18
有玩游戏的时间不如学学编译,正如楼主说的技多不愁!
yue2363311 发表于 2017-3-25 13:19
纯属热心恢复,看了支持回帖。
讨论思想 发表于 2017-3-25 13:25
到底注册码是多少啊兄弟
sciurine 发表于 2017-3-25 14:58
谢谢楼主哦
小怪哒哒熊 发表于 2017-3-25 15:14
我也想找这类的软件,可惜我还不如你。我是纯小白,如果你破译出来,能否传一份用用
meissen 发表于 2017-3-25 18:44
小白奢望破解版
因素 发表于 2017-3-25 19:23
希望早日研究明白!
littlebit 发表于 2017-3-25 21:46
{:1_928:}思路挺清晰的,虽然这软件我不用,哈哈哈,借鉴学习
qdhht 发表于 2017-3-25 22:54
用了楼主的序列号 打开exe会提示输入密码?这是什么原理
木木佬 发表于 2017-3-26 02:07
楼主谢谢了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 14:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表