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

2023-05-16

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

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Word to PDF Converter v3.0 算法分析及注册机 的相关文章

  • 解决mac安装homebrew后报错-bash: brew: command not found

    参照官网上很简单的一句安装命令 xff0c usr bin ruby e 34 curl fsSL https raw githubusercontent com Homebrew install master install 34 安装完
  • 转行的辛苦

    我是2004年毕业的 xff0c 学的专业是市场营销 xff0c 毕业后来到深圳 xff0c 换了很多工作 xff0c 一直都无法找到令自己满意的工作 因为我非常喜欢计算机 xff0c 从中学到大学 xff0c 一直是班级里公认的计算机高手
  • 物联网之轻量级TCP/IP协议栈——Lwip

    简介 Lwip为轻量级的Tcp IP协议栈 xff0c 对于嵌入式设备资源比较友好 xff0c 占用RAM低 xff0c 基本上物联网wifi芯片都会集成此协议栈到SDK中 xff0c 其位于OSI的网路层往上 熟悉socket编程的能够很
  • github下载慢或报错“The-remote-end-hung-up-unexpectedly”解决办法

    github下载慢或报错 The remote end hung up unexpectedly 解决办法 xff1a 该问题往往因为内部网络限制等因素导致 因细节更新 xff0c 欢迎访问本文源站链接 xff1a https turboc
  • git 如何把单个文件回退到某一版本

    git 如何把单个文件回退到某一版本 概要四条命令git restoregit resetgit checkoutgit cherry pick 概要 应用场景 xff1a 在进行一次完整的提交后 xff0c 你可能有有这样的需求 xff1
  • Docker

    学习笔记 一 Docker概述 1 基本介绍 Docker是一个开源的应用容器引擎 xff0c 基于Go语言 xff0c 并遵从apache2 0协议开源 docker可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 xff
  • roslaunch 时出现resource 找不到的问题

    Resource not found roslaunch ROS path 0 61 opt ros noetic share ros ROS path 1 61 opt ros noetic share The traceback for
  • Linux多线程编程

    在传统的 UNIX 模型中 xff0c 当一个进程需要另一个实体来完成某事 xff0c 它就 fork 一个子进程并让子进程去处理 但是 fork 的调用有如下缺点 xff1a xff08 1 xff09 fork 的 代价是 昂贵的 fo
  • 控制工程实践(13)——滤波器的实现(之二)

    2 中值滤波算法 中值滤波算法 xff0c 通俗讲 xff0c 就是取一组数据的中间大小的值 运算过程 xff1a 对某一参数连续采样N次 xff0c 为方便选取 xff0c N设为奇数 xff1b 把N个采样值从小到大排序 xff1b 取
  • 控制工程实践(14)——滤波器的实现(之三)

    4 加权平均滤波算法 算术平均滤波算法 有平滑度和灵敏度的取舍矛盾 xff1a 取样信号个数小时 xff0c 灵敏度高 xff0c 但平滑度低 xff1b 取样信号个数大时 xff0c 平滑度高 xff0c 但灵敏度低 为了协调二者矛盾 x
  • 信号与系统 基础知识点整理 03(文末可下载PDF格式)

    接着前面的继续 xff1a 信号与系统 passage three Written 8 March 2022 Edited by Wang Ximing 一 xff08 信号的分解 xff09 xff08 1 xff09 直流分量与交流分量
  • mac系统如何生成SSH key与GitHub通信

    一 检查 SSH key 是否存在 在终端输入 xff1a ls al ssh 如果没有 xff0c 终端显示如下 xff1a No such file or directory 如果已经存在 xff0c 则会显示 id rsa 和 id
  • ROS-Industrial 硬件支持

    ROS Industrial硬件支持 ROS Industrial程序的目标是为许多不同种类的工业设备提供ROS接口 xff0c 包括PLC xff0c 机器人控制器 xff0c Servos xff0c 人机界面 工业机器人 下表总结了各
  • ROS依赖包查找安装

    当下载某个功能包到自己的空间 xff0c 在编译时 xff0c 出现依赖项有问题 xff0c 解决如下 xff1a roscd package name rosdep update rosdep package name rosdep即可安
  • 在Windows上使用ROS软件包

    1 二进制安装 如果有ROS软件包的二进制发行版 xff0c 可以使用Chocolatey安装 choco install ros melodic lt package name gt ROS软件包查询 https index ros or
  • EKF扩展卡尔曼滤波器 - CTRV运动模型 及其代码实现

    本文参考了Adam大佬的帖子 https blog csdn net AdamShan article details 78265754 原贴的公式有一点点错误 xff0c 这里已经修正了 xff0c 并给出了代码实现 CTRV模型 我们通
  • 安卓SDK和API是什么意思?

    安卓SDK和API是什么意思 xff1f 一 SDK SDK就是kit xff0c 通俗讲就是工具箱 一系列的工具组合在一起 xff0c 能实现补全代码 自动错误检查之类的功能 xff0c 比如点一下run xff0c 会调用编译器来自动编
  • 3D视觉(五):对极几何和三角测量

    3D视觉 五 xff1a 对极几何和三角测量 对极几何 xff08 Epipolar Geometry xff09 描述的是两幅视图之间的内在射影关系 xff0c 与外部场景无关 xff0c 只依赖于摄像机内参数和这两幅试图之间的的相对姿态
  • 关于产品的一些思考——写在前面的话

    自己是一个十足的Geek xff0c 喜欢使用各种新奇的东西 xff0c 包括软件 硬件 技术 xff0c 又因为自己一点点轻微的强迫症和完美主义 xff0c 在这个过程中总会有自己的一些思考 xff0c 又因为技术出身 xff0c 总会考
  • mybatis映射文件mapper.xml的写法。

    在学习mybatis的时候我们通常会在映射文件这样写 xff1a lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt DOCTYPE mapper PUBLIC 34 myba

随机推荐

  • layer的弹出层的简单的例子

    如果不了级的基本的清楚官网查看api网址为 http layer layui com 我用的是iframe 如果是iframe层 layer open type 2 content 39 http sentsin com 39 这里cont
  • 左链接Column 'id' in field list is ambiguous

    如题错误如左链接Column 39 id 39 in field list is ambiguous 今天在写sm的时候 xff0c 用到两个表的联合查询出现的如下的错误 xff0c 仔细查找才发现原来两个表的id重复了 xff0c use
  • 我所理解的人工智能

    很多人容易把人工智能理解为机器人 机器人是人工智能的一个实际体现 人工智能应用很广泛 下面我来谈谈我的理解 人工智能可分开理解为 人工 和 智能 xff0c 即人类创造出来的智能 xff0c 从广义上来讲只要人类创造出来 xff0c 能为人
  • maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...

    1 我的项目结构是一个父项目 xff0c 多个子项目目录如下 xff1a 2 我这里就举个例子 xff0c 所以应用的也就是core和domain这两个项目 3 两个项目都继承父项目 4 在模块中domain依赖于core xff0c 在c
  • 有关Shiro中Principal的使用

    1 定义 principal代表什么那 xff1f 如果阅读官方文档或者源码你会得到如下的定义 xff1a 解释 xff1a 1 xff09 可以是uuid 2 xff09 数据库中的主键 3 xff09 LDAP UUID或静态DN 4
  • 关于shiro的 subject.getPrincipal()方法

    1 说明 上一篇文章说明了 principal xff0c 而subject getPrincipal 是用来干嘛的 xff0c 他就是来获取你存储的principal xff0c 内部是怎么获取的那 xff0c 多个principal怎么
  • CentOS7 64位安装solr7.2.0

    声明 xff1a 本人为学习solr的新手 xff0c 如编写过程中有部队的地方还请各位大佬指正 本文为原创 xff0c 如要转载请注明出处 你能学到 xff1a 1 linux上solr的安装部署 xff0c 官方给出的运行方式 2 添加
  • 阿里巴巴20121009 研发/算法工程师 笔试试题【修正】

    第19题 a i 在排序后的位置是 i k i 43 k xff0c a i 43 2k 在排序后的位置是 i 43 k i 43 3k xff0c 必然有a i lt 61 a i 43 2k 所以数组a里实际上有2k个各自有序的 交错的
  • printf() % lf出错

    printf 函数中不存在 lf xff0c 输入 double 用 lf 输出用 f
  • 奔腾系列的CPU 和酷睿系列的CPU

    以后奔腾要沦为中下层产品 奔腾D是接替奔腾4的型号 也是INTEL的第一代双核处理器 技术还比较粗糙 发热量控制的也不够好 至于酷睿系列 这可是INTEL的最新力作 性能上有绝对的优势 技术上也对老对手AMD保持了领先 而且功耗控制的也非常
  • 为什么神经网络被称为黑匣子

    数学层面 xff1a 由于网络参数与近似的数学函数之间缺乏明确的连接 xff0c 人工神经网络通常被称为 黑匣子
  • 第八弹 ROS发布者Publisher的编程实现

    1 话题模型 xff08 发布与订阅 xff09 2 创建功能包 catkin create pkg learning topic roscpp rospy std msgs geometry msgs turtlesim 建立一个名为le
  • TRIZ创新思维方法_简要复习

    一 TRIZ介绍 TRIZ理论成功地揭示了创造发明的内在规律和原理 xff0c 着力于澄清和强调系统中存在的矛盾 xff0c 其目标是完全解决矛盾 xff0c 获得最终的理想解 它不是采取折中或者妥协的做法 xff0c 而且它是基于技术的发
  • Generalized Focal Loss: Learning Qualified and Distributed BBoxes for Dense Object Detection论文翻译阅读

    Generalized Focal Loss Learning Qualified and Distributed Bounding Boxes for Dense Object Detection论文翻译阅读 论文下载地址 xff1a 点
  • ubuntu16.04对SD卡进行分区

    赶在2020年上半年的最后一天 xff0c 匆忙地写上一个博客 这篇博客是对自己的一个反思 xff0c 我的博客属于自己完全开辟的内容几很少 xff0c 有些博客大家随便在网上一搜就能找到 说实话 xff0c 有时候我会怀疑自己的智商有问题
  • RT-thread移植指南-RISC-V

    目录 RT thread移植指南 RISC V 1 概述 1 1 移植资料参考 1 2 移植开发环境准备 2 移植步骤 2 1 全局中断开关函数 2 2 线程上下文切换函数 2 3 线程栈的初始化 2 4 时钟节拍的配置 2 5 中断函数
  • 寒假学习心得--从0开始学破解

    寒假学习心得 从0开始学破解 写给和我一样将要接触或者才接触破解 的朋友们 前提 你必须得真正喜欢 她 一 工欲善其事 必先利其器 1 找一个中文版的OD PEID 记得就OD就有咱PYG版的某牛人强化版的等等等等 找一个合适的工具 干起事
  • 常用的“密码重置”代码

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • ORACLE多表查询优化

    转自某地 对作者很愧疚 不晓得地址了 ORACLE 多表查询优化 这里提供的是执行性能的优化 而不是后台数据库优化器资料 参考数据库开发性能方面的各种问题 收集了一些优化方案统计如下 当然 象索引等优化方案太过简单就不列入了 嘿嘿 执行路径
  • Word to PDF Converter v3.0 算法分析及注册机

    Word to PDF Converter v3 0算法分析及注册机 详细过程 1 xff0c 主程序在C Program Files doc2pdf DOC2PDF dll xff0c PEID查壳为ASProtect 1 23 RC1