Word to PDF Converter v3.0算法分析及注册机

--------------------------------------------------------------------------------
【详细过程】

1,主程序在C:/Program Files/doc2pdf/DOC2PDF.dll,PEID查壳为ASProtect 1.23 RC1 -> Alexey Solodovnikov
对于ASPR,低版本的用看雪tool提供的脱壳机,高版本的用VOLX大侠的脚本,没有SDK和VM,这壳就比ESP要稍稍等上那么一会

2,新建空白DOC,运行之。看到插件已经加载,点击"SAVE AS PDF",弹出未注册提示和注册框[第一次还会提示下个什么driver,得按照他的意思去下]

3,OD挂接(一作附加),弹窗直接API下断,其他的下断方式还有很多种,略过。
堆栈显示:

代码:
0012E370   1001E168  /CALL 到 MessageBoxA 来自 DOC2PDF.1001E162
0012E374   00060850  |hOwner = 00060850 ('Registration',class='#32770',parent=00380062)
0012E378   10031A08  |Text = "Registration failed, please check the code and try again!"
0012E37C   01EB3B08  |Title = "Word to PDF Converter"
0012E380   00000010  /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL

调用堆栈显示[OD上的K按钮]:

代码:
调用堆栈
地址       堆栈       程序过程 / 参数                       调用来自                      结构
0012E370   1001E168   user32.MessageBoxA                    DOC2PDF.1001E162              0012E3C0
0012E374   00060850     hOwner = 00060850 ('Registration',
0012E378   10031A08     Text = "Registration failed, pleas
0012E37C   01EB3B08     Title = "Word to PDF Converter"
0012E380   00000010     Style = MB_OK|MB_ICONHAND|MB_APPLM
0012E388   1000CECC   DOC2PDF.1001E13A                      DOC2PDF.1000CEC7
0012E38C   10031A08     Arg1 = 10031A08 ASCII "Registratio
0012E390   01EB3B08     Arg2 = 01EB3B08 ASCII "Word to PDF
0012E394   00000010     Arg3 = 00000010

跟随地址,来到:

代码:

1000CE5A   .  E8 77020000   CALL 1000D0D6                            ;  关键CALL
1000CE5F   .  85C0          TEST EAX,EAX
1000CE61   .  74 43         JE SHORT 1000CEA6                        ;  注册判断跳转
........
1000CE73   .  6A 40         PUSH 40
1000CE75   .  50            PUSH EAX
1000CE76   .  68 441A0310   PUSH 10031A44                            ;  ASCII "Registration successed, thank for your registration!"
1000CE7B   .  8BCE          MOV ECX,ESI
1000CE7D   .  C745 FC 03000>MOV DWORD PTR SS:[EBP-4],3
1000CE84   .  E8 B1120100   CALL 1001E13A                            ;  调用MessageBoxA
........
1000CEB9   .  68 081A0310   PUSH 10031A08                            ;  ASCII "Registration failed, please check the code and try again!"
1000CEBE   .  8BCE          MOV ECX,ESI
1000CEC0   .  C745 FC 04000>MOV DWORD PTR SS:[EBP-4],4
1000CEC7   .  E8 6E120100   CALL 1001E13A                            ;  调用MessageBoxA

跟进关键CALL:

代码:

1000D0D6  /$  B8 D84F0210   MOV EAX,10024FD8
........
1000D100  |.  E8 52F5FFFF   CALL 1000C657                            ;  用户名小于2位则加上"AA",取其前两位。有字母就转为大写,再与"3wefr23rw"组合为新字串。为节省篇幅,就不写跟进过程了- -!
........
1000D127  |.  50            PUSH EAX
1000D128  |.  E8 D5C0FFFF   CALL 10009202                            ;  MD5加密组合字串的32位输出
........
1000D15E  |.  E8 BDD20000   CALL 1001A420                            ;  MD5输出的前16位

........
1000D176  |.  E8 3C250000   CALL 1000F6B7                            ;  比较真假码,局部调用来自 1000880B, 1000D176
1000D17B  |.  59            POP ECX
1000D17C  |.  85C0          TEST EAX,EAX
1000D17E  |.  59            POP ECX
1000D17F  |.  75 03         JNZ SHORT 1000D184                       ;  跳过标志位置1
1000D181  |.  6A 01         PUSH 1
1000D183  |.  5B            POP EBX                                  ;  相当于 MOV EBX,1
1000D184  |>  834D FC FF    OR DWORD PTR SS:[EBP-4],FFFFFFFF
1000D188  |.  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
1000D18B  |.  E8 A3D10000   CALL 1001A333                            ;  CALL A333
1000D190  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
1000D193  |.  8BC3          MOV EAX,EBX                              ;  EBX --> EAX
1000D195  |.  5E            POP ESI
1000D196  |.  5B            POP EBX
1000D197  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
1000D19E  |.  C9            LEAVE
1000D19F  /.  C2 0800       RETN 8

附:在点SAVE AS PDF按钮会被断下,说明此时会进行判断...:

算法分析:
1,取用户名,不足两位的加"AA",再取前两位,是字母的话转换成大写
2,和固定字符串"3wefr23rw"组成新字符串
3,标准MD5加密该字符串
4, 取前16位得到注册码

JS注册机源码[简单算法,各位见笑了]:

代码:

<script language="javascript" src="md5.js"></script>
<script language="JavaScript" type="text/javascript">
//No copyright (C) 11/21/2009   ty1921

function getCode(user) {
         var s0="";
         if (user.length<2)
         { user += "AA"; }                       //取用户名,不足两位的加"AA"
          user = user.substring(0,2);            //用户名截取   
          user = user.toUpperCase();             //用户名大写
          user += "3wefr23rw";                   //和固定字符串"3wefr23rw"组成新字符串
          s0 = MD5(user);                        //标准MD5加密
          ty.passwd.value = s0.substring(0,16);  //取前16位,得到注册码   
}
</script>
<form name="ty">
<table align="center">
    <tr>
         <td> user: <input  name="user" /></td>
    </tr>
    <tr>
         <td> code: <input readonly="readonly"  name="passwd" /></td>
    </tr>
    <tr>
         <td> <hr> </td>
    </tr>
    <tr>
         <td align="center"> <input type="button"  value=" get  it  " onclick="javascript:getCode(user.value)" /></td>
    </tr>
         <td align="center">
             <br>
             <font color="#808080" size="2">
                 <a href="http://bbs.chinaPYG.com" style="text-decoration: none">bbs.chinaPYG.com</a>  ty1921^_^
             </font>
        </td>
    </tr>
</table>
</form>

总结:
1,算法很简单,适合我等新手学习,比上一个屏幕保护那软件有很大的差别
2,注册信息保存在HKEY_USERS/S-1-5-21-1343024091-57989841-1417001333-500/Software/Pdf-convert/word2pdf/DataInfo下,如果找不到,请在注册表中直接搜索你输入的用户名或注册码
3,标准的MD5.JS请在网上搜素下载。[因为不能上传附件,(⊙o⊙)]

4,最新下载的V3.0版本算法没有改变,但字符串已经更改,在这里提供两组注册码,一组不行换另外一组:

用户名/注册码: ty1921/ef0f2eba70c7a00d

或: ty1921/1e43681f1ea3a064

Word to PDF Converter v3.0 算法分析及注册机相关推荐

  1. k3v12.0精益版注册机_精益均值VBA机

    k3v12.0精益版注册机 This is Recruit a New VBA Programmer Week, according to Dick Kusleika, so we'd better ...

  2. 小马哥-----高仿苹果6sp w9200 v3.0新版2017刷机拆机主板图与开机识别图

    高仿苹果6sp版本较多  w9200 系列版本   目前v2.0   V3.0版本不可互刷 分屏幕硬件 11月前的版本与12月后的屏幕型号有分别  刷错屏幕色彩不同 上图展示  

  3. MyEclipse Enterprise Workbench 9.0 破解及注册机 注册码

    MyEclipse 9.0的激活机制终于破解了,破解步骤比老版本要复杂一些,但是是绝对可以破解的,这个破解对主程序无任何修改,只替换公钥,如果有牛人会快速从公钥反推私钥,那就什么都不用改了,步骤如下: ...

  4. UltraEdit v18.0 破解版注册机

    转自:http://001.net76.net/ultraedit-v18-0.html ultraEdit是强大的文本编辑器,可以编辑文本,16进制,ASCII 码,比系统自带的记事本强大,而且好用 ...

  5. 尽快下载Navicat-Premium-12.0.26含注册机

    Navicat不用多说,数据库管理工具,支持Mysql.SQL Server.Oracle等多种数据库,操作方便,功能强大,但是旗舰版是收费的.昨天在网络上找到了这个Navicat Premium最新 ...

  6. U8 cloud V3.0全产品注册报价授权计算器

    领域名称 产品名称 产品名称 模块基础价格(元) 是否支 持多语 选择与否 选购模块价格(元) 每用户单价(元) 用户数 金额(元) Domain Name Product Name Product ...

  7. 小马哥---高仿苹果6sp 主板型号W9200 V3.0新版机型刷机拆机图

    W9200这款机型分新旧版本分别 一般7月前与7月后的屏幕硬件有更换 新版本一般都向下兼容旧版机型 上图

  8. farpoint支持python_FarPoint Spread v8.0.14 含注册机

    这是一款高性能.完全定制的 .NET 电子表格组件,支持 Visual Studio 2005 .可以通过 InkNotation 支持平板电脑,具有跟踪冻结行与列.数字单元格的弹出计算器.新形状.新 ...

  9. 精品软件 推荐 ACPsoft PDF Converter 免费的多功能 PDF 转换器

    ACPsoft PDF Converter 是一款免费的多功能 PDF 转换器,可以将 PDF 转换为 DOC.HTML.TXT 等格式,是一款简单的 PDF to Word 转换器. ACPsoft ...

  10. 使用java将多种类型的文件如Word、PDF、JPG汇总到一个文档中(Word或者PDF)

    // 以下为两个文件的代码: 可直接下载运行,下载页面:(http://download.csdn.net/detail/lmf462696585/8800097)执行文件是WordUtil4.jav ...

最新文章

  1. 深入理解PHP内核(四)概览-PHP脚本的执行
  2. nagios监控linux nrpe安装
  3. python第三方库排行-Python常用第三方库总结
  4. django.core.exceptions.ImproperlyConfiguredmysqlclient 1.3.13 ornewer is required you have 0.9.2(亲测)
  5. PHP-FPM.CONF配置:日志文件、端口设置、动态静态选择设置
  6. 算法题目——子序列和问题(poj-3061)(尺取法)
  7. mysql数据库连接失败,挑战大厂重燃激情!
  8. word 文档 一次性设置多张图片大小
  9. python常用程序代码(持续更新收集)
  10. torch--[Pytorch函数] .masked_fill_() ;关于pytorch中@和*的用处
  11. Xamarin.Forms 仿照京东搜索记录控件
  12. 搜索。深搜学习。深度优先搜索之数字全排列。nyoj,组合数
  13. 数据仓库与数据挖掘的OLAP技术----韩家炜教授的《数据挖掘概念与技术》学习笔记
  14. 微信APP支付-签名问题
  15. 什么是 知足者常乐?
  16. JSP——猜英文小写字母的Web小游戏
  17. 热用图片怎么表示简笔画,网络简笔画图片大全
  18. Java 中的大根堆和小根堆
  19. 一些标签属性--aria-label--rel属性
  20. Typo: In word ‘localstime‘ less... (Ctrl+F1) Inspection info: Spellchecker inspection helps locate

热门文章

  1. html 里面的 role 属性是什么意思和用途
  2. HTML5代码雨程序
  3. Racket Cheat Sheet
  4. 敏捷开发中如何进行团队绩效管理
  5. Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
  6. 无线网络技术:GPS(美国全球定位系统)的发展史
  7. GitLab+Git(Git Flow分支模型)
  8. Unity基础(三)--动画系统
  9. 计算机主机接电视机,电脑主机连接电视方法介绍 电脑主机连接电视注意事项...
  10. 计算机软件工程专业选科要求,选考科目科普:软件工程专业要求哪些选考科目?...