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 例子.00401163
NOP这条代码即可!
有无数个方法可以实现,
而我还想修改程序判断的文本和信息框的提示呢?
今天我们用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!
附上成功修改判断内容以及判断成功提示的文本图!
欢迎大家来加我自己的编程语言交流QQ群群号:387618421