逆向分析(一):hello world 程序

在这里插入图片描述

刚来公司没几天,什么任务都没有给,闲的要死… 还不好意思玩游戏(毕竟刚来嘛…装一装样子也得不是)。一开始想看看书,后来书看恶心了,就打算找几个简单的例子,想一想从什么例子开始呢 ? 嗯…果然还是 hello world 比较合适哈哈哈哈(可怜的 hello world,可怜的植物大战僵尸)…不知道这个梗有没有人知道,算了,开始做笔记吧就 ——

首先,hello world 程序都会写,我选择的是 win32 控制台应用程序,程序流程是直接弹出一个 “hello world” 的对话框(MessageBox)。下面是代码:

#include "stdafx.h"
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
	MessageBox(NULL,L"hello world",L"hello world",NULL);
	return 0;
}

打开 OD —— (喜欢用 “附加” 的朋友这里就要注意了,不要附加,直接点 “打开”,因为这个程序是直接会弹出 “hello world” 的,如果打开程序再附加的话就错过了这个过程)
在这里插入图片描述
再点击 “运行” , 让程序跑起来(卧槽我为什么要说这么详细…)
在这里插入图片描述
(难道真的是因为要打发时间么!)
在这里插入图片描述
其实有很多方法可以定位到 main() 的位置,但是就说一个最简单的办法吧(我认为的)。
在入口点的反汇编窗口 右键 —— 查找 —— 所有参考文本字符串,你就会发现可怜的 hello world 被你找到了(啊!可恶! o(゚Д゚)っ!)
在这里插入图片描述
双击 hello world (任意一个都可以),跟随到对应的地址:
在这里插入图片描述
在 B1002 处下一软件断点(F2),让程序跑到这个位置。
再看下 push 0xB2100 这条指令中的地址里存放了什么(命令行:dd 0x000B2100)
在这里插入图片描述

当然现在是啥子都看不到的 ,需要在 Dump 窗口中 右键 —— HEX —— HEX/UNICODE(8、16都可以)
喔喔… 又看到你了 hello world ( ̄▽ ̄)/
在这里插入图片描述
然后,都看到你了,不留下点痕迹怎么好意思呢… 右键 —— 二进制 —— 编辑 ,改成你喜欢的 Unicode 字符(我这里就写我自己的 ID 吧)
在这里插入图片描述
改完后要记得保存呀,不然有什么意义。Dump 窗口 :右键 —— 复制到可执行文件 —— 在新的窗口右键 —— 保存文件
在这里插入图片描述试试打开原来写的程序:喔喔 ! 果然是这个样子
在这里插入图片描述
离下班时间还有 一个半小时,再学一小时,最后半小时点个外卖…美好生活啊 ——
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值