vc遠控源碼
Ⅰ 我有VC簡單遠程式控制制代碼 一改怎麼用 請給位高手指點
2個解決辦法。
1.工程-》屬性-》C/C++-》代碼生成-》運行時庫:修改成: 多線程調試(/MTd); (release版本也修改成 多線程(/MT)
2.工程-》屬性-》常規-》MFC的使用:修改為:在靜態庫中使用 MFC
方法2不一定管用,PC機上的MFC(相對於EVC而言)程序都是多線程的(不信你照2修改試試,會出現找不到_beginthread函數的定義),必須設置多線程版本的運行時庫。也就是照1的設置
大哥多給點分吧
Ⅱ 求一加殼的vc源代碼
看這里,直接下在源代碼.
<br><a href="http://bbs.pediy.com/showthread.php?t=43229" target="_blank">http://bbs.pediy.com/showthread.php?t=43229</a>
<br>
<br>源碼在vc7+xp-sp2下編譯通過
<br>原理:對Pe文件的.data節,.text節進行XOR加密,然後將帶解密的Loader寫入文件頭和第一個段的開頭之間,修改Entry Point使其指向Loader.
<br>測試用例:使用vc6.0自動生成的mfc對話框應用程序。
<br>參考文獻:(1)def源碼
<br>          (2)黑客調試技術揭秘
<br>          (3)yoda's protector源碼
稍微看了一下,這個做得並不復雜,看代碼應該可以整理出思路來的
Ⅲ vs2010可以編譯的遠控有哪些
自己編寫 太麻煩了 現在 網上那些遠控源碼都不免殺了 你可以去下載個 雲遠控 免殺的 效果很好
Ⅳ VC++的源代碼在哪可以找啊推薦幾個論壇~
串列通訊的代碼和資料,要到這里來找:
http://www.gjwtech.com/serialcomm.htm
Ⅳ gh0st遠控需要學C++還是VC++
gh0st遠控是用c++語言在vc++編譯器中編寫的, �0�2所以要學c++,免殺 �0�2好像還要用匯編修改吧,
Ⅵ 遠控源碼免殺需要什麼工具
遠控軟體gh0st源碼免殺
遠控軟體gh0st3.6開源了,開源意味著我們可以在此基礎上進行二次開發,同時也意味著殺軟可以較容易的查殺該款遠控木馬,既然要利用,我們就做好源碼基礎上的木馬免殺工作。 
好久沒有來博客了,我把免殺這部分整理了一下,先拋一磚頭,有興趣的朋友可以接著做,也可以和本人交流。 
序 
gh0st遠控軟體採用驅動級RESSDT過主動,svchost參數啟動,替換系統服務的方式工作的,工作方式較為先進,美中不足的部分是沒有進行驅動級或用戶級隱藏,當然這部分可以添加進去。編碼利用了VC的編程環境。 
一、環境配置 
編譯環境一定要配置好:DDK+SDK+VC6,DDK用來編譯sys文件的,SDK+VC6是用來編譯工程的,配置部分比較簡單,網上有很多資料,這里不再詳述,有興趣的朋友也可以查看DDK和SDK的相關幫助。 
二、特徵碼定位簡述 
殺毒軟體查殺木馬的原理基本是根據特徵查殺的,被查殺的部分我們稱之為特徵碼,所以我們可以利用特徵碼定位工具MyCLL定位出病毒的特徵碼位置,定位工具原理是將被掃描木馬分塊,利用分段填充的方式,匹配殺軟的特徵值,找到殺軟查殺病毒的位置。 
定位出特徵碼,如何反向找到源碼中的對應位置呢?請看下面分析, 
三、二進制文件與源碼定位之map文件利用 
map文件是二進制和源碼之間對應的一個映射文件。 
我們假設根據第三步我們定位出了病毒的特徵碼: 
病毒名稱 特徵碼位置 內存地址 
svchost.dll 000038AA_00000002 100044AA 
svchost.dll 00005F98_00000002 
第一步設置VC編譯環境生成Map文件。 
在 VC 中,點擊菜單「Project -> Settings」選項頁(或按下 Alt+F7),選擇 C/C++ 選項卡,並在最下面的 Project Options 裡面輸入:/Zd ,然後要點擊 Link 選項卡,選中「Generate mapfile」復選框,並在最下面的 Project Options 裡面輸入:/mapinfo:lines,表示生成 MAP 文件時,加入行信息。設置完成。 
第二步編譯VC工程,設置活動工程編譯即可,這個不用說明。這個步驟完成後,在release(或debug)目錄,多了一個.map文件(比如svchost.map)。 
第三步打開map文件(用UE或文本編輯器打開都行),形式如下: 
(begin) 
Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008) 
Preferred load address is 10000000 
---------------------------------------------------------------------------1----(為方便說明,wrw添加) 
Start Length Name Class 
0001:00000000 00010a50H .text CODE 
0001:00010a50 00000485H .text$x CODE 
0002:00000000 000004c8H .idata$5 DATA 
...... 
0003:00000010 00000004H .CRT$XIZ DATA 
0003:00000020 00001a50H .data DATA 
0003:00001a70 00000688H .bss DATA 
0004:00000000 000000a8H .rsrc$01 DATA 
0004:000000b0 00000cf0H .rsrc$02 DATA 
----------------------------------------------------------------------------2---(為方便說明,wrw添加) 
Address Publics by Value Rva+Base Lib:Object 
0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj 
0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj 
0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj 
0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj 
0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj 
0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj 
0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj 
...... 
0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj 
0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj 
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj 
0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj 
0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj 
...... 
----------------------------------------------------------------------------3---(為方便說明,wrw添加) 
Line numbers for ./Release/FileManager.obj(E:/vtmp/gh0st3src/Server/svchost/common/FileManager.cpp) segment .text 
17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0 
25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee 
77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d 
...... 
532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440 
546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492 
551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4 
558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506 
...... 
(end) 
我們看下,定位svchost.dll 的第一個特徵碼內存地址為:100044AA,在第2塊中,我們可以找到RVA+BASE與之很接近的是 
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj 
這樣我們可以定位到FileManager.cpp中的FixedUploadList函數,是不是范圍縮小了? 
下面我們再縮小代碼行 
利用這個公式:特徵碼行偏移 = 特徵碼地址(Crash Address)- 基地址(ImageBase Address)- 0x1000 
看起來好像很難,其實很簡單,我們將100044AA去掉內存基址10000000,再減1000,因為PE很多從1000開始,可以得到代碼偏移地址為34AA。到第3塊中找對應的代碼行。 
偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中間,也就是551行和552行中間,我們到源程序中查找第551行: 
wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash); 
這樣就定位出源代碼了,要怎麼修改就怎麼修改它就可以了。 
四、實戰免殺 
A、卡巴免殺 
首次編譯後,先做卡巴的免殺。卡巴殺sys文件和dll,當然也就殺包裝它們的install.exe,最後卡巴還殺生成的sever,我這里說殺生成好的server不是和前面的特徵碼重疊的地方,而是殺配置信息。 
第一步、sys免殺 
sys重新編譯後,增加了輸入表的函數,同時系統不同,造成很多地方不同於原特徵,順利通過卡巴、金山、小紅傘等殺軟。 
第二步、svchost.dll免殺 
特徵碼定位MultiByteToWideChar和"gh0st update"兩個位置。這里是通過第3步map文件得出的。 
卡巴怕加花指令, 這個函數MultiByteToWideChar的調用上,可以在這個函數前面隨便加幾句無效語句就可以通過卡巴殺軟。 
字元串調用"gh0st update" ,這個是用於更新用的 ,如果不要在線更新,直接把這個語句所在代碼塊刪除;嘿嘿,其實搜索工程替換這個字元串為其他的字元串就可以了^_^,這個方法同時可以過金山殺軟。 
第三步、server免殺 
卡巴定位在最後的配置信息,採取跳轉顯然是不行的,採用加花的辦法,在寫入AAAAAA配置信息之前,隨便寫些東西,就可以做server免殺。 
卡巴免殺完成! 
B、Avast免殺 
最新的avast殺軟再查殺1下,殺install.exe和svchost.dll(也就是殺生成的文件和其中的資源文件),接著做它的源碼免殺。 
定位在特徵字元串%02d/%02d/%02d和「SYSTEM/CurrentControlSet/Services/%s」兩個地方。 
解決方案: 
1、svchost.dll的特徵碼定位在鍵盤記錄KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函數。特徵字元串%02d/%02d/%02d,也就是我們看到鍵盤記錄的日期,修改之,修改的方法很多,將其改為[%d/%d/%d %d:%d:%d] ,編譯即可通過avast殺軟。 
2、install的特徵碼定位在「SYSTEM/CurrentControlSet/Services/%s」,對應文件是install.cpp里的InstallService函數,修改大小寫,編譯即可通過免殺。 
五、添加垃圾代碼的小方法 
垃圾代碼要移動特徵碼所在的位置,不要跑到堆棧中了,這樣的代碼沒有用。可以採取添加for循環,做計數,簡單統計,採用局部變數,不改變後面的邏輯為宜。 
添加輸出表的方法: 
有殺輸出表的,可以在生成的svchost.dll上添加空函數 ,但是每次編譯都要修改1次資源 ,其實我們在源碼上添加如下語句: 
extern "C" __declspec(dllexport) bool JustTempFun();//聲明 
…… 
extern "C" __declspec(dllexport) bool JustTempFun() //實現 
{ 
return false; 
} 
編譯後,輸出表就被改變了,有的殺軟就可做到代碼免殺。 
六、gh0st自動生成6to4ex.dll的修改 
看到好多站友提問自動生成6to4ex.dll的問題,有熱心站友也提出了自己的見解 ,我感覺有些人提出的解決方案不完全正確,有可能造成剛入手人誤解,我根據自己的理解說明1下。 
gh0st服務端是通svchost -netsvcs啟動的,所以程序要利用netsvcs 服務,服務端也就是根據netsvcs生成的,故不能說服務端生成是隨機的,相對於大多數系統來講,基本是固定的,下面看分析。 
查看install.cpp裡面的InstallService()方法,首先遍歷HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/Windows NT/CurrentVersion/Svchost中的服務項,查找到一個服務後,程序採取替換服務的方法,將原服務刪除,然後生成對應服務項+ ex.dll的文件替換原服務,6to4服務一般排在第一位,6to4服務是一種自動構造隧道的方式,作用在於只需要一個全球惟一的IPv4地址便可使得整個站點獲得IPv6 的連接,這個服務對一般人來講,基本閑置,所以我們的程序就把6to4服務給替換掉,同時在windows/system32/目錄下生成 6to4ex.dll,以後啟動就是6to4ex了,如果把這個服務跳過去,就依次向下生成Ias、Iprip等服務啦,如果netsvcs項沒有可以替換的服務,則程序將自己添加1個服務,名稱就是由 AddsvchostService()方法產生的netsvcs_0x%d。 
這樣說不知道關心服務名稱的明白了不? 
這個不能說是技術問題,但是小技巧問題可以從這里產生,我不知道其他人的360是怎麼過的,但是我覺得可以提示1下的是,如果是360默認系統安全的服務,它肯定不會報不安全,替換閑置的系統安全的服務則通過360的效果要好的多
Ⅶ 求C++遠程式控制製程序的源碼
沒有c++只有vc++…另外你匿名怎麼給你!?如果要VC++的可以網路:Gh0st3.6,開源的遠控,網上有各種教程。
Ⅷ 急求VC源代碼
(1) 
#include<iostream> 
using namespace std; 
int main() 
{ 
float num1,num2; 
char ch; 
begin: 
cout<<"請輸入第1個數:\n"; 
cin>>num1; 
cout<<"請輸入運算符:\n"; 
cin>>ch; 
cout<<"請輸入第2個數:\n"; 
cin>>num2; 
switch(ch) 
{ 
case '+': 
cout<<"結果:"<<num1+num2<<endl; 
break; 
case '-': 
cout<<"結果:"<<num1-num2<<endl; 
break; 
case '*': 
cout<<"結果:"<<num1*num2<<endl; 
break; 
case '/': 
if(int(num2)!=0) 
{ 
cout<<"結果:"<<num1/num2<<endl; 
} 
else 
{ 
cout<<"除數不能為0,請重新輸入.\n"; 
goto begin; 
} 
break; 
default: 
cout<<"你輸入的運算符錯誤,請重新輸入.\n"; 
goto begin; 
} 
getchar(); 
return 0; 
} 
(2) 
#include <iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
char num1[50]; 
char num2[50]; 
char ch; 
int n=0; 
int i=0; 
float count=0; 
string inStr; 
begin: 
cout<<"請輸入:"; 
cin>>inStr; 
memset(num1,0,50); 
memset(num2,0,50); 
for(i=0; inStr[i]!='\0'; i++) 
{ 
if(inStr[i]=='+' ||inStr[i]=='-' ||inStr[i]=='*' ||inStr[i]=='/' ) 
{ 
break; 
} 
else 
{ 
num1[i]=inStr[i]; 
} 
} 
ch=inStr[i]; 
i++; 
for(; inStr[i]!='\0'; i++) 
{ 
if(inStr[i]=='+' ||inStr[i]=='-' ||inStr[i]=='*' ||inStr[i]=='/' ) 
{ 
break; 
} 
else 
{ 
num2[n]=inStr[i]; 
n++; 
} 
} 
switch(ch) 
{ 
case '+': 
count=float(atoi(num1))+float(atoi(num2)); 
break; 
case '-': 
count=float(atoi(num1))-float(atoi(num2)); 
break; 
case '*': 
count=float(atoi(num1))*float(atoi(num2)); 
break; 
case '/': 
if(atoi(num2)!=0) 
{ 
count=float(atoi(num1))/float(atoi(num2)); 
} 
else 
{ 
cout<<"除數不能為0"<<endl; 
goto begin; 
} 
break; 
} 
cout<<"結果是:"<<count<<endl; 
}
祝你好運了!!!!!!!!!!!!!
Ⅸ VC寫反彈高級遠程式控制制!
木馬就是了
