[*] Binary protection state of libip6t_hbh.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libip6t_hbh.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/libip6t_hbh.so @ 0xb04 */
| #include <stdint.h>
|
; (fcn) fcn.00000b04 () | void fcn_00000b04 (int32_t arg1, int32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00000b04 push {r4, r5, r6, r7, r8, lr} |
0x00000b08 ldr r7, [pc, 0x58] | r7 = *(0xb64);
0x00000b0c ldr r8, [pc, 0x58] | r8 = *(0xb68);
0x00000b10 mov r6, r0 | r6 = r0;
0x00000b14 sub r5, r1, 2 | r5 = r1 - 2;
0x00000b18 mov r4, 0 | r4 = 0;
0x00000b1c add r7, pc, r7 | r7 = pc + r7;
0x00000b20 add r8, pc, r8 | r8 = pc + r8;
| do {
0x00000b24 cmp r4, r6 |
0x00000b28 popeq {r4, r5, r6, r7, r8, pc} |
0x00000b2c cmp r4, 0 |
| if (r4 != 0) {
0x00000b30 moveq r0, 0x20 | r0 = 0x20;
| }
| if (r4 == 0) {
0x00000b34 movne r0, 0x2c | r0 = 0x2c;
| }
0x00000b38 bl 0x554 | putchar (r0);
0x00000b3c ldrh r1, [r5, 2]! | r1 = *((r5 += 2));
0x00000b40 mov r0, r7 | r0 = r7;
0x00000b44 lsr r1, r1, 8 | r1 >>= 8;
0x00000b48 bl 0x560 | printf (r0, r1)
0x00000b4c ldrb r1, [r5] | r1 = *(r5);
0x00000b50 cmp r1, 0xff |
| if (r1 != 0xff) {
0x00000b54 beq 0xb60 |
0x00000b58 mov r0, r8 | r0 = r8;
0x00000b5c bl 0x560 | printf (r0)
| }
0x00000b60 add r4, r4, 1 | r4++;
0x00000b64 b 0xb24 |
| } while (1);
| }
[*] Function printf used 3 times libip6t_hbh.so