wonder忆.念  

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

  
然后用OD载入程序,查找关键字,步骤看上一个笔记
双击到达代码处,发现这在一个跳转里面。可能第一反应是修改跳转,经试验后发现这是没用的所以放弃
重新来过一遍,再次来到这里,仔细看发现决定是否跳转的是al,al的值,然而al的值使上一行的命令给的。所以在这下一个断点。
重新载入程序,运行来到断点处。看注释,发现这这个值调用了两个地址。点击注释那一行右键转到那两个地址下断点
点击enter键回到刚刚那个断点处,然后给另一个地址下断点
重新载入程序运行,来到断点处(是后来下的两个断点中的一个)
然后打开断点编辑器,删掉刚刚下的那两个断点中的另一个,因为运行的时候停在了这个断点处所以没有用了。(框出来的是有用的)
重新运行来到断点处,发现这个断点处推入的值和另一个断点推入的值是一样的
再仔细看发现,al的值决定于esp+4,而esp+4也就是0012E024,而esp+4决定于eax的值。eax上面的call的返回值回影响eax的值,所以这个call是关键点。所以把断点改成这里,下面那个断点去掉
重新载入程序,运行来到断点处
f7进入程序,推测这是一个程序加密的验证过程,f8一直往下走
经过一个跳转之后来到这,试着修改al的值
修改之后保存
重新载入之后运行,就成功了
posted on 2015-10-30 16:37 wonder忆.念 阅读(...) 评论(...) 编辑 收藏
 
Copyright © 2019 wonder忆.念
Powered by .NET Core 3.0.0-preview9-19423-09 on Linux
Powered by: 博客园 模板提供:沪江博客
博客园