📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  IDA Pro  >>  IDA Pro Failed to Run 'share' -P2P Application

Topic created on: August 10, 2007 00:41 CDT by jaffersathik2010 .

Hi All,

Right now I am trying to analyze  a application called 'share' (a p2p application).

IDA successfully disassemble the 'share' application , but when I run the application inside the debugger, it throws exceptions. I enabled stealth plugin properly but still it fails.

What should I do to run the application inside the debugger successfully ? Have anybody tried the same?

Thanks in advance.

--Jaffer

  igorsk     August 10, 2007 02:54.46 CDT
Which exeptions does it throw? Did you try passing them to the application?
Share is written in Delphi, and I think Delphi uses some exceptions for internal purposes.

  jms     August 11, 2007 01:42.51 CDT
Yeah and most programs (try anything commercial) throw unwarranted exceptions, your debugger might just be catching them. Write an ollyscript to get past all of them if it's getting annoying, now if it is throwing exceptions and then the program is dying, they may have some anti-debugging in their code.

  jaffersathik2010     August 12, 2007 23:43.19 CDT
Hi igorsk and jms,

Thank you very much for your ideas. I tried passing exceptions to the applications and finally managed to run the application from the debugger.

But now facing another problem. I was trying to put a breakpoint at the 'recv()' function but could not see any instrution calling the 'recv' function (windows dll function) at all. I only got the follwing instructions:

Jmp ds:recv   /*JMP can't be used to call a function */

Note: Earlier I had worked on 'winny application' where I got the instruction 'Call recv' - which calls the recv fucntion, but in 'share' i cound not able to see the such instuctions.

I welcome any kind of suggessions.

Thanks,
Jaffer

  anonymouse     August 13, 2007 10:58.43 CDT
> jaffersathik2010: Hi igorsk and jms,
>
> Jmp ds:recv   /*JMP can\'t be used to call a function */

who said so ?
check any importtable api calls they are all jumps
why jump cant call ?

try assembling this in a sample project and see if the call works or not


00409AA0       6A 00         PUSH    0
00409AA2       68 70A14000   PUSH    0040A170
00409AA7       68 70A24000   PUSH    0040A270
00409AAC       6A 00         PUSH    0
00409AAE       68 979A4000   PUSH    00409A97
00409AB3     - E9 BEC99577   JMP     USER32.MessageBoxA


user proper address viz dont copy paste 409a97 but do
push offset Caption
where Caption is defined a
Caption db "an experiment trying to jump over hoops",13,10
[/code]

  jaffersathik2010     August 14, 2007 00:11.14 CDT
Hi,

Till today I dont know JMP can be used to call a function!!
Thanks a lot .

Thanks,
Jaffer.

  fileoffset     August 15, 2007 01:39.09 CDT
The reason it is possible to JMP to an API call correctly, is because many compilers build an API "Jump Table". This Jump Table is used as a trampoline to call API. The reason it works is because the location of the JMP is CALLed at the original address, thus pushing the correct return address on the stack, e.g:

0: push 0
1: push "blah"
2: push "blah"
3: push 0
4: call 100 <- the call pushes the correct return address
5: xor eax, eax      on the stack, i.e 5
6: ret

100: jmp MessageBoxA <- the jmp only redirects to the correct API
   and so is transparent

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit