Flag: Tornado! Hurricane!

OpenRCE IDA SDK >> ua_mnem

ua_mnem
Category: Instructions

idaman const char *ida_export
ua_mnem(ea_t ea, char *buf, size_t bufsize)
Fills *buf, limited by bufsize, with the mnemonic used in the instruction at ea and updates the IDA database with the instruction if it isn't already defined. Returns the *buf pointer or NULL if there is no instruction at ea.

Examples:
#include <segment.hpp> // For segment functions
#include <ua.hpp>

// Loop through each executable segment, displaying the mnemonic used in each instruction
for (int s = 0; s < get_segm_qty(); s++)
{
    segment_t *seg = getnseg(s);
    
    if (seg->type == SEG_CODE)
    {
        int bytes = 0;
        
        // a should always be the address of an instruction, which is why bytes is dynamic
        // depending on the result of ua_mnem()
        for (ea_t a = seg->startEA; a < seg->endEA; a += bytes)
        {
            char mnem[MAXSTR];
            const char *res;
            
            // Get the mnemonic at a, store it in mnem
            res = ua_mnem(a, mnem, sizeof(mnem)-1);
            
            // If this was an instruction, display the mnemonic, set the bytes counter
            // to cmd.size, so that the next address processed by ua_mnem() is the next instruction.
            if (res != NULL)
            {
                msg("Mnemonic at %a: %s\n", a, mnem);
                bytes = cmd.size;
            }
            else
            {
                msg ("No code\n");
                
                // If there was no code at this address, increment the byte counter by 1 so that
                // ua_mnem() works off the next address.
                bytes = 1;
            }
        }
    }
}


Related: generate_disasm_line, get_item_end, ua_ana0, ua_code, ua_mnem, ua_outop

Note: You must be logged in to add notes to the IDA SDK reference manual.

There are 31,310 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
hi!
Jul/01
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


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