1. 程式人生 > >C++劫持注入(適用於大部分dll)

C++劫持注入(適用於大部分dll)

匯出函式使用depends檢視

新建win32 dll 帶匯出符號
1.用depends檢視原dll中所有的呼叫函式


#pragma comment(linker,"/EXPORT:匯出函式名=自寫函式名,@匯出序號")


2.獲取原函式的地址
DWORD oldCall[x];//原dll中呼叫了多少函式定義多少 +1
void initCall(void){
HMODULE hdll  = LoadLibraryA("d3d8thk");//載入原dll獲取控制代碼
for(int i = 1;i<x;i++){
//FARPROC GetProcAddress(HMODULE hModule, // DLL模組控制代碼 LPCSTR lpProcName // 函式名或函式編號);
//如果函式呼叫成功,返回值是DLL中的輸出函式地址。如果函式呼叫失敗,返回值是NULL。
oldCall[i] = (DWORD)GetProcAdress(hdll,(char*)i//通過序號獲取方法名);
}
}


3.定義所有函式及原函式
#pragma comment(linker,"/EXPORT:匯出函式名=自寫函式名,@匯出序號")
例項:
#pragma comment(linker,"/EXPORT:Direct3DShaderValidatorCreate9=_fun1,@1")

DWORD dwRet[x];
//方法目的:找到原有的函式入口開始執行  然後跳轉到函式返回地址執行下一句程式碼
 C語言語法 純彙編所有引數從右到左依次入棧
extern "C" __declspec(naked) void __cdecl fun1(void){
__asm{
//儲存返回地址
//pop DWORD ptr ds:[dwRet]
pop dwRet[4*1];


//呼叫原函式
//call DWORD ptr ds : [dwoldCall]
call dwoldCall[4*1]


//跳轉到原函式的返回地址
//jmp DWORD ptr ds : [dwRet]
jmp dwRet[4*1]
}
//跳轉到原有函式執行  並返回結果
}

4.程式被載入時執行
dllmain中找到DLL_PROCESS_ATTACH
新增程式碼(自己需要新增的內容);
break;

相關推薦

C++劫持注入(適用大部分dll)

匯出函式使用depends檢視 新建win32 dll 帶匯出符號 1.用depends檢視原dll中所有的呼叫函式 #pragma comment(linker,"/EXPORT:匯出函式名=自寫函式名,@匯出序號") 2.獲取原函式的地址DWORD oldCall[x

一套適用大部分系統的優化流程

常規系統優化流程: 1.0 應用程式優化 分析應用程式等GC日誌,檢視程式是否有優化等空間,或者某些業務程式碼是否可以進行優化,這個涉及的面比較廣。 1.1 資料表索引優化 WEB伺服器的CPU閒來無事,但資料庫伺服器的CPU使用率高居不下。經過初步分析,發現瓶頸在資料庫。

給kindeditor編輯器新增FLV上傳播放功能,其中使用flowplayer,適用大部分版本

最近在做幾個專案都用到編輯器,我以前用eWebEditor,按照網上的方法也增加了FLV上傳播放的功能。 這次想換個編輯器,看上了kindeditor。 使用過程中,發現上傳FLV檔案後不能自動播放,百度了幾個修改的攻略: 看到評論就沒嘗試這個方法了。 博主介紹的是4.

Spring中的IOC(控制反轉)與DI(依賴注入)理解由淺入深-適用小白

IOC(Inversion of Control )與 DI(Dependency injection)是sping的主要思想,不是技術! IOC控制反轉:一般我們在一個類中呼叫其它的類(非靜態類),需要新建一個該類的例項或者從其他途徑獲取該類的例項,然後對通過該例項進行操

C語言獲取本地IP(適用多種作業系統)

前言 下面列舉多種方法獲取本地IP,這些方法在linux系統下均可執行,有些方法亦可以在Windows和Android下執行. 原始碼 /*下列幾種方法均優先輸出非迴環IP:127.0.0.1 inet_ntoa(): 系統函式,將網路的二進位制

[C#] 計算大檔案的MD5的兩種方式(直接呼叫方法計算,流計算-適用大檔案)

通過.NET中的預設類實現,但是採用不同類,針對不同的情況: 具體如下: 類: /// <summary> /// 檔案MD5操作類 /// </summary> public class MD5Checker {

DLL劫持注入技術分析、過各種遊戲保護!讓你做你愛做的事情!

劫持DLL就是要製作一個“假”的DLL,但是功能又不能失真。  可執行檔案在呼叫某函式時,要載入該函式所在的DLL。如果我們偽造一個DLL,讓它包含所有被劫持DLL的匯出函式。可執行檔案會執行載入偽造的DLL,在偽造DLL裡面做我們自己想做的事情。  DLL注入與D

分布式架構真正適用大型互聯網項目的架構! dubbo+zookeeper+springmvc+mybatis

spring mvc+my batis kafka dubbo+zookeerper restful redis分布式緩存 平臺簡介 Jeesz是一個分布式的框架,提供項目模塊化、服務化、熱插拔的思想,高度封裝安全性的Java EE快速開發平臺。 Jeesz本身集成

VmWare 與 宿主主機通信 STEP BY STEP (適用剛開始學習的人)

aid 並且 cap 應該 行程 最大的 mtu win7 bringing 基本原理 在虛擬機中有三種通信方式,例如以下圖所看到的 1. Bridged(橋接模式) 在橋接模式下,VMware虛擬出來的操作系統就像是局域網中的一獨立的主機

關於mac 和其它osx系統添加 微軟雅黑字體 適用安裝字體報錯或者安裝失敗

mac osx 微軟雅黑問題起因: 公司同事使用sketch的設計軟件,老板要求字庫必須使用微軟雅黑。但是使用威鋒搜索到的微軟雅黑字體 安裝出現問題,字體只有常規,沒有輕體和粗體。其它2個字庫點擊安裝,或者在finder-應用程序--字體冊裏面添加 總是不成功。解決辦法:1 mac機器上的word 默認是帶微

Qt中純C++項目發布為dll的方法(超詳細步驟)

exe 程序 con ostream address 只需要 include free windows 眾所周知,我們可以將C++項目中的類以及函數導出,形成 .dll 文件,以供其他程序使用,下面將說明Qt環境下的使用方法。 首先創建共享庫,步驟如下:

基於Dapper寫的一個sqlhelp適用多版本數據庫

insert mar char new delet 新車 pwd dbconnect xxx ConnectionInit方法用於初始化數據庫連接對象, 只需要修改databasetype參數即可進行適用各個版本的數據庫, ExecuteNonQuery方法用於執行增、刪、

thinkcmf 導航高亮制作方法(適用多級導航)(通用)

思路 ont lower reac 當前 parent serial com art 平時用thinkcmf網站開發經常需要導航點擊之後高亮,就寫了一些實現方法分享一下。 思路很簡單,先獲取當前頁面的頂級欄目的地址,然後與導航中的地址比較,相同的就加上一個class,把下面

Android Studio 2.3.3 添加ksoap2的引用(拒絕網上其他的忽悠),也適用添加其他Jar的引用

ima mage androi img 適用於 網上 .com 2.3 ksoap2 Android Studio 2.3.3 添加ksoap2的引用(拒絕網上其他的忽悠),也適用於添加其他Jar的引用

Android簡單的編寫一個txt閱讀器(沒有處理字符編碼),適用新手學習

選項 tro 源碼 tin open 打開文件 package idt pac   本程序只是使用了一些基本的知識點編寫了一個比較簡單粗陋的txt文本閱讀器,效率不高,只適合新手練習。所以大神勿噴。   其實想到編寫這種程序源自本人之前喜歡看小說,而很多小說更新太慢,所以本

CC2541是功率優化的真正系統級芯片(SoC)解決方案,適用藍牙低功耗(BLE)和專用的2.4GHz應用

芯片 通道 深圳市 ssi 同時 工作 uart 關註 特性 CC2541是功率優化的真正系統級芯片(SoC)解決方案,適用於藍牙低功耗(BLE)和專用的2.4GHz應用.該SOC芯片集成性能極好RF收發器以及標準工業級增強型8051內核,支持系統編程Flash,8KRAM

redis樂觀鎖(適用秒殺系統)

修改 導致 代碼 -a 通知 解決 redis服務器 font 變化 redis事務中的WATCH命令和基於CAS的樂觀鎖 在Redis的事務中,WATCH命令可用於提供CAS(check-and-set)功能。假設我們通過WATCH命令在事務執行之前監控了多個Keys,

C++寫程序相比C到底有哪些不同

mfc tun com docs jsm http w3m mib dbr 1啃腦7暮0殺a斡還http://weibo.com/u/6373334892 腋6趴胖s斷堵c苑寥6gwhttp://shufang.docin.com/jwo55353 7懈5qyof6醇b

[C#]使用Costura.Fody將源DLL合並到目標EXE

system ron 名稱 推薦 新建 static release .org 新版本 本文為原創文章,如轉載,請在網頁明顯位置標明原文名稱、作者及網址,謝謝! 一、本文主要是使用Costura.Fody工具將源DLL合並到目標EXE,因此,需要從以下任

C#利用Windows自帶gdi32.dll實現抓取屏幕功能實例

like lba work 函數 dll img 模板 seh release 本文實例講述了C#利用Windows自帶gdi32.dll實現抓取屏幕功能,是C#應用程序設計中一個非常實用的功能,現分享給大家供大家參考借鑒。 具體功能代碼如下:internal stati