首页
社区
课程
招聘
[原创]某pdf转word v6.3.0.2算法分析
发表于: 2017-12-22 23:08 7884

[原创]某pdf转word v6.3.0.2算法分析

2017-12-22 23:08
7884

【文章标题】某pdf转word v6.3.0.2算法分析
【原版下载】www.pdfcword.cn
【保护方式】序列号
【分析过程】

直接OD载入程序,入口是“一call一jmp”,基本上就是VS高版本编译的

为了避免随机基址的影响,先去除随机基址。找到“PE”下一行偏移为6的字节处,将“02”修改为“03”,可去掉随机基址

随便输入一串注册码

此处MessageBox是断不下来的,使用“F12大法”:OD中按F12暂停程序,Alt+K查看调用堆栈

“黄框”部分是ycomuiu.DuiLib::CWindowWnd::ShowModal,搞这个软件之前我也没用过这个框架,百度了一下“在duilib中,可以调用CWindowWnd::ShowModal()来实现模态框的显示”, 在段尾retn处下断点
注意:消息循环是在CWindowWnd::ShowModal()中实现的,假如在ShowModal下面的几个函数返回处下断点,基本上就迷失在消息循环中了,由于不了解DuiLib我在这里耗了很久才跳出来的
然后点击“确定”按钮,会在刚才下断的地方段下来,F8

此处重点分析注册码生成部分:

注册码分为4小段,其实算法基本上都一样,只是取的区间不同,注册码的第4段

注册码的第2和3段,其他几段大同小异

网络验证部分的代码:

网络验证函数sub_46CC70()返回1表示验证失败,打补丁修改返回值即可去除网络验证

编写注册机,其实没必要分析机器码的生成,由于我不了解一般软件如何获取机器码的,我就慢慢的从头到尾跟一遍,这一跟才发现机器码的生成比注册码的生成麻烦多了,不过也学到了不少东西,如何获取硬件信息,如何获取物理内存信息等等

打开软件,点击:注册-->购买序列号,在下图弹窗找到本机的机器码“89354AF54032753D”

问题:这个机器码是在那里生成的?
最挫的方法:一步一步跟,注册码是根据机器码算出来的,所以检验注册码的上面一定会有注册码
找到出现机器码的那段代码,一步一步的回溯,代码如下:

已知的出现机器码的是.text:00467F1B push edx,其中edx存放机器码的地址一层一层的往上回溯

到这里定位到了全局对象,但是全局对象是在那里获取机器码的,只能下内存断点了。对全局对象的第一个成员的位置下硬件写入断点,注意是004CB404而不是004CB400,因为第一个位置是虚表指针,后推一个才是第一个数据成员

重新载入程序,会断下来好几次,断下来之后再对堆地址指向的内容下硬件写入断点,其中有一次来到下面这个位置,此时恰巧刚填写机器码的前两位“89”

一次一次的retn之后来到下面这段代码中00469527地址处

遇到SHGetValueW就说明了机器码被写到注册表了。可以通过参数定位到注册表路径
路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Pdfcword

此处只是读取注册表中的机器码,并不是直接计算出机器码,我们先把注册表项给删掉,重新载入程序,对SHSetValueA下断
注意:此处不能对RegSetValue(A)、RegSetValueEx(A)下断,不然会很痛苦的,由于自个的无知被这里也折磨了好久
软件跑起来后,点击“注册-->购买序列号”就会断下来,查看堆栈窗口此时正准备向注册表写入机器码,那么写入之前一定有地方获取机器码

返回到0x0043A08,并在段首下断点
下面函数生成字符串: "27fd2a8ad66d99c944a52b0a2f9b6ff1"

下面函数生成字符串: "e3a725d4be6392fae82a71339d6e381b"

最后截取并转换为大写就是机器码:"E3A725D4BE6392FA"
机器码生成的大致流程:

定位到:004686AE call sub_40C8B0 ;取硬盘序列号
继续向里面跟进来到:0040C8DB call sub_40BCE0
IDA中F5的代码如下所示:
用CreateFile函数打开\.\PhysicalDrive%d
然后用DeviceIoControl来获取硬盘的信息(扇区数,磁头数,柱面数)等

定位到:004686C3 call sub_40D160 ;取物理内存信息
限于篇幅原因,函数就不跟进去了

不能算是注册机,因为还有网络验证,虽然本地的注册算法验证可以通过,但是绕不过去网络验证,对于网络验证只能打补丁

取硬盘信息部分:

获取物理内存信息:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-7-14 21:30 被turtledove编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (13)
雪    币: 89
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享!
2017-12-23 09:44
0
雪    币: 524
活跃值: (48)
能力值: ( LV6,RANK:140 )
在线值:
发帖
回帖
粉丝
3
shenpengz 谢谢分享!
谢谢支持,其实很简单的
2017-12-25 18:52
0
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2017-12-26 15:15
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
开始就好。一切皆有可能。
2017-12-30 12:57
0
雪    币: 524
活跃值: (48)
能力值: ( LV6,RANK:140 )
在线值:
发帖
回帖
粉丝
6
nig 开始就好。一切皆有可能。
谢谢前辈忠言。现在回头看看这软件挺简单的,说实话,我中间放弃了好几次,可能很简单的一个知识点就把我难住好久,感觉好多东西东不会,这软件是一边百度一边搞出来的
2017-12-30 13:38
0
雪    币: 28
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享      写的非常详细
2017-12-30 14:04
0
雪    币: 1062
活跃值: (1466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习了。教程写的非常好。谢谢楼主分享。
2018-3-21 08:59
0
雪    币: 146
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2018-3-23 11:50
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
免费版软件文档文件格式转换,支持word  doc  docx  wps  execl表格图片转换

pdf转换成word转换器  http://www.downza.cn/soft/266336.html

word转pdf  http://www.downza.cn/soft/215618.html

 
2018-4-18 21:43
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
pdf转换成word转换器免费版软件大全
太平洋下载pdf转换成word转换器 https://dl.pconline.com.cn/download/2059850.html 
华军软件下载pdf转换成word转换器 http://www.onlinedown.net/soft/107659 
中关村下载pdf转换成word转换器 http://xiazai.zol.com.cn/detail/45/449099.shtml 
脚本之家下载pdf转换成word转换器 https://www.jb51.net/softs/616643.html 
天空软件下载pdf转换成word转换器 http://www.skycn.com/soft/appid/16835.html 
hao123下载pdf转换成word转换器 http://www.skycn.net/soft/appid/16835.html
2018-11-6 22:22
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark
2018-11-6 23:06
0
雪    币: 7
活跃值: (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
大牛一直都在...期待下一篇精华...
2019-8-8 11:44
0
雪    币: 188
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
虽然不太懂,但也要支持一下:顶你。。。楼主。。。
2019-8-9 11:42
0
游客
登录 | 注册 方可回帖
返回
//