naides
October 30th, 2003, 21:15
I am trying to understand and manually unpack ceratain app.
Before sending me to search the board, please read:
The application's executables are encrypted and packed to a certain extent. I explain, if I dissasemble them with IDA or Windasm, I can still see most of the resources, dialogs, which do exist inside the app, but no import or export functions and the code looks like garbage.
I have scanned the .exe with all the file analyzers I have been able to find and, while they report the file is packed, do not find typical signatures of commercial packers, so I may assume it was crypted/packed by the coders. I have nil expirience with packed programs (so far I never needed one) so I cannot recognize code patterns.
The big problem with trying to manually unpack is debugger detection.
The program quits silently when Sice is active, or is loaded to Olly, or pretty much all the debuggers I have tried.
I systematically tried all of the Sice hiding tools that one time or another have been mentioned here, including the Sice 4.27 patch that Nikola posted, and have come out empty handed.
I eventually moved the application to a Win98 machine and used FrogIce to catch at least some of the Sice detection tricks. FrogsIce reports:
Code 07
=======
Method of detection of the WinICE handler in the int68h (V86)
mov ah,43h
int 68h
cmp ax,0F386h
jz SoftICE_Detected
My question to a good soul in here is, how can I use this information to bypass the Sice detection?
I have traced with Sice from the entry point, and the code is a mess: Self generating, obfuscated with a bunch of jmps and conditional jmps into the middle an instruction bytes, which changes the meaning of the dissassembled code on the flight, etc, so I stand little chance of finding in the dead listing some int 68 call or a pettern of bytes consistent with the code snippet above.
a BPint 68h does not work in Sice.
The solution may be obvious to someone by I don't get it.
Thanks
Before sending me to search the board, please read:
The application's executables are encrypted and packed to a certain extent. I explain, if I dissasemble them with IDA or Windasm, I can still see most of the resources, dialogs, which do exist inside the app, but no import or export functions and the code looks like garbage.
I have scanned the .exe with all the file analyzers I have been able to find and, while they report the file is packed, do not find typical signatures of commercial packers, so I may assume it was crypted/packed by the coders. I have nil expirience with packed programs (so far I never needed one) so I cannot recognize code patterns.
The big problem with trying to manually unpack is debugger detection.
The program quits silently when Sice is active, or is loaded to Olly, or pretty much all the debuggers I have tried.
I systematically tried all of the Sice hiding tools that one time or another have been mentioned here, including the Sice 4.27 patch that Nikola posted, and have come out empty handed.
I eventually moved the application to a Win98 machine and used FrogIce to catch at least some of the Sice detection tricks. FrogsIce reports:
Code 07
=======
Method of detection of the WinICE handler in the int68h (V86)
mov ah,43h
int 68h
cmp ax,0F386h
jz SoftICE_Detected
My question to a good soul in here is, how can I use this information to bypass the Sice detection?
I have traced with Sice from the entry point, and the code is a mess: Self generating, obfuscated with a bunch of jmps and conditional jmps into the middle an instruction bytes, which changes the meaning of the dissassembled code on the flight, etc, so I stand little chance of finding in the dead listing some int 68 call or a pettern of bytes consistent with the code snippet above.
a BPint 68h does not work in Sice.
The solution may be obvious to someone by I don't get it.
Thanks