[*] 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