Exetools  

Go Back   Exetools > General > General Discussion

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 12-29-2004, 08:29
Flagmax
 
Posts: n/a
Armadillo 3.50a giving trouble

Hi, I have been playing with this program for a while. It is packed with armVersion>....3.50a..., but its not like other versions I have seen and unpacked. Maybe this is a private build. The IAT stealing is different too. Have not read/seen any tuts that show a similar project.

Anyways, I think I tried everything that could think of and need some help. I believe I have a good dump. I also rebuilt the IAT. There were about 10 stolen address in IAT that I fixed by tracing. But the exe won't run. I tried to debug the dumped exe but no matter what I try, after a while the process is terminated or hit INT3. In the url below there is a zip with original program called Image For Windows and my dumped exe and the serial.

I would really appreciate if someone could send some hints my way on what the hell is going on.

Some info on the process:
OEP: 00427E5A
IAT: 00432000

http://s11.yousendit.com/d.aspx?id=30RV1TBCX83UX3VG8NW7RI8VU2

Thank you all.
Reply With Quote
  #2  
Old 12-29-2004, 17:34
OrionOnion
 
Posts: n/a
Smile

I dumped that and got same result.
OEP & IAT Correct.
also got INT3 stop.

I think it use nanomite feature.
search about nanomite in woodmann
you may get info about nanomite.
Reply With Quote
  #3  
Old 12-30-2004, 02:40
Flagmax
 
Posts: n/a
Ok thank you. I will search on nanomite.

Can I ask you another question since you dumped it also? Dumping is no problem but the IAT is a biatch.

After detaching the father, I attach the son, fix the dubug byte and set hw bp at 00432000.

few shift-f9s, hit the hw brake, ctrl-f9, f7 land here
Code:
00A7EA7B   83C4 0C          ADD ESP,0C
00A7EA7E   8D85 58EAFFFF    LEA EAX,DWORD PTR SS:[EBP-15A8]
00A7EA84   50               PUSH EAX
00A7EA85   FFB5 58EAFFFF    PUSH DWORD PTR SS:[EBP-15A8]
00A7EA8B   FFB5 60EAFFFF    PUSH DWORD PTR SS:[EBP-15A0]
00A7EA91   8B85 34EBFFFF    MOV EAX,DWORD PTR SS:[EBP-14CC]
00A7EA97   0385 5CEAFFFF    ADD EAX,DWORD PTR SS:[EBP-15A4]
00A7EA9D   50               PUSH EAX
00A7EA9E   FF15 3461A800    CALL DWORD PTR DS:[A86134]               ; kernel32.VirtualProtect
This looks good according to the Unpacking Gods - Armadillo v3 + Debug Blocker tutorial. But this is as far it goes. There are NO 4/5 Nops in this version and JE seems to have no affect. I ended up manually doing alott of tracing and right before dillo writes the bad addy at IAT, one of the registers have the name to a good function.

Can you teach something new please. Or is it not possible in this case? I know I got a good IAT cause you got the same thing, but I would love to learn the better way which is to kill dillo so it leaves our good IAT along.

Thanks again for taking on this project aswell.

Quote:
Originally Posted by OrionOnion
I dumped that and got same result.
OEP & IAT Correct.
also got INT3 stop.

I think it use nanomite feature.
search about nanomite in woodmann
you may get info about nanomite.

Last edited by Flagmax; 12-30-2004 at 02:43.
Reply With Quote
  #4  
Old 12-30-2004, 16:05
OrionOnion
 
Posts: n/a
Smile

Ihad experienced your case.
In my case, I remaked new IAT.

First check the code.

00A7EA9E FF15 3461A800 CALL DWORD PTR DS:[A86134]

A86134 is virtual table of armadillo.


Set hardware breakpoint at 00A7EA9E+2. //00A7EAA
and trace..
3461A800<--- Armadillo patched code (Original code? I don't know..)
so You can find like this

Mov CS:[EAX],ECX
jmp yyyyyy // It will patch all code that access IAT.
KK: //end address of routine

EAX is 00A7EAA, & ECX is 00A86134
if you know ollyscript, you can make some script.

bp xxxxxx
bp kk
l_start:
esto
log eax
log ecx
cmp eip,kk
jne l_start
ret

then you will get like this log msg
XXXXXXXX Breakpoint at XXXXXXXX
eax = 00402C02
mem0 = 77E61BEA | kernel32.Sleep

and You have to make your own IAT maually or not.
(Some Address pointed Virtual table, you can trace and repair!!)

Sorry My english is so poor..
Reply With Quote
  #5  
Old 12-31-2004, 04:24
Flagmax
 
Posts: n/a
Thank you. I will try your method. I am reading on Nanomite in mean time. I hope to have a running exe soon.

Update:
OrionOnion you were 100% correct. It uses Nanomites. A shitload of them. Table 1 has 507 entries. Whoa!!!
Code:
00955208  E9 15 40 00 05 16 40 00  �@.@.
00955210  1B 16 40 00 33 16 40 00  @.3@.
00955218  5B 16 40 00 67 16 40 00  [@.g@.
00955220  8A 16 40 00 A4 16 40 00  Љ@.&curren;@.
.............
This is a weird beast though, the magic binary search "03 00 00 80" failed. Again back to a lot of F7's and F8's.

Last edited by Flagmax; 12-31-2004 at 11:03.
Reply With Quote
  #6  
Old 12-31-2004, 22:49
OrionOnion
 
Posts: n/a
Talking

Hey Flagmax!

I Missing some information.

My previous answer is not perfect answer.

My arm 3.70a case used previous "mov [eax],ecx"
But arm 3.76 does not have that routine. (raw unpacked body already patched.)

you must repair IAT manually.
so I attach OllyScript script for Gathering IAT.

It maybe help you.
Attached Files
File Type: txt ollyscript_gathering_iat_info.txt (2.4 KB, 27 views)
Reply With Quote
  #7  
Old 01-05-2005, 00:15
lucian
 
Posts: n/a
Hey OrionOnion

Can you send me the armadillo script for Gathering IAT,or post a link? Thanks

My email is [email protected]
Reply With Quote
Reply


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
SDK 11.14 Demo setup giving trouble :( Gede General Discussion 6 03-17-2024 10:44
CreateProcess giving wrong ProcessID/ThreadID MarkusO General Discussion 1 11-05-2006 04:12
C4033 trouble. pigman General Discussion 1 08-09-2004 02:10
Trouble to access the FTP server donneraza General Discussion 1 11-18-2003 00:14


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


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