Exetools  

Go Back   Exetools > General > General Discussion

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 04-29-2004, 20:55
MaRKuS-DJM's Avatar
MaRKuS-DJM MaRKuS-DJM is offline
Cracker + Unpacker
 
Join Date: Aug 2003
Location: Virtual World / Network
Posts: 553
Rept. Given: 7
Rept. Rcvd 6 Times in 4 Posts
Thanks Given: 3
Thanks Rcvd at 16 Times in 10 Posts
MaRKuS-DJM Reputation: 6
Import OS Fixing

maybe i asked this question some time before, but i never got a good answer (or tutorial) for it. My problem is, if i unpack a target and fix the imports by imprec, it doesn't run on any other OS than mine (normally i use Windows XP). is there a way to fix these imports for every OS? i thought maybe LordPE can do the job, but it doesn't.

Any help would be appreciated.
many thanks
Reply With Quote
  #2  
Old 04-29-2004, 22:56
least
 
Posts: n/a
I'm not too sure if I'm right but I think it could be caused by something called api forwarding. I think it works like that; you have app that uses some api, which doesn't exist on the other OS, but there is api with another name and the some function. In the dll where the api used to be is just reference to the new one and thats where the call finaly lands. But the import rebuilder reconstructs import table using the new name, so on older OS it won't run.
I just probably wrote a real $hit but I think it could be like that
Regards,
least
Reply With Quote
  #3  
Old 04-29-2004, 23:23
ferrari
 
Posts: n/a
Yeah same experience here. The patches which I make for Packed program (eg. ASPACK) only works on WinXP/2K and fails on 98/ME. It's the API issue.

Regards,
ferrari
Reply With Quote
  #4  
Old 04-29-2004, 23:43
JMI JMI is offline
Leader
 
Join Date: Jan 2002
Posts: 1,627
Rept. Given: 5
Rept. Rcvd 199 Times in 99 Posts
Thanks Given: 0
Thanks Rcvd at 98 Times in 96 Posts
JMI Reputation: 100-199 JMI Reputation: 100-199
From what I've read elsewhere, I believe the main issue is that some of the API's have different names and maybe ordinals between 9X and NT based OS systems. I've never used a dual boot system and never tried to use a patched program I'd made on another OS, so didn't pay that close attention, other than the quick read.

I think I read some threads on the issue on the Woodmann Forum, but don't have time at the moment to try to find them for you. I'll post something later, if I get the chance.

Regards,
__________________
JMI
Reply With Quote
  #5  
Old 04-30-2004, 00:39
volodya
 
Posts: n/a
Study more, my friend. The answer is easy - it is called OriginalFirstThunk.

Long ago I wrote an article about all that, but it is in Russian - sorry...
http://wasm.ru/article.php?article=packlast01

You could probably just see the pictures. I can translate them right here.
Reply With Quote
  #6  
Old 04-30-2004, 02:43
evaluator
 
Posts: n/a
yah, now when you want to create patches..this becames problematic..

first of all: better is not to use automated tools, but try clear manual unpacking;
ok, this can be too much hard for you.

than 2nd suggestion:
unpack on both W9x & Nt systems, then compare RESOLVED imports;
when you see difference, now you need in debugger confirm exact import name;

(usually RestoreLastError sux:)
Reply With Quote
  #7  
Old 04-30-2004, 02:55
MaRKuS-DJM's Avatar
MaRKuS-DJM MaRKuS-DJM is offline
Cracker + Unpacker
 
Join Date: Aug 2003
Location: Virtual World / Network
Posts: 553
Rept. Given: 7
Rept. Rcvd 6 Times in 4 Posts
Thanks Given: 3
Thanks Rcvd at 16 Times in 10 Posts
MaRKuS-DJM Reputation: 6
Quote:
Originally Posted by JMI
I think I read some threads on the issue on the Woodmann Forum, but don't have time at the moment to try to find them for you. I'll post something later, if I get the chance.
thanks JMI. i have already read some threads on Woodman of this issue, but didn't find something really helpful. maybe you saw other threads

Quote:
Originally Posted by volodya
Study more, my friend. The answer is easy - it is called OriginalFirstThunk.
There's a option in ImpRec... "Import Original FT".
does this solve the problem? i never tried it.

Quote:
Originally Posted by evaluator
first of all: better is not to use automated tools, but try clear manual unpacking;
i'm getting closer to it. but all i did for now was to write some functions which resolved imports for me, no ImpRec Disassembly or Tracer fix. so i got only valid imports in ImpRec. i'm at some "semi-manual" unpacker level.

Quote:
Originally Posted by evaluator
unpack on both W9x & Nt systems, then compare RESOLVED imports;
when you see difference, now you need in debugger confirm exact import name;
do you think this is a good method? it seems a bit time-consuming to do this for every packer...

Last edited by MaRKuS-DJM; 04-30-2004 at 02:59.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help to fixing API-Calls Nukacola General Discussion 6 05-11-2005 16:49
Import Rebuilding Without Import Table Kerlingen General Discussion 11 01-13-2005 10:24
Fixing an EXE to not call a DLL? Barry General Discussion 11 06-03-2004 00:37
Problem with fixing IAT K3nny General Discussion 5 01-04-2004 19:26


All times are GMT +8. The time now is 15:02.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( Since 1998 )