吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15170|回复: 57
收起左侧

[原创工具] 新人开源一个自己开发的DLL注入和汇编注入器(简单的讲解)

  [复制链接]
zhaobisheng 发表于 2020-11-12 21:16
本帖最后由 zhaobisheng 于 2020-11-13 15:18 编辑

新人双11刚注册了帐号,来个新人贴冒一下泡,因为我写文章比较少,如果表达的不够清晰的话,大家可以留言哈,多多谅解,源码、成品以及例子都会放在末尾。这个工具是我之前学做游戏变(W)强(G)软件时开发的,功能基本满足需求,目前工具支持以下功能:
  • 进程信息查看
  • 进程挂起
  • 进程恢复
  • 进程模块查看
  • 进程模块卸载
  • DLL文件拖拉
  • DLL注入
  • 根据汇编代码生成OPCode(目前只支持x86)
  • 直接注入汇编代码


processList.png


注入DLL

注入DLL



shellcode.png




DLL注入大家应该都不陌生了,汇编注入下面会简单说一下用法。
首先我们有一个程序需要动态调试它的某些功能,又不想写DLL注入进去测试,这时候就可以使用到汇编注入了,我们可以直接写一段汇编实现我们想要的功能,
比如下面我会调用例子程序里面的函数:
首先,这个例子程序的代码特别简单

例子代码

例子代码


这个例子程序在内存中的样子是这样的:

例子main

例子main


main函数里面的逻辑就是一个初始化callTips字符串,还有就两个call
第一个call就是调用输出 call print!   的doPrint函数,这个函数在例子程序内存中的地址是 0x00AB1000
第二个call就是调用getchar函数,这个函数的作用是等待输入一个字符,主要用来暂停例子程序不退出

例子doPrint

例子doPrint

doPrint函数里面也有一个call,这个是调用了C语言系统库的printf函数输出"call print!"

然后我们记录一下关键地址:
1、doPrint函数地址是0x00AB1000
2、printf函数地址是0x00AB10A0
3、"call print!"地址是0xAB20F0
4、"other call!"地址是0x00AB2100


等下我们主要调用一次doPrint函数和printf函数输出隐藏的"other call!"字符串作为例子
默认运行例子程序是这样的

例子默认

例子默认


我们来写汇编注入再调用一次doPrint函数
代码大概是这样的:
[Asm] 纯文本查看 复制代码
mov eax,0x00AB1000
call eax
ret

doPrint

doPrint

注入后执行成功了
下面我们来想办法输出隐藏的"other call!"字符串,因为在原程序中我们doPrint函数有一个输出"call print!"的地方,所以我们把这段代码拿过来,把字符串换成隐藏字符串就行了
[Asm] 纯文本查看 复制代码
push ebp
mov ebp,esp
mov eax,0x00AB10A0
push 0x00AB2100
call eax
add esp,4
pop ebp
ret


隐藏字符串

隐藏字符串


成功,"other call!"字符串被输出了,其实这种找call后换成我们想要的参数就是WG中经常用到的


最后,感谢大家看完这篇帖子,虽然都是很基础的东西,但是研究一下也是很有趣的!




进程注入器 例子.zip (917.99 KB, 下载次数: 1735)

解压密码: 52pojie


源码地址: https://github.com/zhaobisheng/BInject
缺的库文件可以从我的压缩包里面找




dll.png

免费评分

参与人数 10吾爱币 +16 热心值 +9 收起 理由
yiyueeryue + 1 我很赞同!
那个当有个疯子 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hf46zr + 1 + 1 鼓励转贴优秀软件安全工具和文档!
神枪泡泡丶 + 2 + 1 用心讨论,共获提升!
大帅哥 + 1 + 1 我很赞同!
ok199793 + 1 + 1 谢谢@Thanks!
k16670979525 + 1 + 1 我很赞同!
hadg + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gqdsc + 1 新人就这么厉害
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zhaobisheng 发表于 2020-12-23 11:26
vscos 发表于 2020-12-19 21:51
在WIn10下照着做,注入时targetPrint老自动退出

不好意思哈,targetPrint忘记取消随机内存地址了,每个人运行时函数、字符串的内存地址是不一样的,需要你自己用OD或者x64dbg找到这个地址,然后把例子里面的汇编改成你自己的地址。
vscos 发表于 2020-12-24 19:11
zhaobisheng 发表于 2020-12-23 11:26
不好意思哈,targetPrint忘记取消随机内存地址了,每个人运行时函数、字符串的内存地址是不一样的,需要 ...

哦!原来如此
昧光 发表于 2020-11-13 15:16
89小达叔 发表于 2020-11-13 20:12
文盲不会搞,在角落瑟瑟发抖
mr季忆 发表于 2020-11-13 20:47
谢谢分享。。。。。。。。。。
fym 发表于 2020-11-13 21:34
谢谢分享
萌萌哒黛娜 发表于 2020-11-15 08:46
假装看懂了
qmnete 发表于 2020-11-15 18:22
虽然不看不懂,但是感觉很厉害的样子
混世魔猫 发表于 2020-11-15 19:19
感谢讲解和分享源代码,新人学习中。。。
Chenbinbest 发表于 2020-11-16 09:14
好厉害,假装看懂了。。。。。。。。。
夜雨丶声烦 发表于 2020-11-16 10:49
暂时看不懂,但是感觉很厉害的样子
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-8-31 21:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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