📚 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  >>  Porting IDC to Plug-in. MakeStructEx() Equivalent?

Topic created on: February 21, 2007 08:21 CST by bitmanmb .

Hi there.  
I am looking to port an IDC script to IDA plugin.  But I got a problem with the script function MakeStructEx(long ea,long size, string strname) which seems not to have an equivalent one for plugin.  I suppose there is a clever solution I didn't realized.
Could somebody help me?  
Thx

  dennis     February 21, 2007 09:28.06 CST
> bitmanmb: Hi there.  
> I am looking to port an IDC script to IDA plugin.  But I got a problem with the script function MakeStructEx(long ea,long size, string strname) which seems not to have an equivalent one for plugin.  I suppose there is a clever solution I didn\'t realized.
> Could somebody help me?  
> Thx

maybe these functions will help?

idaman tid_t ida_export add_struc(uval_t idx, const char *name, bool is_union=false);

idaman bool ida_export set_struc_idx(struc_t *sptr, uval_t idx);

idaman int ida_export add_struc_member()

struct.hpp

  bitmanmb   February 27, 2007 11:34.11 CST
Well actually I create my structures this way but when I want to assign one of them to an EA in my disassembly I have no results.  
A sample piece of my code:

#define struct_dword 0x20000400

enum_t      id = 0;
struc_t     *sptr = NULL;
typeinfo_t  mt;

id = get_struc_id("MyStruct");
sptr = get_struc(id);
add_struc_member(sptr, "dwField1", 0x00, struct_dword, &mt, 4);
add_struc_member(sptr, "dwField2", 0x04, struct_dword, &mt, 4);
add_struc_member(sptr, "dwField3", 0x08, struct_dword, &mt, 4);
...

now I want to represent data at address 0x401050 as MyStruct. How could I do it?

Thanks!

  bitmanmb   March 5, 2007 08:59.09 CST
Gotcha!

Finally I found it.

If someone has this same problem, here it goes the solution.

inline bool idaapi doStruct(ea_t ea, asize_t length,tid_t tid) { return do_data_ex(ea, FF_STRU, length, tid); }

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