[*] Binary protection state of ip_set.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function popen tear down of ip_set.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/net/netfilter/ipset/ip_set.ko @ 0x8000db4 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) sym.ip_set_flush_set () | void ip_set_flush_set (int32_t arg1) {
| int32_t var_0h;
| r0 = arg1;
0x08000db4 push {r4, lr} |
0x08000db8 mov r4, r0 | r4 = r0;
0x08000dbc ldr r3, [r0, 0x2c] | r3 = *((r0 + 0x2c));
0x08000dc0 ldrb r2, [r3, 0x34] | r2 = *((r3 + 0x34));
0x08000dc4 cmp r2, 0 |
| if (r2 == 0) {
0x08000dc8 bne 0x8000dec |
0x08000dcc mov r3, sp | r3 = sp;
0x08000dd0 bic r2, r3, 0x1fc0 | r2 = BIT_MASK (r3, 0x1fc0);
0x08000dd4 bic r2, r2, 0x3f | r2 = BIT_MASK (r2, 0x3f);
0x08000dd8 ldr r3, [r2, 4] | r3 = *((r2 + 4));
0x08000ddc add r3, r3, 0x200 | r3 += 0x200;
0x08000de0 add r3, r3, 1 | r3++;
0x08000de4 str r3, [r2, 4] | *((r2 + 4)) = r3;
0x08000de8 ldr r3, [r0, 0x2c] | r3 = *((r0 + 0x2c));
| }
0x08000dec ldr r3, [r3, 0x1c] | r3 = *((r3 + 0x1c));
0x08000df0 mov r0, r4 | r0 = r4;
0x08000df4 blx r3 | uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
0x08000df8 ldr r3, [r4, 0x2c] | r3 = *((r4 + 0x2c));
0x08000dfc ldrb r3, [r3, 0x34] | r3 = *((r3 + 0x34));
0x08000e00 cmp r3, 0 |
0x08000e04 popne {r4, pc} |
0x08000e08 pop {r4, lr} |
0x08000e0c movw r1, 0x201 | r1 = 0x201;
0x08000e10 ldr r0, [pc] | r0 = *(0x8000e10);
0x08000e14 stmdaeq r0, {r0, r2, r5, r8, sl, fp, ip, pc} | __asm ("stmdaeq r0, {r0, r2, r5, r8, sl, fp, ip, pc}");
0x08000e18 stmdaeq r0, {r4, r5, r6} | __asm ("stmdaeq r0, {r4, r5, r6}");
| }
[*] Function popen used 1 times ip_set.ko