大牛路过的时候除了拍砖外,还请多多指点
目标软件:PDF2TXT v3.2
下载地址: http://www.verypdf.com/app/pdf-to-txt-converter/index.html
1. OD载入目标软件后运行,弹出注册框

注册提示框.png (16.21 KB, 下载次数: 1)

下载附件  保存到相册

2015-3-20 11:52 上传

输入假码12345678901234567890后点OK提示错误

错误提示.png (23.13 KB, 下载次数: 2)

下载附件  保存到相册

2015-3-20 11:55 上传

这时选择F12暂停法(按OD中的暂停键,然后再点工具栏中的K快捷键,找到最下面的一个"调用来自",双击来到代码中),鼠标往上拉,看到下面的代码

F12暂停后.png (35.74 KB, 下载次数: 1)

下载附件  保存到相册

2015-3-20 12:01 上传

两条路线已经很明确了,所以这里是关键地方

[Asm] 纯文本查看 复制代码
?
1
2
3
4
100019D2    E8 99F7FFFF     CALL    10001170                        ; 关键call
100019D7    83C4 04         ADD     ESP, 0x4
100019DA    85C0            TEST    EAX, EAX
100019DC    74 39           JE      SHORT 10001A17                  ; verypdf.10001A17

在关键call处下好断点,重新载入软件就可以分析算法了,不过这回偷个懒,上利器 IDA ,通过上面的分析可以看到,算法在一个dll里,文件名叫verypdf.dll,结果是有壳啊,不会脱,直接 脱壳机搞一下,
IDA载入脱壳后的文件,直接shif+F12,来到字符串窗口,alt+T搜字符串"thanks",找到这个".data:100172F4 00000046 C Your registration key is wrong, please double check it and try again.",双击进入,交叉参考后来到代码处

ida文件.png (15.63 KB, 下载次数: 2)

下载附件  保存到相册

2015-3-20 13:10 上传

此是使用IDA强大的F5功能,得到代码

F5后.png (23.88 KB, 下载次数: 2)

下载附件  保存到相册

2015-3-21 10:55 上传

双击这个函数 sub_10001170进去看下算法验证,

IDA后的算法.png (21.74 KB, 下载次数: 2)

下载附件  保存到相册

2015-3-20 13:15 上传

可以跟OD中的代码比对一下,再次验证了F5的强大

OD1.png (36.35 KB, 下载次数: 2)

下载附件  保存到相册

2015-3-20 13:22 上传

OD2.png (21.17 KB, 下载次数: 1)

下载附件  保存到相册

2015-3-20 13:22 上传

注册成功后会生成PDF2TXT.DAT文件,可以下断点CreateFileA查看下,删除后可以继续玩,基本就是这样了,不会编程就是渣渣啊

第一次使用OD和IDA动静结合找出软件的注册算法相关推荐

  1. 挑战程序设计竞赛部分题目选择排序、二分查找找出下标、深度优先算法、求三角形max周长、蚂蚁算法、操作excel

    首先提供帮助类 可能这个类还需要更新 .求最大值.求最小值.选择排序.二分查找找出下标.二分查找排好序列里面是否有那个值 public class Util {//求最大值public static ...

  2. hadoop找出QQ共同好友算法实现

    背景 A:B,C,D,E,F 表示A有bcdef好友 B:C,D,H,Y 以上可知道AB的共同好友为CD 思路: 1:我们先找出一个人被哪几个人共同拥有 测试数据: 2:第一阶段mr程序: packa ...

  3. 华为od机考题目-幼儿园找出同班的小朋友(幼儿园分班)

    幼儿园两个半的小朋哟排队的时候混合在一起了,每位小朋友都直到自己是否与前面的一位小朋友同伴,请你帮忙把同班的小朋友找出来 小朋友的编号是整数,与前一位同班用Y表示,不同班用N表示 准备两个列表分别保存 ...

  4. 快速找出数组中出现次数超过一半的数字

    "只要不是特别大的内存开销,时间复杂度比较重要.因为改进时间复杂度对算法的要求更高." --吴斌(NVidia,Graphics Architect) 同样是查找,如果是顺序查找需 ...

  5. 怎样轻松找出4位数的所有“吸血鬼”数字,多种高效算法详解

    关于吸血鬼数字算法问题,我也是读<java编程思想>中遇到的,觉得很有意思.于是,就去做了做.但因为我的粗心,读题的时候忽略了点问题,所以导致我的思路出现了岔口!(当时的思路就是想着把一个 ...

  6. python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...

    1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...

  7. 【华为OD机试真题 Java】找出通过车辆最多颜色 (A卷2022Q4)

    前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...

  8. 【华为OD机试模拟题】用 C++ 实现 - 找出同班小朋友(2023.Q1)

    最近更新的博客 [华为OD机试模拟题]用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客 使用说明 找出同班小朋友 题目 输入 输出 示例一 输入 输出 说明 Code 使 ...

  9. 【满分】【华为OD机试真题2023 JAVAJS】找出通过车辆最多颜色

    华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 找出通过车辆最多颜色 知识点滑窗 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 在一个狭小的路口,每秒只能通过一辆车, ...

最新文章

  1. Redis亿级数据过滤和布隆过滤器
  2. 从程序员的角度分析微信小程序
  3. 微信小程序PHP文件建在哪里,微信小程序解析H5文件方法
  4. BZOJ 4710: [Jsoi2011]分特产
  5. 奇异递归模板模式(Curiously Recurring Template Pattern,CRTP)
  6. 使用一些可选的将字符串配置属性转换为其他类型
  7. JS 三级联动 下拉列表
  8. 郑杰 | 如何拿回我们自己的医疗数据?
  9. 【C++】C++类的学习(二)——构造函数、析构函数、拷贝构造函数以及this指针
  10. 阿里云物联网平台mqtt测试工具
  11. matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
  12. wordpress媒体库增加分类和标签
  13. HLA RTI(Run-time Infrastructure)
  14. 公司邮箱域名可以定制吗?公司邮箱申请注册?公司邮箱登录入口?
  15. [概念]像素,分辨率
  16. Linux系统创建vlan教程,linux vlan配置详解
  17. android apk可安装成功但无法运行提示dex文件异常
  18. 什么软件可以搜python题_Python答题神器下载-Python百万答题软件 _5577安卓网
  19. Linux nginx 项目部署
  20. 防火墙虚拟化技术详解(上)

热门文章

  1. 方法级权限控制-@Secured注解使用
  2. 设计模式------观察者模式
  3. FastDFS集群部署
  4. FastDFS配置手册trackerstorage
  5. Spring Security OAuth2源码解析(二)
  6. mysql主从配置原理_MySQL主从复制原理
  7. 2019年我总结的前端面试题
  8. 【测试基础】测试用例的设计方法
  9. spring jdbctemplate调用存储过程,返回list对象
  10. 数据中心里的应急关机技术