[*] Binary protection state of eventconsumerd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of eventconsumerd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/eventconsumerd @ 0x5d5c */
| #include <stdint.h>
|
; (fcn) fcn.00005d5c () | void fcn_00005d5c () {
0x00005d5c lui gp, 2 |
0x00005d60 addiu gp, gp, -0x3d4c |
0x00005d64 addu gp, gp, t9 | gp += t9;
0x00005d68 addiu sp, sp, -0x38 |
0x00005d6c sw s0, 0x28(sp) | *(var_28h) = s0;
0x00005d70 lw s0, -0x7e40(gp) | s0 = *((gp - 8080));
0x00005d74 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00005d78 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00005d7c lw v0, (s0) | v0 = *(s0);
0x00005d80 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00005d84 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00005d88 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00005d8c sw zero, 0x20(sp) | *(var_20h) = 0;
| if (a0 != 0) {
0x00005d90 beqz a0, 0x5e54 |
0x00005d94 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| if (a1 == 0) {
0x00005d98 beqz a1, 0x5e7c | goto label_0;
| }
0x00005d9c move s1, a0 | s1 = a0;
| if (a2 == 0) {
0x00005da0 beqz a2, 0x5ea4 | goto label_1;
| }
0x00005da4 lw a0, -0x7fd4(gp) | a0 = *((gp - 8181));
0x00005da8 lw t9, -0x7dd0(gp) | t9 = sym.imp.g_strdup_printf
0x00005dac addiu a0, a0, -0x6c78 | a0 += -0x6c78;
0x00005db0 jalr t9 | t9 ();
0x00005db4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005db8 move a0, s1 | a0 = s1;
0x00005dbc addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x00005dc0 lw t9, -0x7dc8(gp) | t9 = sym.imp.apac_check_auth;
0x00005dc4 move a1, v0 | a1 = v0;
0x00005dc8 move s2, v0 | s2 = v0;
0x00005dcc jalr t9 | t9 ();
0x00005dd0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005dd4 move a0, s2 | a0 = s2;
0x00005dd8 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x00005ddc move s1, v0 | s1 = v0;
0x00005de0 jalr t9 | t9 ();
0x00005de4 lw v1, 0x20(sp) | v1 = *(var_20h);
0x00005de8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != 0) {
0x00005dec beqz v1, 0x5e2c |
0x00005df0 lw v0, 8(v1) | v0 = *((v1 + 2));
0x00005df4 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00005df8 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x00005dfc lw t9, -0x7f48(gp) | t9 = sym.imp.g_log;
0x00005e00 addiu a3, a3, -0x6ef8 | a3 += -0x6ef8;
0x00005e04 addiu a2, a2, -0x6c70 | a2 += -0x6c70;
0x00005e08 addiu a1, zero, 0x10 | a1 = 0x10;
0x00005e0c move a0, zero | a0 = 0;
0x00005e10 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00005e14 jalr t9 | t9 ();
0x00005e18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005e1c lw t9, -0x7efc(gp) | t9 = sym.imp.g_error_free;
0x00005e20 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00005e24 jalr t9 | t9 ();
0x00005e28 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00005e2c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00005e30 lw v1, (s0) | v1 = *(s0);
0x00005e34 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00005e38 bne a0, v1, 0x5ed0 | goto label_2;
| }
0x00005e3c lw ra, 0x34(sp) | ra = *(var_34h);
0x00005e40 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00005e44 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00005e48 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00005e4c addiu sp, sp, 0x38 |
0x00005e50 jr ra | return v0;
| }
0x00005e54 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00005e58 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00005e5c lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00005e60 addiu v0, v0, -0x6cb4 | v0 += -0x6cb4;
0x00005e64 lw t9, -0x7db0(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00005e68 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00005e6c addiu a3, a3, -0x6820 | a3 += -0x6820;
0x00005e70 addiu a2, zero, 0x85 | a2 = 0x85;
0x00005e74 addiu a1, a1, -0x6cc8 | a1 += -0x6cc8;
0x00005e78 jalr t9 | t9 ();
| label_0:
0x00005e7c lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00005e80 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00005e84 addiu v0, v0, -0x6ca4 | v0 += -0x6ca4;
0x00005e88 lw t9, -0x7db0(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00005e8c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00005e90 addiu a3, a3, -0x6820 | a3 += -0x6820;
0x00005e94 addiu a2, zero, 0x86 | a2 = 0x86;
0x00005e98 addiu a1, a1, -0x6cc8 | a1 += -0x6cc8;
0x00005e9c move a0, zero | a0 = 0;
0x00005ea0 jalr t9 | t9 ();
| label_1:
0x00005ea4 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00005ea8 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00005eac lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00005eb0 addiu v0, v0, -0x6c8c | v0 += -0x6c8c;
0x00005eb4 lw t9, -0x7db0(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00005eb8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00005ebc addiu a3, a3, -0x6820 | a3 += -0x6820;
0x00005ec0 addiu a2, zero, 0x87 | a2 = 0x87;
0x00005ec4 addiu a1, a1, -0x6cc8 | a1 += -0x6cc8;
0x00005ec8 move a0, zero | a0 = 0;
0x00005ecc jalr t9 | t9 ();
| label_2:
0x00005ed0 lw t9, -0x7e88(gp) | t9 = sym.imp.__stack_chk_fail;
0x00005ed4 jalr t9 | t9 ();
0x00005ed8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/eventconsumerd @ 0x8180 */
| #include <stdint.h>
|
; (fcn) sym.validate_keys_type () | void validate_keys_type () {
0x00008180 lui gp, 2 |
0x00008184 addiu gp, gp, -0x6170 |
0x00008188 addu gp, gp, t9 | gp += t9;
0x0000818c addiu sp, sp, -0x88 |
0x00008190 lw t9, -0x7e44(gp) | t9 = sym.imp.g_variant_iter_init;
0x00008194 sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x00008198 lw s5, -0x7e40(gp) | s5 = *((gp - 8080));
0x0000819c sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x000081a0 addiu s1, sp, 0x24 | s1 = sp + 0x24;
0x000081a4 lw v0, (s5) | v0 = *(s5);
0x000081a8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000081ac sw s6, 0x80(sp) | *(var_80h) = s6;
0x000081b0 sw s4, 0x78(sp) | *(var_78h) = s4;
0x000081b4 sw s3, 0x74(sp) | *(var_74h) = s3;
0x000081b8 sw s2, 0x70(sp) | *(var_70h) = s2;
0x000081bc sw s0, 0x68(sp) | *(var_68h) = s0;
0x000081c0 sw ra, 0x84(sp) | *(var_84h) = ra;
0x000081c4 move s4, a1 | s4 = a1;
0x000081c8 sw v0, 0x64(sp) | *(var_64h) = v0;
0x000081cc move a1, a0 | a1 = a0;
0x000081d0 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x000081d4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000081d8 move a0, s1 | a0 = s1;
0x000081dc jalr t9 | t9 ();
0x000081e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000081e4 addiu s6, sp, 0x20 | s6 = sp + 0x20;
0x000081e8 addiu s2, sp, 0x1c | s2 = sp + 0x1c;
0x000081ec lw s0, -0x7fd4(gp) | s0 = *((gp - 8181));
0x000081f0 lw s3, -0x7f84(gp) | s3 = sym.value_type_from_value_type_string;
0x000081f4 addiu s0, s0, -0x6a70 | s0 += -0x6a70;
| do {
0x000081f8 lw t9, -0x7dac(gp) | t9 = sym.imp.g_variant_iter_next;
0x000081fc move a3, s6 | a3 = s6;
0x00008200 move a2, s2 | a2 = s2;
0x00008204 move a1, s0 | a1 = s0;
0x00008208 move a0, s1 | a0 = s1;
0x0000820c jalr t9 | t9 ();
0x00008210 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00008214 beqz v0, 0x82d4 | goto label_0;
| }
0x00008218 move t9, s3 | t9 = s3;
0x0000821c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00008220 bal 0x7b9c | sym_value_type_from_value_type_string ();
0x00008224 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00008228 beqz v0, 0x8258 | goto label_1;
| }
0x0000822c lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x00008230 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00008234 jalr t9 | t9 ();
0x00008238 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000823c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00008240 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x00008244 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00008248 jalr t9 | t9 ();
0x0000824c lw gp, 0x10(sp) | gp = *(var_10h);
0x00008250 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00008254 b 0x81f8 |
| } while (1);
| label_1:
0x00008258 lw a0, -0x7fd4(gp) | a0 = *((gp - 8181));
0x0000825c lw t9, -0x7dd0(gp) | t9 = sym.imp.g_strdup_printf
0x00008260 lw a2, 0x1c(sp) | a2 = *(var_1ch);
0x00008264 lw a1, 0x20(sp) | a1 = *(var_20h);
0x00008268 addiu a0, a0, -0x6784 | a0 += -0x6784;
0x0000826c jalr t9 | t9 ();
0x00008270 lw gp, 0x10(sp) | gp = *(var_10h);
0x00008274 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00008278 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x0000827c sw v0, (s4) | *(s4) = v0;
0x00008280 jalr t9 | t9 ();
0x00008284 lw gp, 0x10(sp) | gp = *(var_10h);
0x00008288 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0000828c lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x00008290 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00008294 jalr t9 | t9 ();
0x00008298 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000829c move v0, zero | v0 = 0;
| do {
0x000082a0 lw a0, 0x64(sp) | a0 = *(var_64h);
0x000082a4 lw v1, (s5) | v1 = *(s5);
0x000082a8 lw ra, 0x84(sp) | ra = *(var_84h);
| if (a0 != v1) {
0x000082ac bne a0, v1, 0x82dc | goto label_2;
| }
0x000082b0 lw s6, 0x80(sp) | s6 = *(var_80h);
0x000082b4 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x000082b8 lw s4, 0x78(sp) | s4 = *(var_78h);
0x000082bc lw s3, 0x74(sp) | s3 = *(var_74h);
0x000082c0 lw s2, 0x70(sp) | s2 = *(var_70h);
0x000082c4 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x000082c8 lw s0, 0x68(sp) | s0 = *(var_68h);
0x000082cc addiu sp, sp, 0x88 |
0x000082d0 jr ra | return v0;
| label_0:
0x000082d4 addiu v0, zero, 1 | v0 = 1;
0x000082d8 b 0x82a0 |
| } while (1);
| label_2:
0x000082dc lw t9, -0x7e88(gp) | t9 = sym.imp.__stack_chk_fail;
0x000082e0 jalr t9 | t9 ();
0x000082e4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/eventconsumerd @ 0x82e8 */
| #include <stdint.h>
|
; (fcn) sym.validate_tags () | void validate_tags () {
0x000082e8 lui gp, 2 |
0x000082ec addiu gp, gp, -0x62d8 |
0x000082f0 addu gp, gp, t9 | gp += t9;
0x000082f4 addiu sp, sp, -0x90 |
0x000082f8 lw t9, -0x7e44(gp) | t9 = sym.imp.g_variant_iter_init;
0x000082fc sw s4, 0x7c(sp) | *(var_7ch) = s4;
0x00008300 lw s4, -0x7e40(gp) | s4 = *((gp - 8080));
0x00008304 sw s1, 0x70(sp) | *(var_70h) = s1;
0x00008308 addiu s1, sp, 0x24 | s1 = sp + 0x24;
0x0000830c lw v0, (s4) | v0 = *(s4);
0x00008310 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00008314 sw s7, 0x88(sp) | *(var_88h) = s7;
0x00008318 sw s6, 0x84(sp) | *(var_84h) = s6;
0x0000831c sw s5, 0x80(sp) | *(var_80h) = s5;
0x00008320 sw s3, 0x78(sp) | *(var_78h) = s3;
0x00008324 sw s2, 0x74(sp) | *(var_74h) = s2;
0x00008328 sw s0, 0x6c(sp) | *(var_6ch) = s0;
0x0000832c sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x00008330 move s3, a1 | s3 = a1;
0x00008334 sw v0, 0x64(sp) | *(var_64h) = v0;
0x00008338 move a1, a0 | a1 = a0;
0x0000833c sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00008340 move a0, s1 | a0 = s1;
0x00008344 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00008348 move s5, a2 | s5 = a2;
0x0000834c jalr t9 | t9 ();
0x00008350 lw gp, 0x10(sp) | gp = *(var_10h);
0x00008354 addiu s7, sp, 0x20 | s7 = sp + 0x20;
0x00008358 addiu s6, sp, 0x1c | s6 = sp + 0x1c;
0x0000835c lw s0, -0x7fd4(gp) | s0 = *((gp - 8181));
0x00008360 lw s2, -0x7f94(gp) | s2 = sym.string_for_key;
0x00008364 addiu s0, s0, -0x6a68 | s0 += -0x6a68;
| do {
0x00008368 lw t9, -0x7dac(gp) | t9 = sym.imp.g_variant_iter_next;
0x0000836c move a3, s7 | a3 = s7;
0x00008370 move a2, s6 | a2 = s6;
0x00008374 move a1, s0 | a1 = s0;
0x00008378 move a0, s1 | a0 = s1;
0x0000837c jalr t9 | t9 ();
0x00008380 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00008384 beqz v0, 0x845c | goto label_0;
| }
0x00008388 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x0000838c move t9, s2 | t9 = s2;
0x00008390 move a1, s3 | a1 = s3;
0x00008394 bal 0x78f0 | sym_string_for_key ();
0x00008398 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0000839c beqz v0, 0x83d4 | goto label_1;
| }
0x000083a0 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x000083a4 move a0, v0 | a0 = v0;
0x000083a8 jalr t9 | t9 ();
0x000083ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000083b0 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x000083b4 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x000083b8 jalr t9 | t9 ();
0x000083bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000083c0 lw t9, -0x7e98(gp) | t9 = sym.imp.g_variant_unref;
0x000083c4 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000083c8 jalr t9 | t9 ();
0x000083cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000083d0 b 0x8368 |
| } while (1);
| label_1:
0x000083d4 lw a0, -0x7fd4(gp) | a0 = *((gp - 8181));
0x000083d8 lw a1, 0x1c(sp) | a1 = *(var_1ch);
0x000083dc lw t9, -0x7dd0(gp) | t9 = sym.imp.g_strdup_printf
0x000083e0 addiu a0, a0, -0x6760 | a0 += -0x6760;
0x000083e4 jalr t9 | t9 ();
0x000083e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000083ec sw v0, (s5) | *(s5) = v0;
0x000083f0 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x000083f4 move a0, zero | a0 = 0;
0x000083f8 jalr t9 | t9 ();
0x000083fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00008400 lw t9, -0x7ccc(gp) | t9 = *((gp - 7987));
0x00008404 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00008408 jalr t9 | t9 ();
0x0000840c lw gp, 0x10(sp) | gp = *(var_10h);
0x00008410 lw t9, -0x7e98(gp) | t9 = sym.imp.g_variant_unref;
0x00008414 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00008418 jalr t9 | t9 ();
0x0000841c lw gp, 0x10(sp) | gp = *(var_10h);
0x00008420 move v0, zero | v0 = 0;
| do {
0x00008424 lw a0, 0x64(sp) | a0 = *(var_64h);
0x00008428 lw v1, (s4) | v1 = *(s4);
0x0000842c lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (a0 != v1) {
0x00008430 bne a0, v1, 0x8464 | goto label_2;
| }
0x00008434 lw s7, 0x88(sp) | s7 = *(var_88h);
0x00008438 lw s6, 0x84(sp) | s6 = *(var_84h);
0x0000843c lw s5, 0x80(sp) | s5 = *(var_80h);
0x00008440 lw s4, 0x7c(sp) | s4 = *(var_7ch);
0x00008444 lw s3, 0x78(sp) | s3 = *(var_78h);
0x00008448 lw s2, 0x74(sp) | s2 = *(var_74h);
0x0000844c lw s1, 0x70(sp) | s1 = *(var_70h);
0x00008450 lw s0, 0x6c(sp) | s0 = *(var_6ch);
0x00008454 addiu sp, sp, 0x90 |
0x00008458 jr ra | return v0;
| label_0:
0x0000845c addiu v0, zero, 1 | v0 = 1;
0x00008460 b 0x8424 |
| } while (1);
| label_2:
0x00008464 lw t9, -0x7e88(gp) | t9 = sym.imp.__stack_chk_fail;
0x00008468 jalr t9 | t9 ();
0x0000846c nop |
| }
[*] Function printf used 4 times eventconsumerd