原创 InlineHook

HooK MessageBoxA #include <windows.h> #include <iostream> #define DN_PATCH_LENGTH 5 DWORD g_dwRetAddress; DWORD g_dw

原创 ShellCode注入

注意點: 1. 不能有全局變量 2. 不能使用常量字符串 ,可以使用這種形式 szTitle = {'a', 'b', 'c', 0}; 3. 不能使用系統調用,比如不能直接使用MessageBox,因爲生成的彙編是 Call [0xxx

原创 VirtualTable(虛函數表)Hook

HOOK HOOK是用來獲取,更改程序執行時的某些數據,或者用於更改程序執行流程的一種技術 INLINE HOOK 直接修改函數的代碼   虛函數表的HOOK 在c++中虛函數的繼承會生成一個虛函數表,來確定父類指針指向子類對象時所需要調

原创 Qt在VS中使用單元測試

在工程的解決方案中,新建一個單元測試項目AutoTest,Qt控制檯項目,勾選Core,Test模塊 創建CTest類 #include <QObject> #include <QtTest> class CTest : public

原创 C語言中的__FILE__、__LINE__和__func__等預定義宏

標準C語言預處理要求定義某些對象宏,每個預定義宏的名稱一兩個下劃線字符開頭和結尾,這些預定義宏不能被取消定義(#undef)或由編程人員重新定義。 _LINE__  當前程序行的行號,表示爲十進制整型常量 __FILE__  當前源文件名

原创 Qt自定義數據類型

1.創建一個自定義類型 Qt框架下開發時,創建一個自定義類型,需要確保創建的這個自定義類型符合QMetaType規定的所有要求,即它必須滿足以下幾個條件: 有一個默認的公有構造函數 有一個公有的拷貝構造函數 有一個公有的析構函數 下面的M

原创 在debug模式下編譯提示c1xx : fatal error C1083: 無法打開源文件: “generatedfiles\release\moc_XXX.cpp

打開項目的vcxproj文件     <ClCompile Include="generatedfiles\Debug\moc_SFQTPictureEx.cpp">       <ExcludedFromBuild Condition=

原创 Qt翻譯

如何進行翻譯 第一步:寫規範的代碼 用 QString 包裹不需要翻譯的文本 用 tr() 包裹需要翻譯的文本 定義上下文 如何翻譯非 Qt 類 第一種:利用 QCoreApplication::tr() 函數 第二種:利用 QCo

原创 Qt5.13.0使用Mysql

Qt連接Mysql依賴 sqldrivers文件夾中的 qsqlmysqld.dll   qsqlmysql.dll 以及mysql的dll libmysql.dll   sqldrivers文件夾中的 qsqlmysqld.dll   

原创 Windows上的Socket編程

  Socket協議的工作原理 Socket又稱套接字,它是TCP/IP網絡環境下應用程序與底層通信驅動程序之間運行的開發接口,它可以將應用程序與具體的TCP/IP隔離開,使得應用程序不需要了解TCP/IP的細節,就能夠實現傳輸。   需

原创 硬編碼X86

硬編碼:機器指令  說明:一共有六部分,第一部分前綴指令,只管自己,Opcode是這六部分的核心,Opcod決定ModR/M,ModR/M決定SIB,這三部分是這整條指令的核心,後面兩部分屬於“配角”,(偏移量和立即數)由核心決定 一.

原创 TEB和PEB

TEB(Thread Environment Block,線程環境塊) 線程環境塊中存放着進程中所有線程的各種信息 TEB的訪問方法 ntdll.NtCurrentTeb() 函數用來返回當前線程的TEB結構體指針 NtCurrentTe

原创 Windows API收集

進程相關的API   CreateProcess 函數功能:用來創建一個新的進程和它的主線程,這個新進程運行指定的可執行文件     函數原型: BOOL CreateProcess ( LPCTSTR lpApplicationNam

原创 X64Dbg使用教程

讀取內存數據 字節/字/雙字/四字/指針(ptr) ReadByte,Byte,byte(addr):從 addr 讀取一個字節,並返回該值。 ReadWord,Word,word(addr):從 addr 讀取一個字(2字節),並返回該

原创 fatal error LNK1103: 調試信息損壞;請重新編譯模塊

fatal error LNK1103: 調試信息損壞;請重新編譯模塊 屬性->鏈接器->調試->生成調試信息    改成否