-
-
[原创]发个小工具DrXHook加lua控制
-
发表于:
2014-10-11 17:11
11710
-
小工具,
使用DrX挂钩,AddVectoredExceptionHandler接管异常
只挂钩主窗口线程。然后通过lua控制寄存器 盏等操作
实现LUA call函数地址, CALL只能控制ECX 其他寄存器控制不了
可读写内存
主要做一些函数监视用。用这个工具过滤函数返回地址还是很爽的
例如寻找一个发包CALL 大部分开发员会自己创建一个内存管理机制。
使用这个工具HOOK 分配内存函数,然后搭配过滤,则很容易找到发包关键地址
个人觉得最爽的功能lua调用CALL 生活如此简单
--lua直接调用CALL
local ret = CallFunc(0x77c1186a,0,1,1,0x004040A4);
DlgMessage("调用成功返回值:"..IntToHex(ret));
参数说明
--参数1 printf函数地址
--参数2 ECX的值
--参数3 有1个参数
--参数4 是否需要平盏 add esp,1*4 (0或1)
--参数5 printf的第一个参数值 0x004040A4 是 Dome.exe 程序的一个字符串指针
实现了
DlgMessage 输出文本到界面上
EAX 设置和获得积存器值
ECX
EDX
EBX
ESP
EBP
ESI
EDI
EIP
BYTE 读写BYTE
WORD 读写WORD
DWORD 读写DWORD
FLOAD 读写FLOAT
DOUBLE 读写DOUBLE
NewMemory 申请内存 C++ new BYTE[xx+1]
DelMemory 释放内存C++ delete[] addr
WriteBuffer 写内存
ReadBuffer 读内存
CallFunc 调用一个函数
把dll.dll注射进目标进程
设置窗口的类名字,比如你目标程序的主窗口类名是TForm1,就在第一行输入TForm1 然后点 setClassName
点击第2行输入框 设置lua路径 然后点击 LoadLua
设置DrX 第几个积存器和类型还有地址 (默认hookMessageBoxW Dr0积存器 1字节 执行代码类型)
设置好以后点 Set
最后点 开 按钮 就这样可以愉快的玩耍了
感谢提醒哈,大意了改代码多删了一行。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课