Menu

IT Hare on Soft.ware

Tap to confirm selection

Subscribe:

Disclosure: On this site you won’t find specific advice on “how to call function xyz()”. Interpreting C++ ARM and #pragma dwim is also out of scope.

We’re treating our readers as intelligent beings who can use Google and/or StackOverflow, where all such specific questions were answered more than once.

What you will find is opinions on all the aspects of software development (from UI to scalability, reliability and security) for all kinds of systems (from large-scale systems to embedded ones), the reasoning behind those opinions, and tons of practical observations, which may help you to choose what you really need for your specific task.

Your mileage may vary. Batteries not included.

Bot Fighting 201: Declarative Data+Code Obfuscation with Build-Time Polymorphism in C++

Quote:
“Technically, what we’re looking for here, is any kind of bijection; we’ll use this bijection to convert our data from one representation into another one (and as it is a bijection, we can revert it later).”
Another Quote:
“As we’re not writing our obf<> classes manually (instead, we have a code generator doing it for us on each build), the sky is the limit to the obfuscations we can generate.”

Bot Fighting 103. Code Integrity Checks, Code Scrambling

Quote:
“Bingo! We’ve got an executable, which automagically performs TONS of integrity checks, which checks are spread all over the executable, and are extremely non-obvious too.”
Another Quote:
“This approach of ‘not revealing code until attack costs are high’ is certainly not limited to payments.”

Bot Fighting 102: System-Specific Kinda-Protection. Anti-Debugger, Anti-DLL-Injection, VM Detection.

Quote:
“it is fundamentally impossible to prevent (or detect) debugging, at least as long we’re staying on one single box.”
Another Quote:
“DON’T spend more than 10% of your overall anti-bot-fighting time budget on system-specific protections.”