首页
社区
课程
招聘
[旧帖] [原创]科锐培训逆向分析入学题1,我的解答 0.00雪花
发表于: 2009-12-20 16:43 1603

[旧帖] [原创]科锐培训逆向分析入学题1,我的解答 0.00雪花

2009-12-20 16:43
1603
1、如何在下面的test函数里加入代码可以使程序运行起来输入和输出的相等?
(环境是vc6Debug方式下)
#include<stdio.h>
void test()
{
  int t;
  scanf("%d",&t);
  在这里加入代码
}
void main()
{
  int m;
  test();
  printf("m=%d",m);
}
解答:方法一,只为满足题意要求,可以先查看变量m的内存地址,将t值存入m的地址空间
加入代码:
int* i=(int*)0x12ff7c;   //m的地址为0012ff7ch
	*i=t;

方法二,思想同上,找到t的内存地址,和m的内存地址相比较,相差0x58,
加入代码:       
int* k=&t+0x58/4;//一定要除以4或者写成int *k=(int*)((char *)&t+0x58)
*k=t;

方法三,利用反汇编指令
加入如下代码:
_asm
	{
		mov eax, dword ptr [ebp+0]
		mov ecx, t
		mov dword ptr[eax-4], ecx
	}


测试结果:

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看看。。学学
2009-12-20 20:21
0
游客
登录 | 注册 方可回帖
返回
//