Developer knowledge network · moderated exchange

UnreliableCode Topluluğu

Geliştirici Araştırması, Tersine Mühendislik ve Kodlama Topluluğu

Knowledge indexCanlı
4Categories
919Threads
2.8KGönderiler
Guide

Compile-Time MurmurHash3 & FNV-1a String Hashing for Dynamic API Resolution [v2.4 Technical Discussion]

vtable_slayer
Senior Reverser
MEMBER
Temsilci: 215
Katılım Tarihi: Mar 2018
Gönderiler: 86
Teşekkürler: 61
1 ay önce · Jul 16, 2026 10:24 AM
#1

Why static plaintext Win32 API strings ("VirtualAlloc", "CreateRemoteThread") flag static analysis:

Anti-cheat scanners inspect the Import Address Table (IAT) and binary .rdata strings.

Compile-Time Hashing:

CPP
constexpr uint32_t HashString(const char* str, uint32_t val = 0x811c9dc5) {
    return (*str == '\0') ? val : HashString(str + 1, (val ^ (uint32_t)(*str)) * 0x1000193);
}

// Resolving API by 32-bit hash value
FARPROC GetProcAddressByHash(HMODULE hMod, uint32_t targetHash);

Zero plaintext string artifacts exist anywhere in your compiled .exe or .dll!

hook_doctor
Hooking Specialist
MEMBER
Temsilci: 181
Katılım Tarihi: Jul 2019
Gönderiler: 21
Teşekkürler: 50
1 ay önce · Jul 16, 2026 4:45 PM
#2

Compile-time constexpr hashing keeps binary disassembly clean and stripped of sensitive API names.

ptr_arithmetic
C++ Wizard
MEMBER
Temsilci: 162
Katılım Tarihi: May 2018
Gönderiler: 73
Teşekkürler: 42
1 ay önce · Jul 16, 2026 11:49 PM
#3

Essential technique for stealth loaders.