吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3832|回复: 70

[C/C++] 【注入】导入表注入

  [复制链接]
30659653 发表于 2020-4-20 20:10 | 显示全部楼层 |阅读模式

有几位大哥看了远程线程之后问了其他注入,其中导入表注入问的挺多的,我一介小白会的不多,只能勉强写个简单的过程,内容很潦草,但是注释是认真的。
发个简单的写法,其中RVA转FOV我直接写的函数,看文章的应该都懂。为了好理解,里面类型我都用的unsigned XX,注释也都尽量详细了。
希望能得到大家的免费评分,我想换个ID
如果你是在学习导入表注入,建议打开导入表的结构图,看着导入表的结构体同时看下面的代码。如果你是个大佬只是为了重温那当我没说。

[C] 纯文本查看 复制代码
	//导入表注入前先新增一个节,标志属性为0XC0000040

	
	//得到导入表文件偏移
	unsigned int pImportFov = RvaToFov(*(unsigned int*)(ImageBuffer + muluAddress + 1 * 8), MINEFileSize);

	int flag1 = 0, count = 0;
	//计算导入表原尺寸
	for (int i = 0;; ++i)
	{
		//判断是否结束
		if (*(unsigned int*)(FileBuffer + pImportFov + 20 * i) == 0)
		{
			for (int k = 0; k < 20; ++k)
			{
				if (*(unsigned char*)(FileBuffer + pImportFov + 20 * i + k) == 0)
				{
					flag1 = 1;
					continue;
				}
				else
				{
					flag1 = 0;
					break;
				}

			}

		}
		
		if (flag1 == 1)//如果返回flag==1,那么结束
		{
			break;
		}
		count++;//有效结构+1

	}
	//count结构数量
	
	//获取新增节的首地址,并转为fov
	unsigned int NewImportFov = RvaToFov(VirtualAddress[NumberOfSections - 1], MINEFileSize);

	//将原导入表复制到新导入表位置
	memcpy(FileBuffer + NewImportFov, FileBuffer + pImportFov, sizeof(unsigned char)*count * 20);

	//添加新导入表结构
	unsigned int NewImportStructFov = NewImportFov + count * 20;
	*(unsigned int*)(FileBuffer+NewImportStructFov+4) = 0;//时间戳属性!!!!!


	//结构末尾追加20个0,20为结构尺寸
	memset(FileBuffer + NewImportStructFov + 20, 0, 20);

	//追加8字节的INT表,rva赋给int属性
	memset(FileBuffer + NewImportStructFov + 40, 0, 8);
	unsigned int intrva = NewImportStructFov + 40 - NewImportFov + VirtualAddress[NumberOfSections - 1];
	*(unsigned int*)(FileBuffer + NewImportStructFov + 0) = intrva;//INT属性!!!!!

	//追加8字节IAT表,rva赋给iat属性
	memset(FileBuffer + NewImportStructFov + 48, 0, 8);
	unsigned int iatrva = NewImportStructFov + 48 - NewImportFov + VirtualAddress[NumberOfSections - 1];
	*(unsigned int*)(FileBuffer + NewImportStructFov + 16) = iatrva;//IAT属性!!!!!

	//追加被INT和IAT指向的名称结构给24个字节,前两字节00,从+58开始是名称
	memset(FileBuffer + NewImportStructFov + 56, 0, 24);
	strcpy((char*)FileBuffer + NewImportStructFov + 58,"exportfun");

	//把上面的名称结构赋值给INT和IAT,INT和IAT存的是RVA,转换!
	unsigned int tmprva = NewImportStructFov + 56 - NewImportFov + VirtualAddress[NumberOfSections - 1];
	*(unsigned int*)(FileBuffer + NewImportStructFov + 40) = tmprva;
	*(unsigned int*)(FileBuffer + NewImportStructFov + 48) = tmprva;

	//追加dll名称,并将rva赋值给name属性
	strcpy((char*)FileBuffer + NewImportStructFov + 80, "Win32Project15.dll");
	unsigned int dllnamerva = NewImportStructFov + 80 - NewImportFov + VirtualAddress[NumberOfSections - 1];
	*(unsigned int*)(FileBuffer + NewImportStructFov + 12) = dllnamerva;//NAME属性!!!!!
	
	//修正目录项
	*(unsigned int*)(FileBuffer + muluAddress + 1 * 8) = VirtualAddress[NumberOfSections - 1];

	//写到文件
	FILE* NewFile = fopen(str2, "wb+");
	fwrite(FileBuffer, sizeof(unsigned char), MINEFileSize, NewFile);

	fclose(NewFile);

评分

参与人数 8HB +18 THX +4 收起 理由
消逝的过去 + 2
飞刀梦想 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
微熊猫 + 2
agan8888 + 1
pmm018 + 2
ytmfje110 + 1 + 1 [快捷评语]--你将受到所有人的崇拜!
Shark恒 + 10 + 1 [快捷评语]--你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
cunzhang2016 发表于 2020-4-20 20:20 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
kf9974831 发表于 2020-4-20 22:29 | 显示全部楼层

看的娃娃 一脸懵B 路过打酱油了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
adime 发表于 2020-9-6 11:13 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
audition 发表于 2020-9-13 10:53 | 显示全部楼层

感谢大神的分享哦
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
FKEUiMSn0 发表于 2022-2-25 07:39 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
gEL1730 发表于 2022-2-28 17:05 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
rSiCd 发表于 2022-2-28 17:13 | 显示全部楼层

太好了,我看看,谢谢!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
CBJ6245 发表于 2022-3-1 01:17 | 显示全部楼层

被标题吸引进来了,回复看看
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
DGY24736 发表于 2022-3-1 11:58 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

免责声明

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

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


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

Powered by Discuz!

吾爱汇编 www.52hb.com

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