修改函数的第一,第六,第七字节实现函数跳转(利用汇编语言)

原创 2005年05月17日 13:38:00

#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;
}

汇编语言学习系列 函数实现

以下代码示范交换a和b两个整数的函数,编译环境Ubuntu14.04(32位) 假如要实现以下C代码 #include void swap(int *xp, int *yp) { ...
  • csujiangyu
  • csujiangyu
  • 2015年03月01日 14:00
  • 686

C程序代码中内嵌as汇编(三、跳转)

在内联汇编中使用跳转语句是非常常见的,比如:比较两个数,返回较大数时,就会用到跳转;先看下汇编和运行结果,然后再一步步分析下:                                运行结果...
  • YuZhiHui_No1
  • YuZhiHui_No1
  • 2015年01月14日 18:16
  • 1467

使用汇编语言实现if else 循环 函数调用

需要使用汇编来演示如下代码 需要下载ollydbg汇编调试器 点击File-Open随意打开一个exe文件 我这里随便找到c:/windows/explorer.exe文件 这里EIP的值表示下一...
  • liaomin416100569
  • liaomin416100569
  • 2016年08月06日 12:13
  • 2043

分段函数(汇编)

第一次写汇编,两天从一脸蒙蔽到硬着头皮写程序,我做到了,写出来的时候激动得说不出话 函数:当|x|3,y=6 DATA    SEGMENT PROMRT    DB   "Input X ...
  • yinghui_yht
  • yinghui_yht
  • 2016年11月09日 21:00
  • 913

用汇编实现strcmp函数

// file       : zhh_strcmp.cpp // author : zhouhh// email : ablozhou@gmail.com// date       : 2006.8...
  • ablo_zhou
  • ablo_zhou
  • 2006年08月21日 10:16
  • 3230

C++学习之旅——C++的函数所占字节

先看两段代码: 代码段1: class A { public: int print(){ cout }; inr main() { A a; cout } 输出结果:...
  • debugingstudy
  • debugingstudy
  • 2013年10月12日 21:53
  • 1941

如何理解JavaScript中函数是第一类对象

如何理解JavaScript中函数是第一类对象
  • nlznlz
  • nlznlz
  • 2015年11月30日 02:06
  • 1140

指针篇之十二 函数指针数组实现跳转表

函数跳转表是把函数指针和数组结合在一起的应用方式,它充分利用数组的下标索引和函数指针的自动跳转功能,实现用户输入和功能函数的自动关联。比如一个软件计算器,用户输入两个数(op1/op2)和一个操作代号...
  • ipmux
  • ipmux
  • 2013年12月13日 11:27
  • 1593

汇编语言跳转总结

转载链接转载链接跳转指令分三类:一、无条件跳转:JMP ;无条件跳转二、根据CX、ECX寄存器的值跳转:JCXZ ;CX 为 0 则跳转 JECXZ;ECX 为 0 则跳转三、根据EFLAGS寄存器...
  • tonydandelion2014
  • tonydandelion2014
  • 2016年05月04日 20:42
  • 2162

VS2010中跳转到此函数实现的快捷键

该快捷键是F12 不常用根本想不到吧 跟eclipse的设计风格很不同啊 类似于eclipse中的按住ctrl然后单击  跳转到该实现函数...
  • zjm750617105
  • zjm750617105
  • 2015年08月29日 23:55
  • 6338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:修改函数的第一,第六,第七字节实现函数跳转(利用汇编语言)
举报原因:
原因补充:

(最多只允许输入30个字)