HOOK技术的简单使用
本帖最后由 无邪 于 2014-10-15 16:37 编辑API HOOK别人求你逆向的时候甩手一个DLL过去,这种分析方法是不是很炫酷?这篇文章就与大家谈论如何利用APIHOOK的技术让逆向成为一个DLL的事情!API HOOK字面上的意思就是勾住(hook)API。为什么要勾住API呢,是为了让API功能更为强大,也就是给他加上更多的功能。那就意味着我可以修改程序所调用的API,完成我所需要修改的内存。(逆向)
引用一段百度百科上的话使大家更易理解:在windows系统下编程,应该会接触到api函数的使用,常用的api函数大概有2000个左右。今天随着控件,stl等高效编程技术的出现,api的使用概率在普通的用户程序上就变得越来越小了。当诸如控件这些现成的手段不能实现的功能时,我们还需要借助api。最初有些人对某些api函数的功能不太满意,就产生了如何修改这些api,使之更好的服务于程序的想法,这样api hook就自然而然的出现了。我们可以通过api hook,改变一个系统api的原有功能。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。
原理说实话没必要太过的理解,懂得如何使用的就可以了!
这里首先给大家推荐一个工具:飘云阁的一款DLL劫持的补丁制作工具
以及一个小例子
首先拿OD加载我们的例子可以看到明显加壳了。。运行后程序代码段完全解码这个例子的分析方法我也不多说了004010F5 |. /0F84 68000000 je 例子.00401163NOP这条代码即可!有无数个方法可以实现,而我还想修改程序判断的文本和信息框的提示呢?今天我们用API HOOK来实现这些!
我们需要选择一个API来进行劫持,这个API的选择只有一个要求。。程序第一次使用这个API的时候,程序代码段已经解码了!我选择的是CreateWindowExA这个API大家可以在OD里面反复的实验来找到适合的API进行Hook打开DLL劫持补丁制作工具,对所需要HOOK的API进行选择,填写需要HOOK的程序名称选择要生成的类型
这个是非常简单的程序。。。我们如果只想逆向他的话可以直接修改004010F5 |. /0F84 68000000 je 例子.00401163为90 90 90 90 90 90
如果希望程序输入某串字符才可以登录成功的话还可以这么写
这样设置好一切之后点击生成就会在DLL劫持补丁制作工具的文件夹下生成一个DLL,把他与例子.exe放在同一个文件夹下就能自动hook了!赶快试试吧!
这个就是我做的DLL!
附上成功修改判断内容以及判断成功提示的文本图!
pnccm 发表于 2014-10-15 11:31
冲着补丁而来的。不知道这补丁适用win7的吗?以前的那些dll补丁工具在win7下都无效
好像这个工具只支持32位下DLL劫持
64位的API和32位下的API不一样..
64劫持API需要自己写64位API 的HOOK了
应该是这样
沙发自坐..
一点点逆向心得,
不喜勿看勿喷
{:5_118:}建议录教程。
刚来第一帖就是精华,霸气外楼的无邪!{:6_225:}
{:6_216:}然道就楼猪是未来的大婶????
Shark恒 发表于 2014-10-15 00:58
刚来第一帖就是精华,霸气外楼的无邪!
{:5_191:}初来乍到,鲨鱼大求罩
小强 发表于 2014-10-15 00:46
建议录教程。
{:5_191:}你的积分怎么那么高..分点给我
无邪 发表于 2014-10-15 01:04
你的积分怎么那么高..分点给我
{:5_188:}我是版主。啊
我擦,刚才在看东西,怎么帖子已经发了。我汗!!!!让我膜拜吧!
我们需要选择一个API来进行劫持,
这个API的选择只有一个要求。。
程序第一次使用这个API的时候,
程序代码段已经解码了!
我选择的是CreateWindowExA这个API
上面这些不太懂!!!