SysCall
May 10th, 2004, 13:29
Hello all,
first post ... congrats to this forum
I have a target that just seems to me like a never ending story
It consists of .exe file and some .dlls.
The exe was packed with armadillo 2.xx? with CopyMem II technique and table destruction.
Though i never encountered armadillo before i was able to unpack the .exe manually and restore IAT+OEP with the help of ollydbg + ricardos tutorial (thanks man) in considerable amout of time.
Well ... the .exe started successfully and the reg dialog popped up.
So i thought easy game ... well was not.
The dialog does not come from the .exe itself but from one of its .dlls
I tried to trace it and later inject a helper dll (containg my nifty code) but failed.
The debugger locked up every time.
Using PeID it said packed with "Armadillo 2.51 - 3.xx DLL Stub".
Well .. seems every binary of this target is packed with armadillo
That problem of this target is, that the init/unpack + dialog code is called from entry itself = DllMain().
This causes the OS loader lock to get locked the whole time which in turn makes it impossible to load any additional code.
(i had to "break on dll load" + breakpoint on entry to trace it)
My idea was to redirect the entry point to an empty one (only saving the instance handle away).
Then i would add a special export to fake DllMain() call from external - this would allow me to inject additional dlls/code without the dreaded OS loader lock (and to quick brute the serial code (its XXXX-XXXX- ... style, 16 bytes num)).
Well it didnt work ... the code seems to unpack itself into some .PDATA000 section and check itself with some checksum code (it reads itself from disk).
I dumped the section to a separate file and it seem to contain some armadillo stuff...
I tried to fix the IAT but it didnt work at all, because some of the code calls back to original .text1 section.
The .PDATAxxxx section is dynamically allocated on heap and i'm not sure of its functionality...
Can someone shed any lights on this? I've searched the forum but did not found any occurences on armadillo dll stub unpacking.
Any hints welcome...
Thank you very much.
first post ... congrats to this forum

I have a target that just seems to me like a never ending story

It consists of .exe file and some .dlls.
The exe was packed with armadillo 2.xx? with CopyMem II technique and table destruction.
Though i never encountered armadillo before i was able to unpack the .exe manually and restore IAT+OEP with the help of ollydbg + ricardos tutorial (thanks man) in considerable amout of time.
Well ... the .exe started successfully and the reg dialog popped up.
So i thought easy game ... well was not.
The dialog does not come from the .exe itself but from one of its .dlls
I tried to trace it and later inject a helper dll (containg my nifty code) but failed.
The debugger locked up every time.
Using PeID it said packed with "Armadillo 2.51 - 3.xx DLL Stub".
Well .. seems every binary of this target is packed with armadillo

That problem of this target is, that the init/unpack + dialog code is called from entry itself = DllMain().
This causes the OS loader lock to get locked the whole time which in turn makes it impossible to load any additional code.
(i had to "break on dll load" + breakpoint on entry to trace it)
My idea was to redirect the entry point to an empty one (only saving the instance handle away).
Then i would add a special export to fake DllMain() call from external - this would allow me to inject additional dlls/code without the dreaded OS loader lock (and to quick brute the serial code (its XXXX-XXXX- ... style, 16 bytes num)).
Well it didnt work ... the code seems to unpack itself into some .PDATA000 section and check itself with some checksum code (it reads itself from disk).
I dumped the section to a separate file and it seem to contain some armadillo stuff...
I tried to fix the IAT but it didnt work at all, because some of the code calls back to original .text1 section.
The .PDATAxxxx section is dynamically allocated on heap and i'm not sure of its functionality...
Can someone shed any lights on this? I've searched the forum but did not found any occurences on armadillo dll stub unpacking.
Any hints welcome...

Thank you very much.