[*] Binary protection state of dmonitord
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dmonitord
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/dmonitord @ 0x3650 */
| #include <stdint.h>
|
; (fcn) sym.dbus_connect () | void dbus_connect () {
0x00003650 lui gp, 2 |
0x00003654 addiu gp, gp, -0x2640 |
0x00003658 addu gp, gp, t9 | gp += t9;
0x0000365c addiu sp, sp, -0x40 |
0x00003660 lw t9, -0x7eec(gp) | t9 = sym.imp.dbus_error_init;
0x00003664 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00003668 lw s2, -0x7ecc(gp) | s2 = *((gp - 8115));
0x0000366c sw s0, 0x30(sp) | *(var_30h) = s0;
0x00003670 addiu s0, sp, 0x1c | s0 = sp + 0x1c;
0x00003674 lw v0, (s2) | v0 = *(s2);
0x00003678 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0000367c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00003680 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00003684 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00003688 move s1, a0 | s1 = a0;
0x0000368c move a0, s0 | a0 = s0;
0x00003690 jalr t9 | t9 ();
0x00003694 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003698 move a0, s1 | a0 = s1;
0x0000369c lw t9, -0x7ebc(gp) | t9 = sym.imp.dbus_bus_get_private;
0x000036a0 move a1, s0 | a1 = s0;
0x000036a4 jalr t9 | t9 ();
0x000036a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000036ac move a0, s0 | a0 = s0;
0x000036b0 lw t9, -0x7f18(gp) | t9 = sym.imp.dbus_error_is_set;
0x000036b4 move s1, v0 | s1 = v0;
0x000036b8 jalr t9 | t9 ();
0x000036bc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000036c0 bnez v0, 0x371c | goto label_1;
| }
| if (s1 == 0) {
0x000036c4 beql s1, zero, 0x36f4 | goto label_0;
| }
0x000036c8 lw s1, -0x7ea0(gp) | s1 = *((gp - 8104));
| do {
0x000036cc lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x000036d0 lw v1, (s2) | v1 = *(s2);
0x000036d4 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x000036d8 bne a0, v1, 0x3754 | goto label_2;
| }
0x000036dc lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000036e0 lw s2, 0x38(sp) | s2 = *(var_38h);
0x000036e4 lw s1, 0x34(sp) | s1 = *(var_34h);
0x000036e8 lw s0, 0x30(sp) | s0 = *(var_30h);
0x000036ec addiu sp, sp, 0x40 |
0x000036f0 jr ra | return v0;
| label_0:
0x000036f4 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000036f8 lw t9, -0x7ee0(gp) | t9 = sym.imp.fwrite;
0x000036fc lw a3, (s1) | a3 = *(s1);
0x00003700 addiu a2, zero, 0x16 | a2 = 0x16;
0x00003704 addiu a1, zero, 1 | a1 = 1;
0x00003708 addiu a0, a0, 0x762c | a0 += str.dbus_connection_error_n;
0x0000370c jalr t9 | t9 ();
0x00003710 move s1, zero | s1 = 0;
0x00003714 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003718 b 0x36cc |
| } while (1);
| label_1:
0x0000371c lw s1, -0x7ea0(gp) | s1 = *((gp - 8104));
0x00003720 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00003724 lw t9, -0x7e18(gp) | t9 = sym.imp.__fprintf_chk
0x00003728 lw a3, 0x20(sp) | a3 = *(var_20h);
0x0000372c lw a0, (s1) | a0 = *(s1);
0x00003730 addiu a2, a2, 0x7610 | a2 += str.dbus_connection_error___s__n;
0x00003734 addiu a1, zero, 1 | a1 = 1;
0x00003738 jalr t9 | t9 ();
0x0000373c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003740 lw t9, -0x7f1c(gp) | t9 = sym.imp.dbus_error_free;
0x00003744 move a0, s0 | a0 = s0;
0x00003748 jalr t9 | t9 ();
0x0000374c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003750 b 0x36f4 | goto label_0;
| label_2:
0x00003754 lw t9, -0x7ee8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00003758 jalr t9 | t9 ();
0x0000375c nop |
| }
[*] Function fprintf used 2 times dmonitord