首先把安装好的软件拖入PEID,看看它是用什么语言写的

  
然后用OD载入程序,查找关键字,步骤看上一个笔记
双击到达代码处,发现这在一个跳转里面。可能第一反应是修改跳转,经试验后发现这是没用的所以放弃
重新来过一遍,再次来到这里,仔细看发现决定是否跳转的是al,al的值,然而al的值使上一行的命令给的。所以在这下一个断点。
重新载入程序,运行来到断点处。看注释,发现这这个值调用了两个地址。点击注释那一行右键转到那两个地址下断点
点击enter键回到刚刚那个断点处,然后给另一个地址下断点
重新载入程序运行,来到断点处(是后来下的两个断点中的一个)
然后打开断点编辑器,删掉刚刚下的那两个断点中的另一个,因为运行的时候停在了这个断点处所以没有用了。(框出来的是有用的)
重新运行来到断点处,发现这个断点处推入的值和另一个断点推入的值是一样的
再仔细看发现,al的值决定于esp+4,而esp+4也就是0012E024,而esp+4决定于eax的值。eax上面的call的返回值回影响eax的值,所以这个call是关键点。所以把断点改成这里,下面那个断点去掉
重新载入程序,运行来到断点处
f7进入程序,推测这是一个程序加密的验证过程,f8一直往下走
经过一个跳转之后来到这,试着修改al的值
修改之后保存
重新载入之后运行,就成功了

最新文章

  1. 解决ideviceinstaller未安装的问题
  2. java之redis篇(spring-data-redis整合一)
  3. SimpleDateFormat出错
  4. SEO优化笔记
  5. C#窗体截屏,简单例子
  6. Java Web程序工作原理
  7. .net web 开发平台- 表单设计器 一(web版)
  8. 字符串转化为json的三种方法
  9. Cannot attach medium 'D:\program\VirtualBox\VBoxGuestAdditions.iso' {}: medium is already associated with the current state of machine uuid {}返回 代码: VBOX_E_OBJECT_IN_USE (0x80BB000C)
  10. MySql中的事务、JDBC事务、事务隔离级别
  11. CPU的内部架构和工作原理-原文
  12. Docker 架构(四)
  13. P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
  14. 动态规划--求最大连续子数组的和(Python实现)&求解最大连续乘积字串(Python实现)
  15. MD5 哈希等各种加密方式 都是对这个对象进行各种运算, 然后得出1个字符串
  16. ACM数论之旅9---中国剩余定理(CRT)(壮哉我大中华╰(*°▽°*)╯)
  17. LeetCode 910. Smallest Range II
  18. Scala入门:从HelloWorld开始【源码及编译】
  19. 爬虫:Scrapy16 - Spider Contracts
  20. LinkedBlockingQueue,ArrayListBlockingQueue,SynchronousQueue

热门文章

  1. Python实现插件机制——自动import一个目录下的所有.py文件
  2. string、Empty和null三者的区别
  3. CSS解决高度自适应问题
  4. RunLoop(官方文档翻译)
  5. 在filter中使用spring的service bean
  6. vim 标记 mark 详解 (转载)
  7. KeepAlived主备/主主模型高可用Nginx
  8. Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等
  9. Android根据文件路径加载指定文件
  10. REORG TABLE命令优化数据库性能