我是靠谱客的博主 壮观抽屉,最近开发中收集的这篇文章主要介绍逆向工程核心原理——DLL注入——创建远程线程什么是DLL注入?DLL注入的实现方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是DLL注入?

dll注入是一种将Windows动态链接库注入到目标进程中的技术,具体的说,就是将dll文件加载到一个进程的虚拟地址空间中。对某个进程进行dll注入,也就意味着dll模块与该进程共用一个进程空间,则这个dll文件就有了操纵这个进程空间的能力,以达到执行dll模块中的代码修改进程数据的能力。dll注入技术在逆向工程,病毒,外挂,调试等技术领域都有广泛的应用,它也是Windows API hook技术的基础。

改善功能与修复Bug改善功能与修复Bug 

DLL注入技术可用于改善功能与修复Bug没有程序对应的源码,或直接修改程序比较困难 时,就可以使用DLL注入技术为程序添加新功能(类似于插件),或者修改有问题的代码、数据。

消息钩取 

Windows OS默认提供的消息钩取功能应用的就是一种DLL注入技术。与常规的DLL注入唯 一的区别是,OS会直接将已注册的钩取DLL注入目标进程。

 API 钩取

API钩取广泛应用于实际的项目开发,而进行API钩取时经常使用DLL注入技术。先创建好 DLL形态的钩取函数,再将其轻松注入要钩取的目标进程,这样就完成了API钩取。这灵活运用 了 “被注入的DLL拥有目标进程内存访问权限”这一特性。 

其他应用程序 

 DLL注入技术也应用于监视、管理PC用户的应用程序。比如,用来阻止特定程序(像游戏、 股票交易等)运行、禁止访问有害网站,以及监视PC的使用等。管理员(或者父母)主要安装 这类拦截/阻断应用程序来管理/监视。受管理/监视的一方当然千方百计地想关闭这些监视程序, 但由于这些监视程序采用DLL注入技术,它们可以隐藏在正常进程中运行,所以管理员一般不用 担心被发现或被终止(若用户强制终止Windows系统进程,也会一并关闭系统,最后也算达成了 拦截/阻断这一目标)。

恶意代码 

恶意代码制作者们是不会置这么好的技术于不顾的,他们积极地把DLL注入技术运用到自己 制作的恶意代码中。这些人把自己编写的恶意代码隐藏到正常进程(winlogon.exeservices.exesvchost.exe, explorer.exe等),打开后门端口 ( Backdoor port),尝试从外部连接,或通过键盘偷 录(Keylogging )功能将用户的个人信息盗走。只有了解恶意代码制作者们使用的手法,才能拿 出相应对策。

DLL注入的实现方法

向某个进程注入DLL时主要使用以下三种方法:

DLL注入方法

创建远程线程(CreateRemoteThreadAPI)

使用注册表(AppInit DLLs值)

消息钩取(SetWindowsHookExAPI)

创建远程线程(CreateRemoteThread)

使用InjectDll.exe在notepad.exe中注入Myhack.dll(winxp提权后测试成功)

准备好InjectDll.exe和Myhack.dll的代码

打开记事本(只需要打开,不用在里面做任何事情)

从任务管理器查看记事本的PID

 

打开cmd(win10的版本要用管理员模式,文件要直接放在盘里,不能有文件夹)

最后就会得到一个

最后

以上就是壮观抽屉为你收集整理的逆向工程核心原理——DLL注入——创建远程线程什么是DLL注入?DLL注入的实现方法的全部内容,希望文章能够帮你解决逆向工程核心原理——DLL注入——创建远程线程什么是DLL注入?DLL注入的实现方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部