Code Monkey home page Code Monkey logo

ida-com-utils's Introduction

ida-utils

A small but brave and growing collection of advice, links and observations regarding reverse engineering using IDA Pro.

Reversing COM binaries

Understanding COM objects/binaries

COM - Component Object Model

https://www.codeproject.com/Articles/13601/COM-in-plain-C

  • one of the best articles I have read. I highly recommend it

https://reverseengineering.stackexchange.com/questions/13282/ida-pro-list-com-methods

  • a very informative thread

http://bytepointer.com/resources/index.htm

  • a very interesting site. Highly recommend all the articles regarding COM

http://www.moserware.com/2008/01/finally-understanding-com-after.html

  • interesting article with references to other good links for understanding COM

http://www.moserware.com/2009/04/using-obscure-windows-com-apis-in-net.html

  • interesting article referenced in the previous recommendation

COM functions reside in ole32.dll C:\Windows\System32\ole32.dll

More information regarding COM can be found everywhere since it is as old as me.

COM reversing tools

C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\arm64\oleview.exe - dd683d280b74d2cc2e6a31a574ac6da0
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64\oleview.exe   - 3cec2bf41e410926f62e189bef547d30
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86\oleview.exe   - 0eeccd530de75c398329a1ba0194614f

Using IDA Pro

Types

As ashamed as I am, I must admit I originally did not know in what type library (if any) I could find the IDA structures relating to COM.

First I used IDA's load header feature to load headers such as guiddef.h. The files are originally found when installing the Windows SDK (in my case there were in C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0). Initially I found most of my required headers, online, here for example.

A second attempt was as to create an IDA .til file. Not knowing all the header files I would need I parsed the 133 functions pages displayed here: MSDN list of functions that are provided by COM. to find out that all the functions were exported by:

Callobj.h
Combaseapi.h
GuidDef.h
Messagedispatcherapi.h
Objbase.h
Ole2.h
Olectl.h
ROApi.h
Urlmon.h

witch I subsequently collected from the SDK in order to build into the .til. At this point I realised the types were probabil in a visual studio type library, something that IDA has.

The type library I was looking for was: vc9 - Visual Studio v9 headers (without windows.h) The header files are also found in vc6win - Visual C++ but with a different flavor.

One could have used something similar to for /R %i in (*.til) do (tilib.exe -lc "%i" | grep GUID -c | grep -v 0) to find any referenced target structures, but where would the reverse engineering fun in that be?

After loading the type library and doing a type change, such beauty beholds, an example: IUnknown

Scripts

Haven't found many.

Plugins

IDA already comes with:

ida-com-utils's People

Contributors

abarbatei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.