[*] Binary protection state of iostat
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of iostat
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/iostat @ 0x5e64 */
| #include <stdint.h>
|
; (fcn) fcn.00005e64 () | void fcn_00005e64 (int16_t arg1) {
| int16_t var_8h_2;
| int16_t var_ch_2;
| int16_t var_1ch_2;
| r0 = arg1;
0x00005e64 push {r1, r2, r3} |
0x00005e66 mov.w r3, 0x400 | r3 = 0x400;
0x00005e6a ldr r1, [pc, 0x74] |
0x00005e6c ldr.w ip, [pc, 0x74] | ip = *(0x00005ee4);
0x00005e70 add r1, pc | r1 = 0xbd56;
0x00005e72 push {r4, r5, lr} |
0x00005e74 mov r5, r0 | r5 = r0;
0x00005e76 addw r0, r1, 0x40c | __asm ("addw r0, r1, aav.0x000000ff");
0x00005e7a sub sp, 0x10 |
0x00005e7c add ip, pc |
0x00005e7e ldr r1, [pc, 0x68] |
0x00005e80 add r2, sp, 0x1c | r2 += var_1ch_2;
0x00005e82 ldr r4, [r2], 4 | r4 = *(r2);
| r2 += 4;
0x00005e86 ldr.w r1, [ip, r1] | r1 = *((ip + r1));
0x00005e8a ldr r1, [r1] | r1 = *(0x5eea);
0x00005e8c str r1, [sp, 0xc] | var_ch_2 = r1;
0x00005e8e mov.w r1, 0 | r1 = 0;
0x00005e92 strd r4, r2, [sp] | __asm ("strd r4, r2, [sp]");
0x00005e96 str r2, [sp, 8] | var_8h_2 = r2;
0x00005e98 mov r1, r3 | r1 = r3;
0x00005e9a movs r2, 1 | r2 = 1;
0x00005e9c blx 0xdfc | vsnprintf_chk ()
0x00005ea0 cmp r5, 0 |
| if (r5 <= 0) {
0x00005ea2 ble 0x5eb2 | goto label_0;
| }
0x00005ea4 movs r4, 0 | r4 = 0;
| do {
0x00005ea6 movs r0, 9 | r0 = 9;
0x00005ea8 adds r4, 1 | r4++;
0x00005eaa blx 0xf88 | scandir ();
0x00005eae cmp r5, r4 |
0x00005eb0 bne 0x5ea6 |
| } while (r5 != r4);
| label_0:
0x00005eb2 ldr r0, [pc, 0x38] |
0x00005eb4 add r0, pc | r0 = 0xbda6;
0x00005eb6 addw r0, r0, 0x40c | __asm ("addw r0, r0, aav.0x000000ff");
0x00005eba blx 0xec4 | fcn_00000ec4 ();
0x00005ebe ldr r2, [pc, 0x30] |
0x00005ec0 ldr r3, [pc, 0x24] | r3 = *(0x5ee8);
0x00005ec2 add r2, pc | r2 = 0xbdb8;
0x00005ec4 ldr r3, [r2, r3] | r3 = *(0xbdb8);
0x00005ec6 ldr r2, [r3] | r2 = *(0xbdb8);
0x00005ec8 ldr r3, [sp, 0xc] | r3 = var_ch_2;
0x00005eca eors r2, r3 | r2 ^= r3;
0x00005ecc mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x00005ed0 bne 0x5edc |
0x00005ed2 add sp, 0x10 |
0x00005ed4 pop.w {r4, r5, lr} |
0x00005ed8 add sp, 0xc |
0x00005eda bx lr | return;
| }
0x00005edc blx 0xe2c | stack_chk_fail ();
0x00005ee0 cmp ip, r8 |
0x00005ee2 movs r1, r0 | r1 = r0;
0x00005ee4 ands r4, r7 | r4 &= r7;
0x00005ee6 movs r1, r0 | r1 = r0;
0x00005ee8 lsls r0, r4, 4 | r0 = r4 << 4;
0x00005eea movs r0, r0 |
0x00005eec cmp r8, r0 |
0x00005eee movs r1, r0 | r1 = r0;
0x00005ef0 subs r7, 0xf6 | r7 -= 0xf6;
0x00005ef2 movs r1, r0 | r1 = r0;
| }
[*] Function printf used 2 times iostat