CRACKME 1: 破解 WINDWS 对话框程序,修改对话框字符串

前言: 通过学习简单的修改对话框中的字符串,让我们了解到如何利用 OD 来查找 API 和 修改内存信息。
源码:放在 VS 中直接编译就好,然后拿OD来进行调试

#include "windows.h"
#include "tchar.h"

int _tmain(int argc, TCHAR *argv[])
{
	MessageBox(NULL, 
			   L"Hello World!", 
			   L"www.reversecore.com", 
			   MB_OK);
	
	return 0;
}
  1. 修改思路:
    1. 查找出 MessageBox API
    2. 查看其调用时参数中字符串 “Hello world!”的内存
    3. 修改该内存达到修改字符串的目的。
  2. 查找 MessageBox API 的三种思路:
    1. 直接通过字符串 “Hello world!” 来确定:
      1. OD 在加载过程中会扫描一遍字符串,我们直接查找出来字符串,查看其调用的地方,就很好确定位置。
      2. 步骤如下图:
        1. 在这里插入图片描述
        2. 在这里插入图片描述
        3. 在这里插入图片描述
    2. 通过 搜索模块间的call调用 来确定 API
      1. 在这里插入图片描述
      2. 在这里插入图片描述
      3. 在这里插入图片描述
    3. 通过查找 API 列表,在 MessageBox API内部设断点,根据其断时的栈区保存的函数调用时的返回地址来确定位置(其本来是方法二的费力版本,当时没找到方法二自己想出来的一种,这里补充一下吧,思路感觉还行。)
      1. 在这里插入图片描述
      2. 在这里插入图片描述
      3. 在这里插入图片描述
      4. 在这里插入图片描述
      5. 在这里插入图片描述
      6. 在这里插入图片描述
  3. 修改字符串的两种思路:
    1. 在内存中直接修改:优点是方便,缺点也很明显,当输入数据过大时,可能内存溢出影响其他数据。
      1. 在这里插入图片描述
      2. 在这里插入图片描述
      3. 在这里插入图片描述
      4. 在这里插入图片描述
      5. 在这里插入图片描述
    2. 在内存中重新开辟一片区域,在里面输入自己的字符串,然后修改。
      1. 在这里插入图片描述
      2. 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值