[*] Binary protection state of cifsiostat
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of cifsiostat
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/cifsiostat @ 0x3460 */
| #include <stdint.h>
|
; (fcn) fcn.00003460 () | void fcn_00003460 (int16_t arg1) {
| int32_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_1ch;
| int16_t var_4h;
| r0 = arg1;
0x00003460 push {r1, r2, r3} |
0x00003462 mov.w r3, 0x400 | r3 = 0x400;
0x00003466 ldr r1, [pc, 0x74] |
0x00003468 ldr.w ip, [pc, 0x74] |
0x0000346c add r1, pc | r1 = 0x694e;
0x0000346e push {r4, r5, lr} |
0x00003470 mov r5, r0 | r5 = r0;
0x00003472 add.w r0, r1, 0x410 | r0 = r1 + 0x410;
0x00003476 sub sp, 0x10 |
0x00003478 add ip, pc | ip = 0x695c;
0x0000347a ldr r1, [pc, 0x68] | r1 = *(0x34e6);
0x0000347c add r2, sp, 0x1c | r2 += var_1ch;
0x0000347e ldr r4, [r2], 4 | r4 = *(r2);
| r2 += 4;
0x00003482 ldr.w r1, [ip, r1] |
0x00003486 ldr r1, [r1] | r1 = *(0x695c);
0x00003488 str r1, [sp, 0xc] | var_ch = r1;
0x0000348a mov.w r1, 0 | r1 = 0;
0x0000348e strd r4, r2, [sp] | __asm ("strd r4, r2, [sp]");
0x00003492 str r2, [sp, 8] | var_8h = r2;
0x00003494 mov r1, r3 | r1 = r3;
0x00003496 movs r2, 1 | r2 = 1;
0x00003498 blx 0xe44 | vsnprintf_chk ()
0x0000349c cmp r5, 0 |
| if (r5 <= 0) {
0x0000349e ble 0x34ae | goto label_0;
| }
0x000034a0 movs r4, 0 | r4 = 0;
| do {
0x000034a2 movs r0, 9 | r0 = 9;
0x000034a4 adds r4, 1 | r4++;
0x000034a6 blx 0xfd8 | fcn_00000fd8 ();
0x000034aa cmp r5, r4 |
0x000034ac bne 0x34a2 |
| } while (r5 != r4);
| label_0:
0x000034ae ldr r0, [pc, 0x38] |
0x000034b0 add r0, pc |
0x000034b2 add.w r0, r0, 0x410 | r0 = 0x6dae;
0x000034b6 blx 0xf08 | fcn_00000f08 ();
0x000034ba ldr r2, [pc, 0x30] |
0x000034bc ldr r3, [pc, 0x24] | r3 = *(0x34e4);
0x000034be add r2, pc | r2 = 0x69b0;
0x000034c0 ldr r3, [r2, r3] | r3 = *(0x69b0);
0x000034c2 ldr r2, [r3] | r2 = *(0x69b0);
0x000034c4 ldr r3, [sp, 0xc] | r3 = var_ch;
0x000034c6 eors r2, r3 | r2 ^= r3;
0x000034c8 mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x000034cc bne 0x34d8 |
0x000034ce add sp, 0x10 |
0x000034d0 pop.w {r4, r5, lr} |
0x000034d4 add sp, 0xc |
0x000034d6 bx lr | return;
| }
0x000034d8 blx 0xe74 | stack_chk_fail ();
0x000034dc ldr r5, [pc, 0xa0] | r5 = *(0x3580);
0x000034de movs r0, r0 |
0x000034e0 ldr r2, [pc, 0x120] | r2 = *(0x3604);
0x000034e2 movs r0, r0 |
0x000034e4 lsls r4, r3, 4 | r4 = r3 << 4;
0x000034e6 movs r0, r0 |
0x000034e8 ldr r4, [pc, 0x390] | r4 = *(0x387c);
0x000034ea movs r0, r0 |
0x000034ec ldr r2, [pc, 8] | r2 = *(0x000034f8);
0x000034ee movs r0, r0 |
| }
[*] Function printf used 2 times cifsiostat