CreateProcessA我们非常熟悉,就是创建一个进程,这个API的函数hook非常实用,本课我们可以通过CreateProcessA来运行系统的计算器,或者记事本等等。

CreateProcessA

.版本 2.DLL命令 CreateProcessA, 整数型, "kernel32.dll", "CreateProcessA", , 创建进程。.参数 lpApplicationName, 文本型.参数 lpCommandLine, 文本型.参数 lpProcessAttributes, 整数型.参数 lpThreadAttributes, 整数型.参数 bInheritHandles, 整数型.参数 dwCreationFlags, 整数型.参数 lpEnvironment, 整数型.参数 lpCurrentDriectory, 文本型.参数 lpStartupInfo, STARTUPINFO.参数 lpProcessInformation, 进程结构, , 进程结构

创建进程

在没有hook的时候,我们创建了进程calc.exe

.版本 2.子程序 _按钮1_被单击
.局部变量 窗口结构, STARTUPINFO
.局部变量 进程结构, 进程结构
CreateProcessA (目录_取system32目录 () + “calc.exe”, “”, 0, 0, 0, 0, 0, 目录_取system32目录 (), 窗口结构, 进程结构)

hook

.版本 2h.安装Hook (“kernel32.dll”, “CreateProcessA”, 到整数 (&MyCp))h.开始Hook ()

回调钩子函数

我们随便编译了一个测试.exe,hook后就不会打开计算器,而是直接启动我们自己定义的测试.exe。

.版本 2.子程序 MyCp
.参数 lpApplicationName, 文本型
.参数 lpCommandLine, 文本型
.参数 lpProcessAttributes, 整数型
.参数 lpThreadAttributes, 整数型
.参数 bInheritHandles, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpEnvironment, 整数型
.参数 lpCurrentDriectory, 文本型
.参数 lpStartupInfo, 整数型
.参数 lpProcessInformation, 整数型, , 进程结构信息框 (“CreateProcessA已经被我劫持!!!”, 0, , )
h.停止Hook ()
运行 (取运行目录 () + “\测试.exe”, 假, )
h.开始Hook ()

注入钩子DLL

当然我们也可以把钩子写出一个DLL,通过注入来实现,我们本课视频采用了EIP注入和远程线程注入,下面时DLL源码:

.版本 2
hook ()
_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
返回 (0)  ' 返回值被忽略。
.子程序 _临时子程序' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
.子程序 hook, , 公开
h.安装Hook (“kernel32.dll”, “CreateProcessA”, 到整数 (&MyCp))h.开始Hook ()
.子程序 MyCp
.参数 lpApplicationName, 文本型
.参数 lpCommandLine, 文本型
.参数 lpProcessAttributes, 整数型
.参数 lpThreadAttributes, 整数型
.参数 bInheritHandles, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpEnvironment, 整数型
.参数 lpCurrentDriectory, 文本型
.参数 lpStartupInfo, 整数型
.参数 lpProcessInformation, 整数型, , 进程结构
.局部变量 窗口结构, STARTUPINFO
.局部变量 进程结构, 进程结构信息框 (“CreateProcessA已经被我劫持!!!”, 0, , )
h.停止Hook ()
' 运行 (取运行目录 () + “\测试.exe”, 假, )
CreateProcessA (取运行目录 () + “\测试.exe”, “”, 0, 0, 0, 0, 0, 取运行目录 (), 窗口结构, 进程结构)
h.开始Hook ()

源码下载:http://www.511yj.com/eyuyan-hook-83.html

易语言api hook CreateProcessA 创建进程相关推荐

  1. 易语言API Hook SetWindowTextA

    我们知道SetWindowTextA这个API的作用是设置窗口标题,当我们调用这个接口的时候,换成我们的函数,本课没有做注入DLL调用,而是在一个测试文件里做了演示. SetWindowTextA . ...

  2. 511遇见易语言API模块线程创建许可证(InitializeCriticalSection)

    许可证是易语言特有的一次词语,我们首先了解一下许可证的作用,务必指定什么时候使用许可证,在那个地方使用许可证.易语言多线程许可证的几点理解 1.许可证的添加一般是子程序变量或者是全局变量 2.一般用许 ...

  3. 易语言api hook CreateFileA

    当调用CreateFileA创建文件时,我们劫持它,hook成我们自己的东西,易语言里的写到文件就是API(CreateFileA ) hook 说明 1.未hook前会生成一个111.txt,内容是 ...

  4. 易语言API hook MessageBoxA

    windows中三个最重要的动态链接库,Kenerl32.dll, User32.dll, GDI32.dll.HOOK API截获的是应用程序对系统API的调用,它在应用程序对系统API的调用之前截 ...

  5. 易语言API hook 实现动态类名

    我们知道易语言程序默认的类名是WTWindow,如果想改变这个类名,那么就需要API HOOK ,本课我们是实现的动态类名,也就是说,每次启动程序,它的类名都不一样. 生成动态类名我们采用了文本_取随 ...

  6. 易语言api hook ShellExecuteA 执行程序

    ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制,和CreateProcessA比起来没有太复杂,可以简单理解为 ...

  7. 易语言API hook CreateWindowExA

    CreateWindowExA是创建窗口的一个API,我们本课对这个API进行HOOK.我们仍热采用前几课封装的APIhook类模块.两种方式,一个是在一个程序里通过载入新窗口继续hook,一个是通过 ...

  8. 易语言api hook GetAdaptersAddresses 劫持网卡物理地址

    GetAdaptersAddresses是获取物理网卡的MAC,这里我们通过HOOK,随机的改变它,效果如下图,获取本节MAC可以采用精易模块的MAC_取本机MAC (1) GetAdaptersAd ...

  9. 易语言API获取进程程序路径

    通过传递进程ID取指定进程的程序路径,成功返回程序路径,失败返回空,用到以下API: 1.CreateToolhelp32Snapshot 快照句柄 = CreateToolhelp32Snapsho ...

最新文章

  1. python下载教程pdf-Python教程PDF合集下载
  2. flume采集数据报错问题解决
  3. c语言递归建链表,递归创建二叉树c语言实现+详细解释
  4. python随机生成列表_python 实现快速生成连续、随机字母列表
  5. 浅谈移动互联网广告设计评论
  6. 怎么让背景铺满整个页面_必能用到,一页PPT中想放超多图片怎么办?
  7. jquery tmpl 详解
  8. resizableImageWithCapInsets:方法的探析 (转载笔记)
  9. IDAPython安装
  10. Impala SQL语句 COMPUTE STATS
  11. 货币金融学(米什金)笔记:金融体系、货币相关
  12. what is the different between Grammar and syntax
  13. [摘]广义企业级PDM系统下的PPM(工艺规划管理)
  14. 【JAVA今法修真】 第四章 redis特性 击穿雪崩
  15. L2、L3协议开发之以太网交换机基础
  16. 微医与友邦中国战略合作,智能医务室为职员健康护航
  17. git clone加速(实测推荐)
  18. 免费python全套教程百度云-老男孩Python视频教程全套完整版!无偿分享~
  19. LeetCode第 764 题:最大加号标志(C++)
  20. MySQL酒店管理系统课程设计_酒店管理系统的设计与实现(PHP,MySQL)(含录像)

热门文章

  1. idea项目修改名字
  2. 汇编语言(王爽) 课程设计一
  3. 闲谈 vue-strap 框架的 vselect 使用方法
  4. 书籍 - 2018.07.10
  5. 03 k近邻法——课后习题答案
  6. VSCode智能补全代码片段技巧
  7. Hadoop组件之MapReduce作用及设计原理
  8. 透明度测试-AlphaTest
  9. 零基础该如何学习CAD
  10. mysql主键干嘛的_mysql主键是什么?