修改函数的第一,第六,第七字节实现函数跳转(利用汇编语言)
来源:互联网 发布:票据打印机软件 编辑:程序博客网 时间:2024/06/05 18:31
#include <iostream>
#include <windows.h>
using namespace std;
void new_func()
{
cout << "new_func" << endl;
}
int main()
{
char pNewFuncAddr[7] = { '/0' };
pNewFuncAddr[0] = (char)0xB8;
DWORD dwAddr = (DWORD)new_func;
memcpy(pNewFuncAddr+1,&dwAddr,sizeof(DWORD));
pNewFuncAddr[5] = (char)0xFF;
pNewFuncAddr[6] = (char)0xE0;
/**********************
b8 9c 5e 41 00 ff e0
**********************/
/*
(*(void)(*)()(&pNewFuncAddr))();
转换有局限性:void(*)()
*/
_asm
{
lea eax,[pNewFuncAddr];
call eax;
}
/*****************************
lea eax,[pNewFuncAddr]
call eax
*****************************
||
/ || /
////
//
*************************
b8 mov eax
9c
5e
41 00415e9c
00
ff e0 jmp eax
*************************/
return 0;
}
- 修改函数的第一,第六,第七字节实现函数跳转(利用汇编语言)
- 汇编语言函数调用小结及缓冲区溢出的利用
- C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式
- 【C】【笔记】《C和指针》 第六章 指针 第七章 函数 第八章 数组 第九章 字符串、字符和字节
- 汇编语言学习系列 函数实现
- 第七周任务二(利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数)
- 《C++第七周实验报告2-1》---利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数
- 请修改append函数,利用这个函数实现
- 请修改append函数,利用这个函数实现
- [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转
- sublime怎么实现函数之间的跳转
- 第七节:在主函数中利用累计定时中断的次数来实现独立按键的检测
- pc实现跳转。函数指针与绝对地址的跳转
- Python学习函数,“利用函数修改元组的坑”
- 第六节:在主函数中利用累计主循环次数来实现独立按键的检测
- 字符串函数的实现(第一波)
- mips汇编语言之实现swap函数
- 汇编语言的字节传送
- Dispose & Finalize
- 一个俄罗斯方块游戏
- MSSQLServer JDBC Driver + Tomcat Configuration
- 一个贪吃蛇
- 修复Linux和windows多系统引导
- 修改函数的第一,第六,第七字节实现函数跳转(利用汇编语言)
- 用JavaScript脚本制作自己的色谱图
- Java字串的比較
- Groovy 学习笔记3 运行效率
- 十天学会ASP.Net
- spring 1.2 +hibernate3 的 关于 default-lazy的问题
- 如何在oracle和Mysql中限制返回结果集的大小
- 一款优秀的联系人管理软件 EasyOffice ECM 2005
- TCPDUMP中文手册