A forum for reverse engineering, OS internals and malware analysis 

Forum for announcements and questions about tools and software.
 #15869  by Tigzy
 Tue Oct 02, 2012 6:43 pm
Hello

Nice PoC!
What if we register a DLL that not exists in a process's database?
Will this leads to a crash of the process?
As a result, you cannot use shims to bypass any security mechanisms present in Windows
Uh, wait...
 #15870  by 0x16/7ton
 Tue Oct 02, 2012 7:02 pm
Tigzy wrote:Hello

Nice PoC!
What if we register a DLL that not exists in a process's database?
Will this leads to a crash of the process?
As a result, you cannot use shims to bypass any security mechanisms present in Windows
Uh, wait...
process would be work without crash)
 #15995  by SomeUnusedName
 Mon Oct 15, 2012 9:04 am
In case someone is interested in more detail regarding shims, this is a good article:

Secrets of the Application Compatilibity Database (SDB) – Part 1 (Alex Ionescu's blog)

Edit:

Even better: Secrets of the Application Compatilibity Database (SDB) – Part 2

Check these shims:
Code: Select all
NAME="TerminateExe"
DLLFILE="AcGenral.DLL"
DESCRIPTION="This compatibility fix terminates an executable (.EXE) immediately upon launch."

NAME="RedirectEXE"
DLLFILE="AcGenral.DLL"
DESCRIPTION="This compatibility fix calls WinExec on the passed command line, and then terminates the caller process. The command line can contain any environment variables that need to be passed to the executable."
Instead of using DllInjection, you might as well use the TerminateExe shim on AV processes, so no DLL drop needed!