thunk

Using v-table thunks to chain procedure calls

I was reading some articles on net regarding Vtable thunks and I read somewhere that thunks can be used to hook /chain procedures calls. Is it achievable? Does anyone know how that works , also I am not able to find good resource explaining thunks. Any suggestions for that? ...

Mac gcc non-virtual thunk error

I'm getting these non-virtual thunk errors only in the Deployment build of my app. It uses a private framework called Lgi. Building on 10.5.8 using XCode 3.1.4 (latest for leopard?) The error looks like this: Ld /Users/matthew/Code/Scribe-Branches/v2.00/build/Development/Scribe.app/Contents/MacOS/Scribe normal i386 cd /Users/matthew...

What is a 'thunk'?

I've seen it used in programming (specifically in the C++ domain) and have no idea what it is. Presumably it is a design pattern, but I could be wrong. Can anyone give a good example of a thunk? ...

Thunk and ATL Thunk?

Can someone explain to me what a Thunk is? and an ATL Thunk? I know a thunk has something to do with the vtbl and execution of code to find the right function pointer. Am I right? ...

Thunk table in import address table?

What is a thunk table in relation to the import address table that's used in EXE files to import functions used in external DLLs? Is this thunk table just a table containing 'Thunks' to other functions? ...

Incorrect vtable layout for class exported by DLL: request for clarification regarding headers and vtable construction.

Hello all, Although the problem at hand is solved, it has me a little confused as to what data is used to construct the vtables for a class and where the layout for the vtable is stored. If anyone can provide clarification or point me towards some information which might satiate my curiosity, I would greatly appreciate it. Background ...

Why the output is “In foo, a = 7”?

void foo(int a) { printf ("In foo, a = %d\n", a); } unsigned char code[9]; * ((DWORD *) &code[0]) = 0x042444FF; /* inc dword ptr [esp+4] */ code[4] = 0xe9; /* JMP */ * ((DWORD *) &code[5]) = (DWORD) &foo - (DWORD) &code[0] - 9; void (*pf)(int/* a*/) = (void (*)(int)) &code[0]; pf (6); Anyone knows where in the ab...

MSVS2010 linker error sadness - not entirely sure what is wrong

I am using a library of code from a tutorial for providing functionality for passing function points of non-static member functions to a function that expects a static function pointer, probably helps to know what I am suing, so here is the link http://www.codeproject.com/KB/cpp/thunk32.aspx This code uses the Boost library, which I have...