吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 5466|回复: 8

是C++ ,可以对EXE内存进行Inline hook吗?请进,例如Jmp进自己的函数,在调回去

[复制链接]
2581559949 发表于 2017-11-5 08:16 | 显示全部楼层 |阅读模式

本站严厉禁止求脱求破行为(包含无自我分析直接求思路),如发现此类求助主题请点击“举报”,让我们共同维护优质的学习环境!


70HB
例如:
我已经把DLL注入进去了,
然后对EXE 某一个函数进行HOOK      (注意:不是API hook 是任意函数地址hook)
先跳进我dll的函数,执行完了在跳回去,问题是如何知道我自己的函数地址
jmp 0x???????








请问有例子吗,我需要一个例子,是C++ 的 谢谢

评分

参与人数 1THX +1 收起 理由
禽大师 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
youxiaxy 发表于 2017-11-5 08:16 | 显示全部楼层

最佳答案本应属于楼主私有,因此限制查看

您还有0次查看次数,点此查看答案

点此购买查看次数
也可以兑换VIP特权或加入解密专家,每日可免费查看5次最佳答案!

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一个good而已 发表于 2017-11-5 12:42 | 显示全部楼层

x86中
jmp操作数=目的地址-当前地址-5
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 2581559949 发表于 2017-11-5 20:23 | 显示全部楼层

本帖最后由 2581559949 于 2017-11-5 20:50 编辑
youxiaxy 发表于 2017-11-5 08:16
C中  函数名  就可以代表 函数首地址。   HOOK  API 和 HOOK EXE 代码原理都是一样的。没什么差别。基本都 ...

感谢你,请问有QQ吗? 我想提高这些部分,该看那些教程
你好,你写的这段代码,我没看懂,请问是什么意思
        while(dwArgCount)
        {
                *((DWORD*)lpTmp)=(DWORD)(0x282474FFUL + ((dwArgCount*4)<<24));

                dwArgCount--;
                lpTmp+=4;
        }
        *lpTmp++=0xFF;
        *lpTmp++=0x15;
        *((DWORD*)lpTmp)=(DWORD )lpAddress+4;

0x282474FFUL

111.png
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
youxiaxy 发表于 2017-11-5 20:53 | 显示全部楼层

2581559949 发表于 2017-11-5 20:23
感谢你,请问有QQ吗? 我想提高这些部分,该看那些教程
另外,我发现你的这个hook代码,有问题?

代码调用 过你的DLL 函数之后   在其他内存段部分执行了 这些  PUSH EBP  之类的 被占用的指令 ,然后才走到这里。。。。。至于 while  这一段 是参数。用于 hook  有参数的 函数,。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
youxiaxy 发表于 2017-11-5 20:56 | 显示全部楼层

2581559949 发表于 2017-11-5 20:23
感谢你,请问有QQ吗? 我想提高这些部分,该看那些教程
你好,你写的这段代码,我没看懂,请问是什么意 ...

你仔细看 例子。里面 演示了 hook  有参数的 函数 和 没有参数的 函数。  这段代码可以 hook 在 任意地址。不一定要函数头。不过  如果不是HOOK函数头、就不能 带参数....
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 2581559949 发表于 2017-11-5 22:48 | 显示全部楼层

youxiaxy 发表于 2017-11-5 20:56
你仔细看 例子。里面 演示了 hook  有参数的 函数 和 没有参数的 函数。  这段代码可以 hook 在 任意地址 ...

最后请问下,你hook头部后,push ebp这些都没有了
调用完毕不恢复,堆栈不平衡,不会崩溃吗?难道内部会自动平衡?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
youxiaxy 发表于 2017-11-6 09:01 | 显示全部楼层

2581559949 发表于 2017-11-5 22:48
最后请问下,你hook头部后,push ebp这些都没有了
调用完毕不恢复,堆栈不平衡,不会崩溃吗?难道内部会 ...

SetHOOK   函数 会将 原来的 函数的   被 JMP  xxxxxxxx  占用的  完整指令字节  复制到 其他地方 用于 继续执行。 比如:
hOOK 了 函数头部, 占用了
QQ截图20171106085020.png

当执行到被HOOK  函数的时候。跳转  到这里执行。先去 保存 寄存器, 然后 调用的 你的函数,在恢复寄存器。然后 执行 原始 函数的 被占用部分的指令  最后调回 (原函数+ 被占用字节)的  位置继续执行  ,
QQ截图20171106085221.png
,,
调用 完毕,
该执行的指令(原始函数的指令)一句不少的执行了。。
堆栈 和寄存器   还是原来的   堆栈和寄存器。(   如果你不修改的话)。 。

又怎么可能会炸呢。

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 2581559949 发表于 2017-11-9 16:38 | 显示全部楼层

youxiaxy 发表于 2017-11-5 20:56
你仔细看 例子。里面 演示了 hook  有参数的 函数 和 没有参数的 函数。  这段代码可以 hook 在 任意地址 ...

请你帮我看看我的另外一个问题,谢谢https://www.52hb.com/thread-34679-1-1.html
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表