详谈 vc++源码免杀全套思路方法
生活随笔
收集整理的這篇文章主要介紹了
详谈 vc++源码免杀全套思路方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先說(shuō)中國(guó)國(guó)內(nèi)殺毒軟件的特征 。
1??金山毒霸 ,我個(gè)人覺(jué)得殺的代碼部分和字符串還是比較普遍的 。輸入表函數(shù) 我個(gè)人不多見(jiàn) 。
2??瑞星 ,經(jīng)實(shí)戰(zhàn)經(jīng)驗(yàn) ,瑞星殺毒軟件是垃圾。 過(guò)掉金山 也就過(guò)瑞星了??除非殺敏感的字符串 。
3??江民 ,純屬基本就是殺字符串 。。 大家可以進(jìn)行 隱藏代碼 就可以。。你懂得
4??也就是大家最頭疼的??360殺毒 。這個(gè)就是重點(diǎn)。因?yàn)檫^(guò)掉360 -5引擎 基本國(guó)內(nèi)就差不多了。
簡(jiǎn)單介紹下 ,360云查殺+BD常規(guī)+qvm+國(guó)外引擎小紅傘+主動(dòng)防御??。
--------------
詳談360各大引擎套路 你懂得...
(1)360云查殺 ,其實(shí)就是qvm和紅傘的 集成版??。 也就是云qvm??實(shí)時(shí)鑒定 、 也是大家最頭痛的。
(2)BD引擎 我個(gè)人懷疑 也有點(diǎn)智能??。有時(shí)候大家會(huì)認(rèn)為定位不到或者定位錯(cuò)誤 。也就是本地殺代碼 函數(shù) 等等都有可能吧,我個(gè)人過(guò)BD 不太感冒??所以沒(méi)有深入研究。
(3)qvm ,所謂qvm引擎 其實(shí)就是 高啟發(fā)+行為判斷+特征??..這個(gè)毫無(wú)疑問(wèn)??智能引擎 。
(4)紅傘 ,也就是跟qvm差別不大 。也屬于智能 。大部分在殺行為。
(5)主動(dòng)防御引擎,其實(shí)不存在 。也就是衛(wèi)士 提示主動(dòng)防御。(也就是說(shuō)過(guò)掉表面 不過(guò)提示那是白費(fèi))
-------
詳談360 各引擎的 定位套路 方法 以及思路。
前提,注釋掉 區(qū)段合并 + 延遲加載+ 優(yōu)化 。刪除版權(quán)信息 以及圖標(biāo) (這里也是在排除可能性)以及查看模式R 模式, 不要用debug模式??,那是調(diào)試模式 。(必然 必須的)
其實(shí)過(guò)掉360 引擎 。也許還有很多方法,我只說(shuō)說(shuō)我的定位套路。
第一步??斷網(wǎng) ,關(guān)閉所有引擎 ,開(kāi)啟云殺 ,也就是定位云殺的本地 。 很垃圾很好過(guò)。
第二步,繼續(xù)過(guò)BD??,定位 方法 一樣, 正向 跳過(guò)1000 頭 。(源碼免殺不可能殺頭 所以跳過(guò)1000頭)定位??根據(jù)定位情況解決??..
第三補(bǔ)步,關(guān)閉所有殺軟,定位qvm??。方便做定位正確 ,那么我們要加上 反調(diào)試代碼??(我個(gè)人是必須的)以及其他手段 ,因?yàn)閝vm 是智能的 。大家都知道 qvm殺的百分百是輸入表函數(shù) 。所以 大家就要逐一 填充定位。(你懂得)填充到哪里 哪里不殺??那么好吧??就是那個(gè)dll里 。 所以 反向定位那個(gè)段。基本不會(huì)有什么問(wèn)題 ,然后逐一的填充??逐一定位 。這里給大家舉例,kernel32.dll +user32.dll 這個(gè)2個(gè)dll填充。那么就在這里 ,(一般填充跳過(guò) GetProcAddress和LoadLibrary 因?yàn)闅⒛?個(gè)函數(shù) 說(shuō)明是假的,定位錯(cuò)誤。所以沒(méi)必要。) 這樣定位來(lái) ,如果還是定位不到,那么就是殺的行為判斷,需要反調(diào)試代碼。或者大家可以進(jìn)行預(yù)處理來(lái)測(cè)試 。比如說(shuō) 轉(zhuǎn)換大小和最快模式 ,加 減 去版權(quán)和圖標(biāo),都會(huì)影響到整個(gè)特征的排序。如果那樣進(jìn)行轉(zhuǎn)換 排除 填充所有常見(jiàn)dll還是被殺 ,那么就可以選擇放棄 。或者找更有效的反調(diào)試方法。
第四 , 小紅傘引擎 。也是大家頭疼的問(wèn)題。 我個(gè)人的實(shí)戰(zhàn)經(jīng)驗(yàn) 過(guò)掉小紅傘??基本上要加版權(quán)的。不知道怎么搞的。我也郁悶 也沒(méi)深究。沒(méi)有版權(quán) 怎么著 都會(huì)殺。我個(gè)人認(rèn)為 。。然后定位方法 基本跟qvm差不多 也是智能 。 一般總會(huì)定位錯(cuò)誤函數(shù),沒(méi)關(guān)系 繼續(xù)定位 , 過(guò)掉智能 要就是耐心 。
第五, 也是大家最頭疼的問(wèn)題 ,云查殺 ..我個(gè)人表示鴨梨很大。上面我也介紹了??這里再簡(jiǎn)單說(shuō)一下云查殺思路 。也就是云的實(shí)時(shí)鑒定 ,通過(guò)什么呢?那么就是qvm和紅傘的引擎庫(kù)了。 估計(jì)還有其他行為 ,有待研究。(據(jù)了解 360開(kāi)發(fā)者 是一群黑客.你懂得是什么意思)言歸正傳 ..云查殺??需要聯(lián)網(wǎng)定位的。 但是想過(guò)掉云查殺??必須要過(guò)掉前面幾個(gè)引擎 。最后過(guò)云殺 。云殺也是一樣??殺的是輸入表函數(shù) ,我以前認(rèn)為云殺 是人工一秒云鑒定 。后來(lái)發(fā)現(xiàn)貌似不是,是個(gè)云qvm.很繁瑣很繁瑣的 。 提起云殺我就惡心 。但我不得不說(shuō) 實(shí)在是太強(qiáng)悍 太強(qiáng)悍了。 加上qvm和紅傘。簡(jiǎn)直就是讓免殺者感覺(jué)很蛋疼的一件不蛋疼的事。定位方法 需要正向定位 ,也是逐一去圈。去排除 。傅哥說(shuō),動(dòng)態(tài)調(diào)用10個(gè)函數(shù)以上 ,假如可以過(guò)掉,那么你下次再拿這套源碼定位的時(shí)候??很難很難, 可以說(shuō)基本沒(méi)什么辦法過(guò)掉 ,也就是說(shuō)定位不到輸入表函數(shù) 。就算定位到??也是些不能調(diào)用的地方 函數(shù)、。 相信大家都有一套自己的方法,這里我就不廢話了。還有一點(diǎn)好多情況 會(huì)殺資源??具體方法很多 。大家去JKC 殘殼等等 論壇找找相關(guān)教程 很好解決 。比如過(guò)掉dll但是殺dat的dll資源,那么填充MZ頭,在exe的源碼里加代碼??運(yùn)行釋放dll 加上MZ 。呵呵 這個(gè)你也懂得 。
-----------
說(shuō)實(shí)話, 我暫時(shí)只能想到這些 。 具體 要靠自己 要靠實(shí)戰(zhàn)經(jīng)驗(yàn)??更要有耐心 。有時(shí)候我也會(huì)為一個(gè)問(wèn)題 郁悶一個(gè)星期 。。所以不要輕易放棄 。
----------
總結(jié)以上
360 , 強(qiáng)??強(qiáng)的很 。 但是過(guò)掉他 方法很多??具體我不說(shuō)qvm和紅傘 , 就說(shuō)云引擎。比如說(shuō)upx壓縮??可以過(guò)掉,現(xiàn)在不知道封了沒(méi)??。 其實(shí)玩黑 ,就是舉一反三??活學(xué)活用??不管是什么 。不管是免殺??還是滲透??。要對(duì)自己有信心??。 一天不行 兩天??兩天不行三天, 當(dāng)初我因?yàn)槊鈿?shí)戰(zhàn) ,差點(diǎn)走火入魔了。呵呵 ,總結(jié)我不說(shuō)思路,只說(shuō)自己要有耐心 , 就像是賺錢(qián)養(yǎng)老婆是一回事 。放棄了什么都不要說(shuō) ,成功了一過(guò)掉殺軟,那么 滿足感是有的??說(shuō)明什么??你懂得 呵呵 。。。跟大家扯淡一會(huì) 。。
--------------
好繼續(xù)說(shuō)。
反調(diào)試代碼我就不發(fā)給大家了 網(wǎng)上也有, 或者去下載多點(diǎn)源碼??好多源碼都處理過(guò), 所以要學(xué)會(huì)借鑒 ,別人的代碼和花指令 。發(fā)下 常用的動(dòng)態(tài)調(diào)用以及 字符串隱藏 等,
1.字符串連接
//
//把字符串"canxin"連接起來(lái)(字符串連接法)
char *str1="can", *str2="xin",*str3=NULL;
str3=new char[strlen(str1)+strlen(str2)+1];
strcpy(str3,str1);//把str1所指由NULL結(jié)束的字符串復(fù)制到str3所指的數(shù)組中
strcat(str3,str2);//把str2所指字符串添加到str3結(jié)尾處(覆蓋dest結(jié)尾處的'\0')并添加'\0'
//這樣就實(shí)現(xiàn)了str3=str1+str2,把str1和str2連接起來(lái)了
//
2.字符串隱藏
char XXX[] = {'c','a','n','x','i','n','\0'};
3.動(dòng)態(tài)調(diào)用
***************定義*******************
HANDLE
WINAPI
CreateToolhelp32Snapshot(
? ? DWORD dwFlags,
? ? DWORD th32ProcessID
? ? );
***************列子*******************
typedef HANDLE (WINAPI *CreateToolhelp32SnapshotT)
(
? ? DWORD dwFlags,
? ? DWORD th32ProcessID
? ? );
CreateToolhelp32SnapshotT pCreateToolhelp32Snapshot= (CreateToolhelp32SnapshotT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"CreateToolhelp32Snapshot");
4.異常try catch
//列子//
UnhookWindowsHookEx(m_pTShared->hGetMsgHook);
//列子//
-------------------------生成后-------------------------
char canxin=1;
try
{
if(canxin=1)throw 31;
}
catch (...)
{
UnhookWindowsHookEx(m_pTShared->hGetMsgHook);
}
-------------------------生成后-------------------------
----------------
下面談一下常見(jiàn)的問(wèn)題 ,比如說(shuō)BD??云本地,等等常見(jiàn)定位 錯(cuò)誤 以及常見(jiàn)解決方法。比如說(shuō)常見(jiàn)定位BD ,一次生成 ,查殺, 生成20塊,查殺20塊,大家有可能誤解 定位錯(cuò)誤 死循環(huán)。 其實(shí)非也,可以繼續(xù)定位繼續(xù)二次??。知道定位2大小,不殺為止,找到特征地址在OD里的位置,進(jìn)行上下探查,有沒(méi)有調(diào)用或者字符串的形式 ,然后再繼續(xù) 搜索關(guān)鍵??在源碼里的位置。進(jìn)行分析特征 ,找到那句源代碼 在上面進(jìn)行加花 等處理 。還有一種可能性,無(wú)法定位到 真正的特征位置。 可以通過(guò)調(diào)試 。比如說(shuō) 我個(gè)人常用的一句代碼加在main函數(shù)頭下,加 “? ?HKEY ck;
char strreg[] = {'S','O','F','T','W','A','R','E','\\','O','D','B','C','\0'};
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck))?
{
??return 0;
}? ?? ?? ???”
這樣直接可以直接過(guò)掉,??有時(shí)候也要看情況 進(jìn)行處理, 首先就是要做好預(yù)處理? ?我個(gè)人一般 去掉所有優(yōu)化 延遲 以及區(qū)段的處理代碼 。??云本地 ,其實(shí)就是斷網(wǎng) 定位的云的本地特征??一般不會(huì)殺 。但是強(qiáng)烈建議 過(guò)360 要逐一過(guò),??不能 紅傘和qvm一起過(guò), 也不能云本地和BD 一起正向定位, 那樣 不行,我還是懷疑BD也有干擾效果??。所以,除云查殺意外, 其他都更新最新庫(kù)??進(jìn)行斷網(wǎng) 。全部過(guò)掉,再聯(lián)網(wǎng)過(guò)云。
-----------------
接下來(lái)再說(shuō)一下常見(jiàn)過(guò)云查殺技巧??,常見(jiàn)一般dll和dat已經(jīng)過(guò)掉, 但是生成木馬 卻被干掉,這是因?yàn)樾袨?或者是dll和dat的行為, 或者殺到了 dll在exe里的資源 ,也就是說(shuō)資源也是重點(diǎn)??大家進(jìn)行排除,還有一個(gè)就是加個(gè)正規(guī)文件資源進(jìn)去 ,這樣也有效果 ,如果生成還殺 那么填充資源頭 進(jìn)行處理等等。然后配置信息里 服務(wù)名稱(chēng)等 隨便輸入 不要輸入敏感字符 ,比如說(shuō)360. 或者什么模塊什么的。都是敏感的 。
------------
現(xiàn)在簡(jiǎn)單談一下??過(guò)提示這一方面 ,其實(shí)現(xiàn)在的360 已經(jīng)基本把全部精力 放在了云和qvm這里 。 而安全衛(wèi)士過(guò)掉的難度 也大大降低。所以過(guò)提示基本沒(méi)什么難度 ,再一個(gè)就是衛(wèi)士的本地引擎,以及云引擎。這個(gè)我覺(jué)得沒(méi)必要多說(shuō), 就是一秒云鑒定, 沒(méi)什么雞肋的方法 。只有定位衛(wèi)士? ?。往往有時(shí)候qvm那云和殺軟的云??殺到的特征不太一樣,??可能庫(kù)也不一吧??。這個(gè)大家進(jìn)行測(cè)試 ,進(jìn)行排除 應(yīng)該不難 。現(xiàn)在就是2個(gè)問(wèn)題,一個(gè)云查殺 , 再一個(gè)就是 重啟上線問(wèn)題,? ?以及防上傳 ,這些都是必須的。思路就不說(shuō)了,大家可以去論壇探討 或者多看看教程 。
--------------------------
給大家點(diǎn)代碼 ,反調(diào)試
? ? HKEY ck;
char strreg[] = {'S','O','F','T','W','A','R','E','\\','O','D','B','C','\0'};
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck))?
{
??return 0;
}
bool IsVirtualPC()//反nod32查殺
{
__try
{
??__asm
??{
? ?mov eax, 1
? ? _emit 0x0F
? ? _emit 0x3F
? ? _emit 0x07
? ? _emit 0x0B
? ? _emit 0xC7
? ? _emit 0x45
? ? _emit 0xFC
? ? _emit 0xFF
? ? _emit 0xFF
? ? _emit 0xFF
? ? _emit 0xFF
??}
}
__except(1)
{
??return FALSE;
}
return TRUE;
}
if(IsVirtualPC())
{
??return 0;
}
_asm push esi;
_asm mov esi,46;
_asm inc esi;
_asm mov eax,dword ptr fs:[esi+1];
_asm mov eax,dword ptr ds:[eax+24];
_asm mov eax,dword ptr ds:[eax+12];
_asm cmp eax,2;
_asm pop esi;
_asm je Begin;
_asm lock dec ebx;
Begin:
HKEY dd;
char sof1[]={'S','O','F','T','W','A','R','E','\\','C','l','a','s','s','e','s','\\','.','3','8','6','\\','\0'};
if (ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,sof1,0,KEY_ALL_ACCESS,&dd))?
{
??__asm nop;
??__asm nop;
??return -1;
}
給大家一個(gè)源碼免殺工具最好在虛擬機(jī)或者影子系統(tǒng)中做免殺:http://pan.baidu.com/share/link?shareid=342856530&uk=1879657625
免殺工具包:http://pan.baidu.com/share/link?shareid=400367493&uk=1879657625
-------------
最后一段話 ,
1??金山毒霸 ,我個(gè)人覺(jué)得殺的代碼部分和字符串還是比較普遍的 。輸入表函數(shù) 我個(gè)人不多見(jiàn) 。
2??瑞星 ,經(jīng)實(shí)戰(zhàn)經(jīng)驗(yàn) ,瑞星殺毒軟件是垃圾。 過(guò)掉金山 也就過(guò)瑞星了??除非殺敏感的字符串 。
3??江民 ,純屬基本就是殺字符串 。。 大家可以進(jìn)行 隱藏代碼 就可以。。你懂得
4??也就是大家最頭疼的??360殺毒 。這個(gè)就是重點(diǎn)。因?yàn)檫^(guò)掉360 -5引擎 基本國(guó)內(nèi)就差不多了。
簡(jiǎn)單介紹下 ,360云查殺+BD常規(guī)+qvm+國(guó)外引擎小紅傘+主動(dòng)防御??。
--------------
詳談360各大引擎套路 你懂得...
(1)360云查殺 ,其實(shí)就是qvm和紅傘的 集成版??。 也就是云qvm??實(shí)時(shí)鑒定 、 也是大家最頭痛的。
(2)BD引擎 我個(gè)人懷疑 也有點(diǎn)智能??。有時(shí)候大家會(huì)認(rèn)為定位不到或者定位錯(cuò)誤 。也就是本地殺代碼 函數(shù) 等等都有可能吧,我個(gè)人過(guò)BD 不太感冒??所以沒(méi)有深入研究。
(3)qvm ,所謂qvm引擎 其實(shí)就是 高啟發(fā)+行為判斷+特征??..這個(gè)毫無(wú)疑問(wèn)??智能引擎 。
(4)紅傘 ,也就是跟qvm差別不大 。也屬于智能 。大部分在殺行為。
(5)主動(dòng)防御引擎,其實(shí)不存在 。也就是衛(wèi)士 提示主動(dòng)防御。(也就是說(shuō)過(guò)掉表面 不過(guò)提示那是白費(fèi))
-------
詳談360 各引擎的 定位套路 方法 以及思路。
前提,注釋掉 區(qū)段合并 + 延遲加載+ 優(yōu)化 。刪除版權(quán)信息 以及圖標(biāo) (這里也是在排除可能性)以及查看模式R 模式, 不要用debug模式??,那是調(diào)試模式 。(必然 必須的)
其實(shí)過(guò)掉360 引擎 。也許還有很多方法,我只說(shuō)說(shuō)我的定位套路。
第一步??斷網(wǎng) ,關(guān)閉所有引擎 ,開(kāi)啟云殺 ,也就是定位云殺的本地 。 很垃圾很好過(guò)。
第二步,繼續(xù)過(guò)BD??,定位 方法 一樣, 正向 跳過(guò)1000 頭 。(源碼免殺不可能殺頭 所以跳過(guò)1000頭)定位??根據(jù)定位情況解決??..
第三補(bǔ)步,關(guān)閉所有殺軟,定位qvm??。方便做定位正確 ,那么我們要加上 反調(diào)試代碼??(我個(gè)人是必須的)以及其他手段 ,因?yàn)閝vm 是智能的 。大家都知道 qvm殺的百分百是輸入表函數(shù) 。所以 大家就要逐一 填充定位。(你懂得)填充到哪里 哪里不殺??那么好吧??就是那個(gè)dll里 。 所以 反向定位那個(gè)段。基本不會(huì)有什么問(wèn)題 ,然后逐一的填充??逐一定位 。這里給大家舉例,kernel32.dll +user32.dll 這個(gè)2個(gè)dll填充。那么就在這里 ,(一般填充跳過(guò) GetProcAddress和LoadLibrary 因?yàn)闅⒛?個(gè)函數(shù) 說(shuō)明是假的,定位錯(cuò)誤。所以沒(méi)必要。) 這樣定位來(lái) ,如果還是定位不到,那么就是殺的行為判斷,需要反調(diào)試代碼。或者大家可以進(jìn)行預(yù)處理來(lái)測(cè)試 。比如說(shuō) 轉(zhuǎn)換大小和最快模式 ,加 減 去版權(quán)和圖標(biāo),都會(huì)影響到整個(gè)特征的排序。如果那樣進(jìn)行轉(zhuǎn)換 排除 填充所有常見(jiàn)dll還是被殺 ,那么就可以選擇放棄 。或者找更有效的反調(diào)試方法。
第四 , 小紅傘引擎 。也是大家頭疼的問(wèn)題。 我個(gè)人的實(shí)戰(zhàn)經(jīng)驗(yàn) 過(guò)掉小紅傘??基本上要加版權(quán)的。不知道怎么搞的。我也郁悶 也沒(méi)深究。沒(méi)有版權(quán) 怎么著 都會(huì)殺。我個(gè)人認(rèn)為 。。然后定位方法 基本跟qvm差不多 也是智能 。 一般總會(huì)定位錯(cuò)誤函數(shù),沒(méi)關(guān)系 繼續(xù)定位 , 過(guò)掉智能 要就是耐心 。
第五, 也是大家最頭疼的問(wèn)題 ,云查殺 ..我個(gè)人表示鴨梨很大。上面我也介紹了??這里再簡(jiǎn)單說(shuō)一下云查殺思路 。也就是云的實(shí)時(shí)鑒定 ,通過(guò)什么呢?那么就是qvm和紅傘的引擎庫(kù)了。 估計(jì)還有其他行為 ,有待研究。(據(jù)了解 360開(kāi)發(fā)者 是一群黑客.你懂得是什么意思)言歸正傳 ..云查殺??需要聯(lián)網(wǎng)定位的。 但是想過(guò)掉云查殺??必須要過(guò)掉前面幾個(gè)引擎 。最后過(guò)云殺 。云殺也是一樣??殺的是輸入表函數(shù) ,我以前認(rèn)為云殺 是人工一秒云鑒定 。后來(lái)發(fā)現(xiàn)貌似不是,是個(gè)云qvm.很繁瑣很繁瑣的 。 提起云殺我就惡心 。但我不得不說(shuō) 實(shí)在是太強(qiáng)悍 太強(qiáng)悍了。 加上qvm和紅傘。簡(jiǎn)直就是讓免殺者感覺(jué)很蛋疼的一件不蛋疼的事。定位方法 需要正向定位 ,也是逐一去圈。去排除 。傅哥說(shuō),動(dòng)態(tài)調(diào)用10個(gè)函數(shù)以上 ,假如可以過(guò)掉,那么你下次再拿這套源碼定位的時(shí)候??很難很難, 可以說(shuō)基本沒(méi)什么辦法過(guò)掉 ,也就是說(shuō)定位不到輸入表函數(shù) 。就算定位到??也是些不能調(diào)用的地方 函數(shù)、。 相信大家都有一套自己的方法,這里我就不廢話了。還有一點(diǎn)好多情況 會(huì)殺資源??具體方法很多 。大家去JKC 殘殼等等 論壇找找相關(guān)教程 很好解決 。比如過(guò)掉dll但是殺dat的dll資源,那么填充MZ頭,在exe的源碼里加代碼??運(yùn)行釋放dll 加上MZ 。呵呵 這個(gè)你也懂得 。
-----------
說(shuō)實(shí)話, 我暫時(shí)只能想到這些 。 具體 要靠自己 要靠實(shí)戰(zhàn)經(jīng)驗(yàn)??更要有耐心 。有時(shí)候我也會(huì)為一個(gè)問(wèn)題 郁悶一個(gè)星期 。。所以不要輕易放棄 。
----------
總結(jié)以上
360 , 強(qiáng)??強(qiáng)的很 。 但是過(guò)掉他 方法很多??具體我不說(shuō)qvm和紅傘 , 就說(shuō)云引擎。比如說(shuō)upx壓縮??可以過(guò)掉,現(xiàn)在不知道封了沒(méi)??。 其實(shí)玩黑 ,就是舉一反三??活學(xué)活用??不管是什么 。不管是免殺??還是滲透??。要對(duì)自己有信心??。 一天不行 兩天??兩天不行三天, 當(dāng)初我因?yàn)槊鈿?shí)戰(zhàn) ,差點(diǎn)走火入魔了。呵呵 ,總結(jié)我不說(shuō)思路,只說(shuō)自己要有耐心 , 就像是賺錢(qián)養(yǎng)老婆是一回事 。放棄了什么都不要說(shuō) ,成功了一過(guò)掉殺軟,那么 滿足感是有的??說(shuō)明什么??你懂得 呵呵 。。。跟大家扯淡一會(huì) 。。
--------------
好繼續(xù)說(shuō)。
反調(diào)試代碼我就不發(fā)給大家了 網(wǎng)上也有, 或者去下載多點(diǎn)源碼??好多源碼都處理過(guò), 所以要學(xué)會(huì)借鑒 ,別人的代碼和花指令 。發(fā)下 常用的動(dòng)態(tài)調(diào)用以及 字符串隱藏 等,
1.字符串連接
//
//把字符串"canxin"連接起來(lái)(字符串連接法)
char *str1="can", *str2="xin",*str3=NULL;
str3=new char[strlen(str1)+strlen(str2)+1];
strcpy(str3,str1);//把str1所指由NULL結(jié)束的字符串復(fù)制到str3所指的數(shù)組中
strcat(str3,str2);//把str2所指字符串添加到str3結(jié)尾處(覆蓋dest結(jié)尾處的'\0')并添加'\0'
//這樣就實(shí)現(xiàn)了str3=str1+str2,把str1和str2連接起來(lái)了
//
2.字符串隱藏
char XXX[] = {'c','a','n','x','i','n','\0'};
3.動(dòng)態(tài)調(diào)用
***************定義*******************
HANDLE
WINAPI
CreateToolhelp32Snapshot(
? ? DWORD dwFlags,
? ? DWORD th32ProcessID
? ? );
***************列子*******************
typedef HANDLE (WINAPI *CreateToolhelp32SnapshotT)
(
? ? DWORD dwFlags,
? ? DWORD th32ProcessID
? ? );
CreateToolhelp32SnapshotT pCreateToolhelp32Snapshot= (CreateToolhelp32SnapshotT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"CreateToolhelp32Snapshot");
4.異常try catch
//列子//
UnhookWindowsHookEx(m_pTShared->hGetMsgHook);
//列子//
-------------------------生成后-------------------------
char canxin=1;
try
{
if(canxin=1)throw 31;
}
catch (...)
{
UnhookWindowsHookEx(m_pTShared->hGetMsgHook);
}
-------------------------生成后-------------------------
----------------
下面談一下常見(jiàn)的問(wèn)題 ,比如說(shuō)BD??云本地,等等常見(jiàn)定位 錯(cuò)誤 以及常見(jiàn)解決方法。比如說(shuō)常見(jiàn)定位BD ,一次生成 ,查殺, 生成20塊,查殺20塊,大家有可能誤解 定位錯(cuò)誤 死循環(huán)。 其實(shí)非也,可以繼續(xù)定位繼續(xù)二次??。知道定位2大小,不殺為止,找到特征地址在OD里的位置,進(jìn)行上下探查,有沒(méi)有調(diào)用或者字符串的形式 ,然后再繼續(xù) 搜索關(guān)鍵??在源碼里的位置。進(jìn)行分析特征 ,找到那句源代碼 在上面進(jìn)行加花 等處理 。還有一種可能性,無(wú)法定位到 真正的特征位置。 可以通過(guò)調(diào)試 。比如說(shuō) 我個(gè)人常用的一句代碼加在main函數(shù)頭下,加 “? ?HKEY ck;
char strreg[] = {'S','O','F','T','W','A','R','E','\\','O','D','B','C','\0'};
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck))?
{
??return 0;
}? ?? ?? ???”
這樣直接可以直接過(guò)掉,??有時(shí)候也要看情況 進(jìn)行處理, 首先就是要做好預(yù)處理? ?我個(gè)人一般 去掉所有優(yōu)化 延遲 以及區(qū)段的處理代碼 。??云本地 ,其實(shí)就是斷網(wǎng) 定位的云的本地特征??一般不會(huì)殺 。但是強(qiáng)烈建議 過(guò)360 要逐一過(guò),??不能 紅傘和qvm一起過(guò), 也不能云本地和BD 一起正向定位, 那樣 不行,我還是懷疑BD也有干擾效果??。所以,除云查殺意外, 其他都更新最新庫(kù)??進(jìn)行斷網(wǎng) 。全部過(guò)掉,再聯(lián)網(wǎng)過(guò)云。
-----------------
接下來(lái)再說(shuō)一下常見(jiàn)過(guò)云查殺技巧??,常見(jiàn)一般dll和dat已經(jīng)過(guò)掉, 但是生成木馬 卻被干掉,這是因?yàn)樾袨?或者是dll和dat的行為, 或者殺到了 dll在exe里的資源 ,也就是說(shuō)資源也是重點(diǎn)??大家進(jìn)行排除,還有一個(gè)就是加個(gè)正規(guī)文件資源進(jìn)去 ,這樣也有效果 ,如果生成還殺 那么填充資源頭 進(jìn)行處理等等。然后配置信息里 服務(wù)名稱(chēng)等 隨便輸入 不要輸入敏感字符 ,比如說(shuō)360. 或者什么模塊什么的。都是敏感的 。
------------
現(xiàn)在簡(jiǎn)單談一下??過(guò)提示這一方面 ,其實(shí)現(xiàn)在的360 已經(jīng)基本把全部精力 放在了云和qvm這里 。 而安全衛(wèi)士過(guò)掉的難度 也大大降低。所以過(guò)提示基本沒(méi)什么難度 ,再一個(gè)就是衛(wèi)士的本地引擎,以及云引擎。這個(gè)我覺(jué)得沒(méi)必要多說(shuō), 就是一秒云鑒定, 沒(méi)什么雞肋的方法 。只有定位衛(wèi)士? ?。往往有時(shí)候qvm那云和殺軟的云??殺到的特征不太一樣,??可能庫(kù)也不一吧??。這個(gè)大家進(jìn)行測(cè)試 ,進(jìn)行排除 應(yīng)該不難 。現(xiàn)在就是2個(gè)問(wèn)題,一個(gè)云查殺 , 再一個(gè)就是 重啟上線問(wèn)題,? ?以及防上傳 ,這些都是必須的。思路就不說(shuō)了,大家可以去論壇探討 或者多看看教程 。
--------------------------
給大家點(diǎn)代碼 ,反調(diào)試
? ? HKEY ck;
char strreg[] = {'S','O','F','T','W','A','R','E','\\','O','D','B','C','\0'};
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck))?
{
??return 0;
}
bool IsVirtualPC()//反nod32查殺
{
__try
{
??__asm
??{
? ?mov eax, 1
? ? _emit 0x0F
? ? _emit 0x3F
? ? _emit 0x07
? ? _emit 0x0B
? ? _emit 0xC7
? ? _emit 0x45
? ? _emit 0xFC
? ? _emit 0xFF
? ? _emit 0xFF
? ? _emit 0xFF
? ? _emit 0xFF
??}
}
__except(1)
{
??return FALSE;
}
return TRUE;
}
if(IsVirtualPC())
{
??return 0;
}
_asm push esi;
_asm mov esi,46;
_asm inc esi;
_asm mov eax,dword ptr fs:[esi+1];
_asm mov eax,dword ptr ds:[eax+24];
_asm mov eax,dword ptr ds:[eax+12];
_asm cmp eax,2;
_asm pop esi;
_asm je Begin;
_asm lock dec ebx;
Begin:
HKEY dd;
char sof1[]={'S','O','F','T','W','A','R','E','\\','C','l','a','s','s','e','s','\\','.','3','8','6','\\','\0'};
if (ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,sof1,0,KEY_ALL_ACCESS,&dd))?
{
??__asm nop;
??__asm nop;
??return -1;
}
給大家一個(gè)源碼免殺工具最好在虛擬機(jī)或者影子系統(tǒng)中做免殺:http://pan.baidu.com/share/link?shareid=342856530&uk=1879657625
免殺工具包:http://pan.baidu.com/share/link?shareid=400367493&uk=1879657625
-------------
最后一段話 ,
舉一反三 ,不要只用教程里的死方法 。不懂可以問(wèn)度娘 或者谷歌??或者問(wèn)那些大牛那樣 他們實(shí)戰(zhàn)多了最起碼有思路??只差逐一測(cè)試??。測(cè)試測(cè)試再測(cè)試 。。。 不怕測(cè)試任何方法 就怕沒(méi)耐心去測(cè)試。
http://www.cnhonkerarmy.com/thread-180955-1-2.html
總結(jié)
以上是生活随笔為你收集整理的详谈 vc++源码免杀全套思路方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 各大电商平台API数据,淘宝天猫的api
- 下一篇: Laravel实用工具介绍 – Debu