`
isiqi
  • 浏览: 15949243 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

在别人的程序的任意位置加上调用自己函数的代码,且不影响原程序执行的方法

阅读更多

原理和HOOK是一样的,都是通过WriteProcessMemory写入代码,但这里我们想任意位置加入代码,为了不影响原程序的执行,执行完我们的函数后,必须恢复原有程序的寄存器和堆栈的值,所以第一句话就是 pushad将所有寄存器压栈,执行完我们的函数跳回原有程序后,第一句就是pop eax,因为跳转代码是mov eax,xxx jmp eax修改了eax:

伪代码:

根据伪代码用delphi写成的函数:

我们自己的函数:

调用方法:

说明:这里的addrBeforeWriteCard等于baseAddr+$8

分享到:
评论

相关推荐

    python实现按任意键继续执行程序

    然后自己再来个帅气的回车,我觉得肯定给人一种非常专业的感觉,最起码自己肯定被自己迷倒了,所以今天我们就学习下这段代码,这里定义了一个函数,所以你可以嵌入到你的程序中,在任何你希望调用的地方调用它即可,...

    10.第十章 函数.txt

    (3)main函数是程序执行的入口,main函数可以调用其他函数,其他函数调用结束后要返回main函数,main函数执行完毕,整个程序就结束了。 (4)main函数可以出现在任何位置,其他函数的位置也不是强制的,每个函数...

    从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出

    从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出 2) 当输入的两个数不是大于2,则重新输入 3)输入的数...

    C语言程序设计标准教程

    在C程序中,一个函数的定义可以放在任意位置, 既可放在主函数main之前,也可放在main之后。例如例1.3中定义了一个max 函数,其位置在main之后, 也可以把它放在main之前。 修改后的程序如下所示。 int max(int a,...

    C语言复习资料.docx

    3. 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 4. main函数在程序中的位置任意,可以在程序的开头、中间或者尾部。 o 程序语句 1. C程序由语句组成,用“;”作为语句终止符 2. /* */或 ...

    C语言函数语法详解

    1、概述 ... c、C程序的执行是从main函数开始,也是在main函数中结束整个程序  d、所有函数是平行的,即在定义函数时是分别进行的,是互相独立的。一个函数并不从属于另一个函数,即函数不能嵌套定

    eWOW64Ext v1.2 - 加载任意 32/64 模块|动态调用|64 位汇编|64 位进程读写

    也就是:wow 环境 -> 进入 x64 环境 -> x64 函数调用 或 x64 汇编代码 -> 退出 x64 环境 -> wow 环境,以上必须在一个子程序内完成;。部分实现代码借鉴 c++ 开源代码:wow64ext,在此感谢作者 rewolf。v1.2 - 2019....

    API之网络函数---整理网络函数及功能

    API之网络函数1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一...

    VC++常用的共用函数100多页

    ◆如何在任意程序中显示MessageBox◆ 27 ◆如何在程序判断出debug状态◆ 27 ◆当对话框中有一个滚动条是,当滚动滚动条时的消息控制函数◆ 27 ◆将一个CWnd指针转换成一个控件ID(整数)注意用GetDlgItem()函数是从一...

    精通WindowsAPI 函数 接口 编程实例

    1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 安装Microsoft Platform SDK 4 1.2.3 集成Microsoft Platform SDK与Visual C++速成版 5 1.2.4 Vista ...

    eWOW64Ext v1.1 - 加载任意 32/64 模块|动态调用|64 位汇编|64 位进程读写

    wow64 是在 64 位操作系统上允许 32 位程序(比如易编译的程序)执行的模拟器子系统;在 64 位操作系统中,不管你的程序是 32 还是 64 位的,其实都存在两个地址空间,正常情况下 32 位程序访问的自然是 32 位的地址...

    C语言程序设计实现鼠标控制

    同样,鼠标函数使用这四个寄存器把鼠标的位置和按钮的状态返回给调用函数。 1.2 鼠标功能调用方法 用TC通过INT33H中段来编制基本函数,有三种常用方法: 1.嵌入汇编程序,如:ASM CLI清中断。 2.利用全程变量赋予...

    C 程序指导书及实践指导

    (3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。 2. 用梯形法求函数的定积分。 实验...

    精通Windows.API-函数、接口、编程实例.pdf

    在编译环境下进入demo目录,执行nmake命令在bin目录下生成可执行文件 注:demo无注释,对应书本中部分示例。 目录 第1章 Windows应用程序开发入门 1 1.1 第一个实例程序 1 1.1.1 start.exe 1 1.1.2 Windows ...

    程序运行过程中,调用__WFI();命令,即可进入睡眠模式。WFI可以通过任意中断唤醒,这里采用按键中断唤醒

    随着电池供电的应用场景越来越对,非常有必要深入理解和应用STM32的低...程序运行过程中,调用__WFI();命令,即可进入睡眠模式。WFI可以通过任意中断唤醒,这里采用按键中断唤醒。唤醒后,程序从WFI下一行开始执行。

    Detours(有例子)

    Detours是一个在x86平台上截获任意Win32函数调用的工具库。中断代码可以在运行时动态加载。Detours使用一个无条件转移指令来替换目标函数的最初几条指令,将控制流转移到一个用户提供的截获函数。而目标函数中的一些...

    x64进程远程hook,x64_远程调用函数,源码更新V1.8.7:2021/4/16-易语言

    wow64_hook 源码历史更新 -----------------------------------... 1,穿插代码中增加对标志位的保护,避免hook位置长度下一条指令为跳转时产生跳转错乱的问题,强化了hook任意位置的定位  2,因为穿插代码中会调用AP

Global site tag (gtag.js) - Google Analytics