
x64dbg जैसे डीबगर्स का पता लगाने के लिए अप्रलेखित एंटी-डीबग ट्रिक्स का संग्रह, जिसमें इवेज़न रिसर्च के लिए C++ कोड सैंपल और रिवर्सिंग नोट्स शामिल हैं।
डिबगर्स को रिवर्स करते और उनके साथ छेड़छाड़ करते समय मिली कुछ अप्रलेखित anti debug tricks का एक संग्रह।
जब भी कुछ दिलचस्प मिलेगा, मैं यहाँ और चीज़ें जोड़ता रहूँगा।
यह मुझे कुछ ttd analysis करते समय मिला। यह वास्तव में कोई anti debug feature नहीं है, बस एक अजीब file sharing व्यवहार है जिसका उपयोग x64dbg को detect करने के लिए किया जा सकता है।
जो मैंने देखा है, उसके अनुसार यह लगभग 10 साल से मौजूद है और अभी भी x64dbg में ठीक नहीं किया गया है।
मैंने इसे अपने कुछ anticheats में इस्तेमाल किया है और वास्तव में कभी किसी को इसके बारे में बात करते नहीं देखा। हालाँकि यह कुछ ज़बरदस्त नहीं है, एक बार जब आपको समझ आ जाए कि क्या हो रहा है तो इसे patch करना काफी आसान है।
मूल रूप से, यह अपनी ही executable को exclusive access के साथ खोलने की कोशिश करता है। अगर कोई और चीज़ फ़ाइल पर एक conflicting handle रखे हुए है, तो CreateFileA ERROR_SHARING_VIOLATION के साथ fail हो जाता है।
इसका मतलब ज़रूरी नहीं कि कोई debugger attached है, लेकिन कुछ मामलों में यह detection trick की तरह काम कर सकता है।

// made by metixw ( @metixw )
#include <windows.h>
#include <iostream>
bool walahi()
{
char path[MAX_PATH];
GetModuleFileNameA(NULL, path, MAX_PATH);
HANDLE h = CreateFileA(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (h == INVALID_HANDLE_VALUE) return GetLastError() == ERROR_SHARING_VIOLATION;
CloseHandle(h);
return false;
}
// just an example but if u wanna use it as an anti-debug trick put it in a thread
int main()
{
while (true)
{
if ( walahi() )
{
std::cout << "detected walahi" << std::endl;
system( "pause" );
Sleep(1000);
exit(0);
}
Sleep( 500 );
}
return 0;
}
और tricks जल्द ही।