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,038 total registered users.


Recently Created Topics
Ultimate Hacking Cha...
Jun/21
CreateMutex
May/31
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
Immunity Debugger Re...
Aug/03


Recent Forum Posts
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
OOP_RE tool available?
van7hu
Should binaries be n...
Kolisar
Problem with ollydbg
nullx42
!findtrampoline Immu...
skycrack


Recent Blog Entries
crystalwade
Jul/20
test

nieo
Mar/22
Android Application Reversing

halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

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

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