[*] Binary protection state of libloggen_ssl_plugin.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libloggen_ssl_plugin.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/syslog-ng/loggen/libloggen_ssl_plugin.so @ 0x16f0 */
| #include <stdint.h>
|
; (fcn) fcn.000016f0 () | void fcn_000016f0 () {
| int16_t var_0h;
| int16_t var_4h;
| if (? >= ?) {
0x000016f0 addlt fp, r3, r0, lsr r5 |
| }
0x000016f4 ldr r4, [pc, 0x50] |
0x000016f6 blx 0x109c | get_debug_level ();
0x000016fa add r4, pc | r4 = 0x2e46;
| if (r0 == 0) {
0x000016fc cbnz r0, 0x1704 |
0x000016fe movs r0, 0 | r0 = 0;
0x00001700 add sp, 0xc |
0x00001702 pop {r4, r5, pc} |
| }
0x00001704 ldr r0, [pc, 0x44] |
0x00001706 add r0, pc | r0 = 0x2e56;
0x00001708 blx 0x10a8 | g_path_get_basename ();
0x0000170c ldr r3, [pc, 0x40] | r3 = *(0x1750);
0x0000170e movs r2, 0x5b | r2 = 0x5b;
0x00001710 ldr r1, [pc, 0x40] |
0x00001712 mov r5, r0 | r5 = r0;
0x00001714 ldr r4, [r4, r3] | r4 = *((r4 + r3));
0x00001716 mov r3, r0 | r3 = r0;
0x00001718 str r2, [sp, 4] | var_4h = r2;
0x0000171a add r1, pc | r1 = 0x2e72;
0x0000171c ldr r2, [pc, 0x38] |
0x0000171e adds r1, 0x14 | r1 += 0x14;
0x00001720 str r1, [sp] | *(sp) = r1;
0x00001722 movs r1, 1 | r1 = 1;
0x00001724 ldr r0, [r4] | r0 = *(r4);
0x00001726 add r2, pc | r2 = 0x2e82;
0x00001728 blx 0x10f0 | fprintf_chk ()
0x0000172c ldr r0, [pc, 0x2c] |
0x0000172e movs r2, 0x4d | r2 = 0x4d;
0x00001730 ldr r3, [r4] | r3 = *(r4);
0x00001732 movs r1, 1 | r1 = 1;
0x00001734 add r0, pc | r0 = 0x2e94;
0x00001736 blx 0x11f0 | fcn_000011f0 ();
0x0000173a mov r0, r5 | r0 = r5;
0x0000173c blx 0x119c | fcn_0000119c ();
0x00001740 movs r0, 0 | r0 = 0;
0x00001742 add sp, 0xc |
0x00001744 pop {r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/syslog-ng/loggen/libloggen_ssl_plugin.so @ 0x1c20 */
| #include <stdint.h>
|
; (fcn) fcn.00001c20 () | void fcn_00001c20 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00001c20 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, aav.0x000000ff");
0x00001c24 mov r7, r3 | r7 = r3;
0x00001c26 ldr r3, [r0, 0x3c] | r3 = *((r0 + 0x3c));
0x00001c28 sub sp, 0x14 |
0x00001c2a mov r8, r2 | r8 = r2;
0x00001c2c mov r2, r1 | r2 = r1;
0x00001c2e ldr.w sb, [pc, 0x11c] |
0x00001c32 mov.w r1, 0x2000 | r1 = 0x2000;
0x00001c36 str r3, [sp, 8] | var_8h = r3;
0x00001c38 ldr r3, [r0, 0x38] | r3 = *((r0 + 0x38));
0x00001c3a add sb, pc | sb = 0x398c;
0x00001c3c str r3, [sp, 4] | var_4h = r3;
0x00001c3e ldr r3, [r0, 0x34] | r3 = *((r0 + 0x34));
0x00001c40 str r3, [sp] | *(sp) = r3;
0x00001c42 ldr r3, [r0, 0x30] | r3 = *((r0 + 0x30));
0x00001c44 mov r0, r7 | r0 = r7;
0x00001c46 blx 0x10cc | r0 = generate_proxy_header ();
0x00001c4a mov r6, r0 | r6 = r0;
0x00001c4c blx 0x109c | r0 = get_debug_level ();
0x00001c50 cmp r0, 0 |
| if (r0 != 0) {
0x00001c52 bne 0x1cc4 | goto label_1;
| }
| if (r6 == 0) {
| label_0:
0x00001c54 cbz r6, 0x1cb8 | goto label_2;
| }
0x00001c56 movs r4, 0 | r4 = 0;
0x00001c58 b 0x1c5e |
| while (r5 >= r0) {
0x00001c5a cmp r4, r6 |
| if (r4 >= r6) {
0x00001c5c bhs 0x1cb8 | goto label_2;
| }
0x00001c5e subs r2, r6, r4 | r2 = r6 - r4;
0x00001c60 adds r1, r7, r4 | r1 = r7 + r4;
0x00001c62 movs r3, 0 | r3 = 0;
0x00001c64 mov r0, r8 | r0 = r8;
0x00001c66 blx 0x129c | r0 = fcn_0000129c ();
0x00001c6a subs r5, r0, 0 | r5 = r0 - 0;
0x00001c6c add r4, r5 | r4 += r5;
0x00001c6e bge 0x1c5a |
| }
0x00001c70 ldr r0, [pc, 0xdc] |
0x00001c72 add r0, pc | r0 = 0x39c6;
0x00001c74 blx 0x10a8 | g_path_get_basename ();
0x00001c78 ldr r3, [pc, 0xd8] | r3 = *(0x1d54);
0x00001c7a mov r4, r0 | r4 = r0;
0x00001c7c ldr r2, [pc, 0xd8] |
0x00001c7e movs r1, 1 | r1 = 1;
0x00001c80 ldr.w r6, [sb, r3] | r6 = *((sb + r3));
0x00001c84 ldr r3, [pc, 0xd4] |
0x00001c86 add r2, pc | r2 = 0x39e2;
0x00001c88 ldr r0, [r6] | r0 = *(r6);
0x00001c8a add r3, pc | r3 = 0x39ea;
0x00001c8c adds r3, 0x38 | r3 += 0x38;
0x00001c8e str r3, [sp] | *(sp) = r3;
0x00001c90 mov.w r3, 0x134 | r3 = 0x134;
0x00001c94 str r3, [sp, 4] | var_4h = r3;
0x00001c96 mov r3, r4 | r3 = r4;
0x00001c98 blx 0x10f0 | fprintf_chk ()
0x00001c9c ldr r2, [pc, 0xc0] |
0x00001c9e mov r3, r8 | r3 = r8;
0x00001ca0 ldr r0, [r6] | r0 = *(r6);
0x00001ca2 movs r1, 1 | r1 = 1;
0x00001ca4 str r5, [sp] | *(sp) = r5;
0x00001ca6 add r2, pc | r2 = 0x3a0a;
0x00001ca8 blx 0x10f0 | fprintf_chk ()
0x00001cac mov r0, r4 | r0 = r4;
0x00001cae add sp, 0x14 |
0x00001cb0 pop.w {r4, r5, r6, r7, r8, sb, lr} |
0x00001cb4 b.w 0x1198 | void (*0x1198)() ();
| label_2:
0x00001cb8 blx 0x109c | r0 = get_debug_level ();
| if (r0 == 0) {
0x00001cbc cbnz r0, 0x1d06 |
0x00001cbe add sp, 0x14 |
0x00001cc0 pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_1:
0x00001cc4 ldr r0, [pc, 0x9c] |
0x00001cc6 add r0, pc | r0 = 0x3a2e;
0x00001cc8 blx 0x10a8 | g_path_get_basename ();
0x00001ccc ldr r3, [pc, 0x98] | r3 = *(0x1d68);
0x00001cce mov r4, r0 | r4 = r0;
0x00001cd0 ldr r2, [pc, 0x98] |
0x00001cd2 movs r1, 1 | r1 = 1;
0x00001cd4 ldr.w r5, [sb, r3] | r5 = *((sb + r3));
0x00001cd8 ldr r3, [pc, 0x94] |
0x00001cda add r2, pc | r2 = 0x3a4a;
0x00001cdc add r3, pc | r3 = 0x3a50;
0x00001cde adds r3, 0x38 | r3 += 0x38;
0x00001ce0 str r3, [sp] | *(sp) = r3;
0x00001ce2 mov.w r3, 0x12c | r3 = 0x12c;
0x00001ce6 ldr r0, [r5] | r0 = *(r5);
0x00001ce8 str r3, [sp, 4] | var_4h = r3;
0x00001cea mov r3, r4 | r3 = r4;
0x00001cec blx 0x10f0 | fprintf_chk ()
0x00001cf0 ldr r2, [pc, 0x80] |
0x00001cf2 mov r3, r6 | r3 = r6;
0x00001cf4 ldr r0, [r5] | r0 = *(r5);
0x00001cf6 movs r1, 1 | r1 = 1;
0x00001cf8 add r2, pc | r2 = 0x3a70;
0x00001cfa blx 0x10f0 | fprintf_chk ()
0x00001cfe mov r0, r4 | r0 = r4;
0x00001d00 blx 0x119c | fcn_0000119c ();
0x00001d04 b 0x1c54 | goto label_0;
| }
0x00001d06 ldr r0, [pc, 0x70] |
0x00001d08 add r0, pc | r0 = 0x3a86;
0x00001d0a blx 0x10a8 | g_path_get_basename ();
0x00001d0e ldr r3, [pc, 0x58] | r3 = *(0x1d6a);
0x00001d10 movw r2, 0x13b | r2 = 0x13b;
0x00001d14 ldr r1, [pc, 0x64] |
0x00001d16 mov r4, r0 | r4 = r0;
0x00001d18 ldr.w r5, [sb, r3] | r5 = *((sb + r3));
0x00001d1c mov r3, r0 | r3 = r0;
0x00001d1e str r2, [sp, 4] | var_4h = r2;
0x00001d20 add r1, pc | r1 = 0x3aa0;
0x00001d22 ldr r2, [pc, 0x5c] |
0x00001d24 adds r1, 0x38 | r1 += 0x38;
0x00001d26 str r1, [sp] | *(sp) = r1;
0x00001d28 movs r1, 1 | r1 = 1;
0x00001d2a ldr r0, [r5] | r0 = *(r5);
0x00001d2c add r2, pc | r2 = 0x3ab2;
0x00001d2e blx 0x10f0 | fprintf_chk ()
0x00001d32 ldr r2, [pc, 0x50] |
0x00001d34 mov r3, r6 | r3 = r6;
0x00001d36 ldr r0, [r5] | r0 = *(r5);
0x00001d38 movs r1, 1 | r1 = 1;
0x00001d3a add r2, pc | r2 = 0x3ac4;
0x00001d3c blx 0x10f0 | fprintf_chk ()
0x00001d40 mov r0, r4 | r0 = r4;
0x00001d42 add sp, 0x14 |
0x00001d44 pop.w {r4, r5, r6, r7, r8, sb, lr} |
0x00001d48 b.w 0x1198 | return void (*0x1198)() ();
| }
[*] Function printf used 8 times libloggen_ssl_plugin.so