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 算法分析及注册机 的相关文章

  • 解决python安装后cmd报错Fatal Python error: Py_Initialize: unable to load the file system codec

    因为我的电脑中以前装有python xff0c 这次重新从网上安装python3后与之前残留的设置产生了冲突 xff0c 打开cmd输入python出现错误 xff1a Fatal Python error Py Initialize un
  • 模型效果验证方法

    对于回归问题 xff0c 一般采用均方误差验证 对于分类问题 xff0c 首先要明确两个概念 xff1a 查准率和查全率 数据可以分成四种类别 xff1a 真正例TP 真反例TN 假正例FP 假反例FN TP是指预测结果是正例 xff0c
  • leetcode:167. Two Sum II - Input array is sorted

    目录 题目描述 实现 1 哈希表 2 二分查找法 3 双指针法 题目描述 Given an array of integers that is already sorted in ascending order find two numbe
  • leetcode:206 - Reverse Linked List

    目录 题目描述 实现 1 迭代法 2 递归法 题目描述 Reverse a singly linked list Example Input 1 gt 2 gt 3 gt 4 gt 5 gt NULL Output 5 gt 4 gt 3
  • 解决idea运行Tomcat报错:Unable to ping server at localhost:1099

    方法一 xff1a 网上有人说修改hosts xff0c 目录定位到 C windows system32 drivers etc hosts xff0c 在里面添加 xff1a 127 0 0 1 localhost 计算机名 这个方法实
  • spring中alias标签

    在对bean进行定义时 xff0c 除了使用id属性来指定名称之外 xff0c 为了提供多个名称 xff0c 可以使用alias标签来指定 而所有的这些名称都指向同一个bean xff0c 在某些情况下提供别名非常有用 xff0c 比如为了
  • ActiveMQ高并发处理方案

    高并发发送消息异常解决方法 xff1a 现象 xff1a 使用10个线程每100ms发送一条消息 xff0c 大约3000多条后 xff0c 出现异常 xff0c 所有线程停 止 xff1a javax jms JMSException C
  • Unable to get package info for com.example.sampletest; is package not installed?

    Unable to instantiate application com android activity BaseApplication java lang IllegalStateException Unable to get pac
  • 5种最著名的人脸识别算法和关键特征介绍

    人脸识别算法是任何人脸检测和识别系统或软件的基础组件 专家将这些算法分为两种核心方法 xff1a 几何方法侧重于区分特征 xff0c 光度统计方法用于从图像中提取值 然后将这些值与模板进行比较以消除差异 这些算法还可以分为两个更一般的类别
  • 请多多指教

    我是菜鸟 xff0c 还请各位大虾多多指教 xff01
  • golang-vue实现微信小程序分享到朋友圈

    最近涉及到微信小程序分享到朋友圈 xff0c 不知道微信为什么不直接接口分享 xff0c 咱也不敢佛 xff0c 咱也不敢问 xff0c 只能百度问度娘 xff0c 看官方文档 xff0c 网上的一些分享五花八门 xff0c 每一个重点的
  • Archlinux 命令行模式-安装 BIOS 非 UEFI(实装笔记)(系统安装完成,系统美化使用未完成)

    前言 截至2021年02月28日 xff0c 官网iso安装镜像已经提供有脚本安装方式 当下谨以命令行安装方式做记录 xff0c 共同学习 主要知识来源于archwiki https wiki archlinux org index php
  • Arch 基本安装后的使用配置

    A 参考借用整理 1 Arch wiki https wiki archlinux org index php Installation guide B 注意 1 选择有很多 xff0c 可以根据自己需求来 xff0c 如速度 xff0c
  • 【IP技术】网络安全防护措施

    网络安全威胁造成的形式主要包含运用系统软件缺点或侧门 xff0c 运用网络防火墙安全隐患 xff0c 内部结构客户的泄密 泄露和毁坏 xff0c 动态口令进攻和拒绝服务式攻击等 针对该网络安全威胁 xff0c 现阶段的预防措施主要有五种 x
  • 如何搭建本地yum仓库

    一 yum简介 yum xff08 Yellow dog Updater Modified xff09 是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器 基于 RPM 包管理 xff0c 能够从指
  • python_tweets.json (python数据挖掘入门与实践数据集下载)

    最近在看python数据挖掘入门与实践一书 xff0c 书不错 xff0c 有个不好的地方是 xff0c 书上所用的数据集 xff0c 有几个测试数据在网上非常不好找 下面几个资源是我自己整理出来的 xff0c 上传到CSDN xff0c
  • ios UILabel显示html文本

    let attrContent 61 try NSAttributedString data htmlContent options NSDocumentTypeDocumentAttribute NSHTMLTextDocumentTyp
  • 转行的辛苦

    我是2004年毕业的 xff0c 学的专业是市场营销 xff0c 毕业后来到深圳 xff0c 换了很多工作 xff0c 一直都无法找到令自己满意的工作 因为我非常喜欢计算机 xff0c 从中学到大学 xff0c 一直是班级里公认的计算机高手
  • 内存优化 和 性能优化 的总结

    从 检查内存 xff0c 减少使用 xff0c 复用 xff0c 以及及时释放几个维度去考虑 1 检查 可以ddms查看内存使用情况 xff0c 可以使用 adb shell dumpsys meminfo 查看 xff0c 也可以使用 l
  • ubuntu16.04 安装gnome经典桌面

    一直比较喜欢旧版本Ubuntu的Gnome风格的菜单栏 xff0c 在Ubuntu16 0 4中可以执行指令 xff1a sudo apt get install gnome session flashback 安装完成 xff0c 注销一

随机推荐

  • Gson在序列化反序列化中的TypeAdapter

    1 package waf json adatpter 2 3 import java io IOException 4 import java util ArrayList 5 import java util List 6 import
  • 技术泡妹子二:篡改百度首页,惊呆女神

    大多数网民上网的入口都是先打开百度 xff0c 然后再搜索xxx 进入 xff0c 为了给女神惊喜 xff0c 决定篡改百度首页让女神惊呆 xff0c 当然不是黑了百度 xff0c 目前没这个实力 xff0c 但是我们可以修改host文件
  • VC多线程中控制界面控件的几种方法

    转 http hi baidu com magicyang87 blog item 23bbf2fd72d6b81108244d73 html 为了保证界面的用户体验经常要把数据处理等放到子线程中进行 xff0c 然后把结果更新到主界面 x
  • 一次性打包学透 Spring

    不知从何时开始 xff0c Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中 xff0c 很多 Java 开发者从工作的第一天开始就在使用 Spring Framework xff0c 甚至有人调侃 不会 Sprin
  • 关于产品的一些思考——写在前面的话

    自己是一个十足的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
  • 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
  • EOS的CPU危机:BM的租赁模式或只是乌托邦

    摘要 xff1a 继RAM内存之后 xff0c EOS的CPU危机也爆发了 昨日 xff0c 由于BetDice和EOSBET为了保证游戏的运行 xff0c 占用了过多的主网CPU xff0c 导致用户资源紧张 xff0c 甚至无法转账 昔
  • 有关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个各自有序的 交错的
  • Jetpakc LiveData ViewMode详解

    前言 xff1a 本文不定时更新 xff0c 有问题欢迎在评论区提出 最近更新时间 xff1a 2022 06 21 介绍 在2017年 xff0c 那时 xff0c 观察者模式有效的简化了开发 xff0c 但是诸如RxJava一类的库有一
  • ARM64 Linux kernel + busybox rootFS via NFS over QEMU with GDB

    由于条件所限 xff0c 一般选择软件做前期模拟 xff0c 这里做一些ARM 64 Linux kernel模拟运行环境搭建工作的总结 xff0c 记录以便后用 本文只涉及kernel 43 busybox rootFS via NFS
  • 寒假学习心得--从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