Hacking Articles Tips Tricks Videos Tutorials
468 subscribers
65.8K photos
15 videos
157 files
132K links
Exploit
Pentesting
Hacking
Red Team
Blue Team
Kali Linux
Bug Bounty
Black Hat
Cyber security etc

@Hacking_Video
@Hacking_attack
Download Telegram
#define RESOLVE_NOVERBOSE_UNHOOK(mod, func) RESOLVE_PARAMETERIZED(mod, func, false, true)
#define RESOLVE_NOVERBOSE_NOUNHOOK(mod, func) RESOLVE_PARAMETERIZED(mod, func, false, false) Resolver's constructor: ImportResolver( std::string dllName, std::string funcName, bool _verbose = false, bool _unhook = false, bool *_wasItHooked = nullptr ) "> template
ImportResolver(
std::string dllName,
std::string funcName,
bool _verbose = false,
bool _unhook = false,
bool *_wasItHooked = nullptr
)
How does it work?
The underlaying resolver leverages custom PE headers parser, that processes every referenced DLL module to map their exports and verify that module's PE headers integrity as well as integrity of referenced function's stub bytes. The idea is following: Firstly we issue LoadLibrary to load referenced by the user library (the one specified as first parameter for RESOLVE macro) if it could not be reached through GetModuleHandle. Then we process loaded/referenced library's PE headers, map its exports, retrieve array of exports addresses as well as compute these addresses ourselves for cross-verification. If address of a routine defined in DLL's Export Address Table doesn't correspond to what we would expect, the export is considered EAT hooked. The same goes if our Executable Import Address Table (IAT) entry for that function was altered and no longer points to the correct spot in DLL's code section - then the function is considered to be IAT hooked. Assuming no hooks were found so far, we fetch first N bytes of the function's prologue and compare them to what's in DLL's file stored in disk. If there is miscrepancy between bytes fetched from memory and from file - we consider function was inline patched (hot-patched). If the function was considered hooked - we return original export's address (the one we computed ourselves) and/or unhook the entry. If there were patch bytes in place, we'll restore them. Finally, in order to optimize resolver's performance (https://www.kitploit.com/search/label/Performance) impact - we cache all of the loaded modules imagebases and resolved functions addresses and return them from a cache (being std::map ) during subsequent hits. Among the problems such dynamically-unhooking resolver faced are the issues with traversing forwarded APIs (a DLL may contain Export thunk saying that this function is not implemented in this module, but it is in another one) - which although this implementation has support for, sometimes it brokes its traversal logic.
Author
Mariusz Banach / mgeeky (@mariuszbit)

Download UnhookMe (https://github.com/mgeeky/UnhookMe)

___________________________
@hacking_Attack
@Hacking_Video
hacking: security in practice
Where can I find the HDD-drive Conti leak?

( Catch-up: a disgrunteled affiliate of the Conti ransomware gang leaked some training materials)

Does anyone know the forum or the exact files? Is there a torrent for them? I am positivley DYING to see them and I am planning on translating them from russian to english with a buddy of mine. I have scoured the entire web for them, looked at so many forums, but I still cant find them.

submitted by /u/StillPackage4369
[link] [comments]

___________________________
@hacking_Attack
@Hacking_Video