Load and Unload (ZT)
摘要: 一、前言
在前一段時(shí)間,我遭遇了一個(gè)現(xiàn)象詭異的Bug,最后原因歸結(jié)為在DllMain里錯(cuò)誤地調(diào)用了FreeLibrary(在本文最后對(duì)此Bug有詳細(xì)的解釋)。MSDN里關(guān)于禁止在DllMain里調(diào)用 LoadLibrary和FreeLibrary的解釋過于含糊不清,所以我重溫了一遍Russ Osterlund的"Windows 2000 Loader"一文,并仔細(xì)閱讀了泄漏的Win2000源代碼的相關(guān)部分。按照我一貫的習(xí)慣,我的閱讀過程形成了我這篇文章的主體。自從我2000年寫了"ATL接口映射宏詳解" 以來,我還沒寫過這么大塊頭的文章。我不知道有多少人耐著性子看完了"ATL接口映射宏詳解",我猜想這篇文章的命運(yùn)也不會(huì)比它的前輩好多少。在這個(gè)技術(shù)更新越來越快的年代里,人們會(huì)對(duì)這種陷入實(shí)現(xiàn)細(xì)節(jié)的文章感到厭煩,而我自己在若干年后可能也不會(huì)有耐心和勇氣面對(duì)它,但文章最后對(duì)幾個(gè)問題的解釋也還是有實(shí)用價(jià)值的,另外尋根究底的精神也總是應(yīng)該存在的。
..............
閱讀全文
Windows NT使用技巧、編程原理及程序示例(ZT)
摘要: 1. 利用Net User命令和Cacls命令做用戶管理
2. 利用At命令做日程管理
3. 利用用戶登錄腳本實(shí)現(xiàn)開機(jī)提示
4. 利用Net Session命令實(shí)現(xiàn)登錄用戶統(tǒng)計(jì)
5. Windows NT局域網(wǎng)管理API函數(shù)庫(NETAPI)簡介
6. 怎樣添加、刪除、配置用戶?
7. 怎樣修改用戶口令?
8. 怎樣編程實(shí)現(xiàn)用戶的注銷和關(guān)機(jī)?
9. 怎樣獲取所有登錄用戶列表?
10. 怎樣向用戶或計(jì)算機(jī)發(fā)送消息?
11. 怎樣實(shí)現(xiàn)遠(yuǎn)程關(guān)閉計(jì)算機(jī)?
12. UNICODE字符串和普通ASCII字符串怎樣轉(zhuǎn)換?
13. 如何獲取系統(tǒng)錯(cuò)誤信息?
14. 什么是Service(服務(wù))程序?
15. 如何使自己的應(yīng)用程序成為Service?
16. 如何編制Service程序?
..................
閱讀全文
LNK1103: debugging information corrupt; recompile module
摘要: Linking...
Creating library Debug/xxx.lib and object Debug/xxx.exp
uuid.lib(comcat.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.
.........
閱讀全文
控制臺(tái)下輸出DLL的調(diào)試信息(ZT)
摘要: 在cmd.exe下運(yùn)行rundll32.exe mydll.dll,MyFunc ,本想直接在當(dāng)前cmd窗口輸出調(diào)試信息.
可因rundll32是Win32 GUI程序而非Win32 console,所以cmd.exe標(biāo)準(zhǔn)輸入輸出句柄無法被mydll.dll繼承用來向父進(jìn)程cmd.exe輸出數(shù)據(jù).
這時(shí), 如果用強(qiáng)行用GetStdHandle獲得句柄,然后用WriteConsole來進(jìn)行輸出,則會(huì)發(fā)生無效句柄錯(cuò)誤.
但是如果在這之前先AllocConsole,則可正常WriteConsole,但是會(huì)新建個(gè)控制臺(tái)窗口來輸出數(shù)據(jù),很不爽 :-P
有沒有什么辦法向當(dāng)前cmd.exe窗口輸出數(shù)據(jù)呢?
.............
閱讀全文
char *和char [ ]的區(qū)別(ZT)
摘要: 見程序如下:
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
char source[]="This is a source sentence";
//char *source="This is a source sentence";
strtok(source,"a");
printf("%s\n",source);
return 0;
}
如果用被注釋掉的那句話,程序運(yùn)行的時(shí)候就報(bào)錯(cuò)。
................
閱讀全文
Windows下的進(jìn)程隱藏(ZT)
摘要: 9X環(huán)境中Windows提供了想光的API函數(shù)用于隱藏系統(tǒng)進(jìn)程。但是到了2000以上系統(tǒng),已經(jīng)無法真正的做到對(duì)于進(jìn)程的隱藏,除非編寫底層驅(qū)動(dòng)。但是我們可以通過一些變通的辦法來達(dá)到隱藏進(jìn)程的目的,其中一個(gè)就是遠(yuǎn)程注入。簡單的說就是先編寫一個(gè) API的DLL,然后將這個(gè)DLL庫注入到一個(gè)系統(tǒng)進(jìn)程中,作為它的一個(gè)線程去執(zhí)行。
要實(shí)現(xiàn)DLL注入,首先需要打開目標(biāo)進(jìn)程。
hRemoteProcess = OpenProcess( PROCESS_CREATE_THREAD | //允許遠(yuǎn)程創(chuàng)建線程
PROCESS_VM_OPERATION | //允許遠(yuǎn)程VM操作
PROCESS_VM_WRITE, //允許遠(yuǎn)程VM寫
FALSE, dwRemoteProcessId )
...........
閱讀全文
ApiHook類(ZT)
摘要: // 頭文件
// ApiHook.h: interface for the CApiHook class.
//
//////////////////////////////////////////////////////////////////////
#ifndef API_HOOK_H
#define API_HOOK_H
class CApiHook
{
public :
HANDLE hProc ;
............
閱讀全文
APIHOOK之?dāng)r截OpenProcess(真正的實(shí)現(xiàn)了攔截TerminateProcess)(ZT)
摘要:
關(guān)于API HOOK(OpenProcess),根據(jù)網(wǎng)上文章改寫
以下是部分程序,在VC++6.0 Plat SDK 2003 SP1下編譯通過
#include <windows.h>
#include "APIHook.h"
extern CAPIHook g_OpenProcess;
// 自定義OpenProcess函數(shù)
#pragma data_seg("YCIShared")
HHOOK g_hHook = NULL;
DWORD dwCurrentProcessId=0;
#pragma data_seg()
HANDLE WINAPI Hook_OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId)
.................
閱讀全文
APIHOOK之殺毒軟件的簡單實(shí)現(xiàn)(ZT)
摘要: #define DEBUGMSG
#include <windows.h>
#include <windef.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "Psapi.h"
#pragma comment (lib,"Psapi.lib")
#define erron GetLastError ()
TCHAR name[50]=""; //保存蟲蟲的文件名+路徑
FILE *Gfp=NULL; //輸出到文件
BOOL ScanVXER (LPTSTR V_FileName,long V_FileOffset,int V_Length,TCHAR *V_Contents);
//匹配特征碼函數(shù)
.......................
閱讀全文
應(yīng)用層隱藏服務(wù)的項(xiàng)目(ZT)
摘要: 應(yīng)用層隱藏服務(wù)的項(xiàng)目 2006-03-28
HideService
// *****************************************************************************//
//
// 文件名: AgentHk.cpp
// 所屬項(xiàng)目名稱:
// 所屬模塊名稱: AGENT Service Hook
// 所屬項(xiàng)目版本: 2.0
// 文件用途 :
// 文件作者 : horse_b
// 創(chuàng)建日期 : 2004-11-30
//
// 文件修改說明:
// 文件修改人:
// 修改日期:
//
//
//
//********************************************************************************//
.............
閱讀全文
啟動(dòng)項(xiàng)新思路
摘要: 前幾天我看了一篇技術(shù)文章,是講述一種病毒的感染運(yùn)行機(jī)制。原文中提到了一個(gè)木馬啟動(dòng)的新的思路。(文章是兩年前的,唉,看來我們要學(xué)的東西好多阿)也許某些 ~高手已經(jīng)會(huì)了,但是很多人也不知道。我整理出來,結(jié)合我自己的試驗(yàn),給大家簡單介紹一下。作為一個(gè)小教程,本文不涉及程序方面的知識(shí),菜鳥老鳥都能看明白的。暫時(shí)我們只針對(duì)XP和2000系統(tǒng)。其他的系統(tǒng)我沒測試過,不敢亂說!
一般大家機(jī)器里都會(huì)有QQ吧,我們就用QQ來做試驗(yàn)!!?
直接在開始菜單里找到運(yùn)行欄,輸入regedit,打開注冊(cè)表編輯器。找到
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]
.........
閱讀全文
WSUS3安裝完畢,WSUS.MSC不能執(zhí)行
摘要: 風(fēng)馬牛不相及的垃圾提示:
MMC 不能打開文件 C:\Program Files\Update Services\administrationsnapin\wsus.msc。
這可能是由于文件不存在,不是一個(gè) MMC 控制臺(tái),或者用后來版本的 MMC 創(chuàng)建。也可能是由于您沒有訪問此文件的足夠權(quán)限。
解決方法:
安裝KB907265補(bǔ)丁,中文Windows2003補(bǔ)丁地址為:http://download.microsoft.com/download/4/4/3/443ecb98-2394-4c92-b9e6-c50998edb8cf/WindowsServer2003-KB907265-x86-CHS.exe
閱讀全文
WSUS3安裝中途出錯(cuò)
摘要: 2007-05-15 18:19:20 Success MWUSSetup Validating pre-requisites...
2007-05-15 18:19:21 Error MWUSSetup Failed to determine if an higher version of WSUS is installed. Assuming it is not... (Error 0x80070002: 系統(tǒng)找不到指定的文件。)
2007-05-15 18:19:24 Success MWUSSetup Required MMC Version: 3. Current MMC Version: 2
2007-05-15 18:19:24 Success MWUSSetup Required MMC Version: 3. Current MMC Version: 2
2007-05-15 18:19:57 Success MWUSSetup
閱讀全文
Vista錯(cuò)誤刪除了備份驅(qū)動(dòng)目錄FileRepository后解決方法
摘要: 網(wǎng)上的東西真是沒多少可以相信的,我的Vista刪除了FileRepository目錄之后,USB不能用了,藍(lán)牙不能用了,設(shè)備管理器一堆感嘆號(hào),更新驅(qū)動(dòng),塞Vista安裝盤也沒用,折騰了N久了,最近終于解決了(不要隨便相信所謂的“減肥”)
下載IMAGEX6000
將VISTA安裝光盤中的WIM文件解壓
以管理員模式運(yùn)行命令提示符 IMAGEX.EXE /APPLY X:\SOURCES\INSTALL.WIM 4 X:\A 路徑自己改,目錄需先手工創(chuàng)建,4為U版
完成后把X:\A\Windows\System32\DriverStore\FileRepository中的文件復(fù)制回去就行了,不用重裝系統(tǒng)!
真想減肥,使用NTFS壓縮方式壓縮一下,其他就算了,以防萬一
閱讀全文
網(wǎng)頁木馬US-ASCII碼,unicode碼的加密解密(ZT)
摘要: 轉(zhuǎn)載:二少's Blog
US-ASCII加密,就是把7bit轉(zhuǎn)換為8bit
閱讀全文