[*] Binary protection state of libxt_sctp.so
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libxt_sctp.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/xtables/libxt_sctp.so @ 0xdf0 */
| #include <stdint.h>
|
; (fcn) fcn.00000df0 () | void fcn_00000df0 (int16_t arg_18h, int16_t arg1, uint32_t arg2, int16_t arg3) {
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00000df0 ssub8mi fp, r5, r8 | __asm ("ssub8mi fp, r5, r8");
0x00000df4 ldr r6, [sp, 0x18] | r6 = *(arg_18h);
0x00000df6 mov r2, r0 | r2 = r0;
0x00000df8 mov r4, r1 | r4 = r1;
| if (r3 == 0) {
0x00000dfa cbnz r3, 0xe0a |
0x00000dfc movw r3, 0xffff | r3 = 0xffff;
0x00000e00 cmp r5, r3 |
0x00000e02 it eq |
| if (r5 == r3) {
0x00000e04 cmpeq r1, 0 | __asm ("cmpeq r1, 0");
| }
| if (r5 != r3) {
0x00000e06 bne 0xe56 | goto label_0;
| }
0x00000e08 pop {r3, r4, r5, r6, r7, pc} |
| }
0x00000e0a ldr r7, [pc, 0x50] |
0x00000e0c add r7, pc | r7 = 0x1c6e;
| do {
0x00000e0e ldr r1, [pc, 0x50] |
0x00000e10 movs r0, 1 | r0 = 1;
0x00000e12 add r1, pc | r1 = 0x1c78;
0x00000e14 blx 0x994 | fcn_00000994 ();
0x00000e16 ldc p2, c4, [lr, 0x2b0]! | __asm ("ldc p2, c4, [lr, 0x2b0]!");
| if (r0 != 1) {
0x00000e1a beq 0xe40 |
0x00000e1c ldr r1, [pc, 0x44] |
0x00000e1e mov r2, r7 | r2 = r7;
0x00000e20 movs r0, 1 | r0 = 1;
0x00000e22 add r1, pc | r1 = 0x1c8a;
0x00000e24 blx 0x994 | fcn_00000994 ();
0x00000e28 mov r1, r6 | r1 = r6;
0x00000e2a mov r0, r4 | r0 = r4;
0x00000e2c bl 0xdac | fcn_00000dac (r0);
0x00000e30 movs r0, 0x3a | r0 = 0x3a;
0x00000e32 blx 0x984 | printf_chk ()
0x00000e36 mov r1, r6 | r1 = r6;
0x00000e38 mov r0, r5 | r0 = r5;
0x00000e3a pop.w {r3, r4, r5, r6, r7, lr} |
0x00000e3e b 0xdac | void (*0xdac)() ();
| }
0x00000e40 ldr r1, [pc, 0x24] |
0x00000e42 mov r2, r7 | r2 = r7;
0x00000e44 movs r0, 1 | r0 = 1;
0x00000e46 add r1, pc | r1 = 0x1cb2;
0x00000e48 blx 0x994 | fcn_00000994 ();
0x00000e4c mov r1, r6 | r1 = r6;
0x00000e4e mov r0, r4 | r0 = r4;
0x00000e50 pop.w {r3, r4, r5, r6, r7, lr} |
0x00000e54 b 0xdac | void (*0xdac)() ();
| label_0:
0x00000e56 ldr r7, [pc, 0x14] |
0x00000e58 add r7, pc | r7 = 0x1cca;
0x00000e5a b 0xe0e |
| } while (1);
| }
[*] Function printf used 2 times libxt_sctp.so