新手逆向(1)——从hello world开始

刚接触编程的第一个程序是从hello world开始,那我们就先了解这个程序吧。

首先,我们编写一个hello world程序,我们准备用上MessageBox()这个函数。
代码示例如下:

#include
#include
int main()
{
MessageBox(NULL,
“Hello World !”,
“www.reversecore.com”,
MB_OK);
return 0;
}

具体MessageBox()用法可百度一下。
将此程序在编译器上编译运行后,在文件夹中找到
在这里插入图片描述将.exe文件拖入OllyDbg(这个软件可以去https://www.52pojie.cn/下载)。
首先给出OllyDbg(以下简称OD)的一些常用命令:

  • F7 执行一条OP code(操作码),遇到call命令时,进入函数内部
  • F8 与F7差不多,但遇到call命令时,不进入函数内部,仅执行函数本身
  • Ctrl+F2 终止调试过程,重新载入程序
  • Ctrl+G 跳转到指定地址(查看代码时用,非执行命令)
  • F4 直接执行到鼠标所指向的位置
  • F9 运行,遇到断点会停止
  • F2 下断点

在OD中出现如图:
新手逆向(1)——从hello world开始_第1张图片
在代码窗口右键->中文搜索引擎->ASCLL,可以找到hello world;
双击来到代码窗口,所看到的这一块就是main函数内部了
新手逆向(1)——从hello world开始_第2张图片
那个call就是调用MessageBox函数,可以下断点直接运行到这里,会有框弹出哦。
学习逆向还是要先了解汇编语言的,了解OD的使用(这些都需要自己去学的)。
下面给出汇编基础指令:

  • CALL XXXX 调用XXXX地址处的函数
  • JMP XXXX 无条件跳转到XXXX地址处
  • PUSH XXXX 保存XXXX到栈
  • RETN 跳出某函数内部

写完之后发现已经有大佬写得比我详细到位,这是我第一次写,想要更详细的可以去https://blog.csdn.net/SKI_12/article/details/80334012看看

你可能感兴趣的:(reverse)