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


Recently Created Topics
Information on the t...
Feb/08
Information on the m...
Feb/07
Order Finax, Fincar ...
Feb/07
Information on the m...
Feb/07
Order Proscar (Finas...
Feb/07
Order Proscar, Finax...
Feb/07
Order Finasteride, F...
Feb/07
How to view IDA Pro'...
Nov/02
reverse MC9S12DG128
Oct/07
Looking for an advan...
Mar/21


Recent Forum Posts
Looking for an advan...
tthtlc
Looking for an advan...
tthtlc
Looking for an advan...
clightning
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


Recent Blog Entries
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 ...

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

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