滴水逆向_c指针8 函数指针调用硬编码

作业:

做函数指针执行数组数据时,需要将VS的链接器-》高级-》数据执行保护,选否,不然编译的程序是不允许执行数据区的内容的。

还有就是函数生成的硬编码别一股脑复制粘贴,里面有个call 
@_CheckForDebugger JustMyCode@4 数和堆栈平衡的函数,每次执行都不一样, 要把这两个的硬编码给注掉

int __cdecl Function(int x ,int y )
{
	return x + y;
}


char Data[100] =
{
	0x55,
	0x8B, 0xEC,
	0x81, 0xEC, 0xC0, 0x00, 0x00, 0x00,
	0x53,	
	0x56,	
	0x57,	
	0x8B, 0xFD,
	0x33, 0xC9,
	0xB8, 0xCC, 0xCC, 0xCC, 0xCC,
	0xF3, 0xAB,
	0x8B, 0x45, 0x08,
	0x03, 0x45, 0x0C,
	0x5F,	
	0x5E,	
	0x5B,	
	0x81, 0xC4, 0xC0 ,0x00, 0x00,0x00,
	0x3B, 0xEC,
	0x8B, 0xE5,
	0x5D,
	0xC3,
};


int main()
{	



	int (*pstr)(int, int) = NULL;

	//函数指针常规调用
	//pstr = (int (*)(int, int) ) &Function;


	//把函数硬编码 存到数组中 
	pstr = (int (*)(int, int)) &Data ;

    printf("%d", pstr(1, 2));








	system("pause");
	return  0;
}

成功通过函数指针调用数据,当成代码执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值