逆向工程初体验之crackme

新入门的一名逆向小白,准备对自己的学习过程做一个简单的记录,那么首先选定的是最简单的traceme程序,同时会对od的一些基本功能进行简单的介绍

一些基础知识 :分析一个windows程序要比分析DOS程序简单的多,windows程序主要是使用API函数,那么只要掌握一些常用的API函数,将它作为切入点,那么这个Windows程序的分析就会变得so easy.
链接: WindowsAPI函数大全. traceme.
接下来使用OD将traceme打开
OD打开traceme的主界面在上图可以看到od的主界面,左上角是反汇编窗口,其中有是四个框框,分别是虚拟地址(在一般情况下,同一程序的同一条指令在不同系统环境下相同——————写的辣么复杂。。。感觉没有什么用,它的意思就是说,在一般情况下,这个值是不会变的),机器码,汇编指令以及OD给的一些注释
右上角是寄存器面板,显示了各个寄存器的当前值。其中比较重要的两个寄存器,一个是ESP(栈指针,指向栈顶),一个是EIP(指向下一条将要执行的语句)
对于一般的寄存器修改,直接在寄存器上双击就可以,就是这样婶儿滴:
在这里插入图片描述但是EIP不一样,它是一个很任性的寄存器,它需要你先给它找好下家它才愿意改呢,也就是在右边找一个你心水的虚拟地址,单击右键选择“New origin here”,这个样子它才会发生改变滴
那么下面捏,来说几个OD的快捷键
F2:设置断点
F7:单步步入(所谓单步步入捏,就是说这个指令遇到什么call,loop之类的指令会进入这些指令的内部)
F8:单步步过(这个和F7有点相对的意思,遇到上面那些指令,它会直接路过,不进入内部)
ctrl+f9:出现ret指令时中断(ret指令:子程序的返回指令)
基本知识到这里就差不多了,那么接下来,我们上一个完整的调试过程
获取文本框中的字符,通常使用的API函数是GetDlgItemText(ANSI)或者GetWindowText(Unicode)函数
在这里插入图片描述
(找不到电子版,我只能上书了。。。)
在一般情况下我们不知道使用的什么函数来调用字符,那么,只能多试几次
使用ctrl+G打开跟随表达式窗口,在文本框中输入“GetDlgItemTextA”,之后就找到了GetDlgItemText函数的入口处

在这里插入图片描述在此处设置断点,运行程序,那么程序就会中断在断点处,之后F8走出函数的区域,在函数的结尾处下断点
在这里插入图片描述也就是 call edi 处,同时将上面的断点取消
再次运行,找到核心位置,是一个跳转
在这里插入图片描述
在跳转处双击,将值修改为nop
之后再运行就会显示成功
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值