[*] Binary protection state of libxt_sctp.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libxt_sctp.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/xtables/libxt_sctp.so @ 0xd0c */
| #include <stdint.h>
|
; (fcn) fcn.00000d0c () | void fcn_00000d0c (int32_t arg_18h, int32_t arg1, uint32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00000d0c push {r4, r5, r6, r7, r8, lr} |
0x00000d10 ldr r6, [sp, 0x18] | r6 = *(arg_18h);
0x00000d14 subs ip, r3, 0 |
| if (ip != r3) {
0x00000d18 bne 0xd88 | goto label_1;
| }
0x00000d1c ldr r7, [pc, 0x9c] | r7 = *(0xdbc);
0x00000d20 add r7, pc, r7 | r7 = pc + r7;
| do {
0x00000d24 ldr r3, [pc, 0x98] | r3 = *(0xdc0);
0x00000d28 subs r3, r2, r3 | r3 = r2 - r3;
| if (r3 == r2) {
0x00000d2c movne r3, 1 | r3 = 1;
| }
0x00000d30 cmp r1, 0 |
| if (r1 == 0) {
0x00000d34 movne r3, 1 | r3 = 1;
| }
0x00000d38 cmp ip, 0 |
| if (ip == 0) {
0x00000d3c movne r3, 1 | r3 = 1;
| }
0x00000d40 cmp r3, 0 |
0x00000d44 popeq {r4, r5, r6, r7, r8, pc} |
0x00000d48 mov r4, r1 | r4 = r1;
0x00000d4c mov r1, r0 | r1 = r0;
0x00000d50 ldr r0, [pc, 0x70] | r0 = *(0xdc4);
0x00000d54 mov r5, r2 | r5 = r2;
0x00000d58 add r0, pc, r0 | r0 = pc + r0;
0x00000d5c bl 0x860 | printf (r0, r1, r2, r3, r4, r5)
0x00000d60 cmp r4, r5 |
0x00000d64 mov r1, r7 | r1 = r7;
| if (r4 != r5) {
0x00000d68 bne 0xd94 | goto label_2;
| }
0x00000d6c ldr r0, [pc, 0x58] | r0 = *(0xdc8);
0x00000d70 add r0, pc, r0 | r0 = pc + r0;
0x00000d74 bl 0x860 | printf (r0)
0x00000d78 mov r1, r6 | r1 = r6;
0x00000d7c mov r0, r4 | r0 = r4;
| label_0:
0x00000d80 pop {r4, r5, r6, r7, r8, lr} |
0x00000d84 b 0xca0 | void (*0xca0)() ();
| label_1:
0x00000d88 ldr r7, [pc, 0x40] | r7 = *(0xdcc);
0x00000d8c add r7, pc, r7 | r7 = pc + r7;
0x00000d90 b 0xd24 |
| } while (1);
| label_2:
0x00000d94 ldr r0, [pc, 0x38] | r0 = *(0xdd0);
0x00000d98 add r0, pc, r0 | r0 = pc + r0;
0x00000d9c bl 0x860 | printf (r0)
0x00000da0 mov r1, r6 | r1 = r6;
0x00000da4 mov r0, r4 | r0 = r4;
0x00000da8 bl 0xca0 | fcn_00000ca0 (r0, r1);
0x00000dac mov r0, 0x3a | r0 = 0x3a;
0x00000db0 bl 0x854 | putchar (r0);
0x00000db4 mov r1, r6 | r1 = r6;
0x00000db8 mov r0, r5 | r0 = r5;
0x00000dbc b 0xd80 | goto label_0;
| }
[*] Function printf used 4 times libxt_sctp.so