[*] Binary protection state of sadc

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function sprintf tear down of sadc

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x93ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.read_if_info ()          | void read_if_info () {
    0x000093ec lui gp, 2                 |     
    0x000093f0 addiu gp, gp, 0x2754      |     
    0x000093f4 addu gp, gp, t9           |     gp += t9;
    0x000093f8 lw v0, -0x7cf4(gp)        |     v0 = *((gp - 7997));
    0x000093fc addiu sp, sp, -0x100      |     
    0x00009400 sw v0, 0x2c(sp)           |     *(var_2ch_2) = v0;
    0x00009404 lw v0, (v0)               |     v0 = *(v0);
    0x00009408 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x0000940c sw ra, 0xfc(sp)           |     *(var_fch) = ra;
    0x00009410 sw fp, 0xf8(sp)           |     *(var_f8h) = fp;
    0x00009414 sw s7, 0xf4(sp)           |     *(var_f4h) = s7;
    0x00009418 sw s6, 0xf0(sp)           |     *(var_f0h) = s6;
    0x0000941c sw s5, 0xec(sp)           |     *(var_ech) = s5;
    0x00009420 sw s4, 0xe8(sp)           |     *(var_e8h) = s4;
    0x00009424 sw s3, 0xe4(sp)           |     *(var_e4h) = s3;
    0x00009428 sw s2, 0xe0(sp)           |     *(var_e0h) = s2;
    0x0000942c sw s1, 0xdc(sp)           |     *(var_dch) = s1;
    0x00009430 sw s0, 0xd8(sp)           |     *(var_d8h) = s0;
    0x00009434 sw v0, 0xd4(sp)           |     *(var_d4h) = v0;
    0x00009438 lw v0, -0x7fd0(gp)        |     v0 = sym.imp.strspn;
                                         |     if (a1 <= 0) {
    0x0000943c blez a1, 0x95c8           |         goto label_3;
                                         |     }
    0x00009440 sll s2, a1, 2             |     s2 = a1 << 2;
    0x00009444 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00009448 lw v0, -0x7fd0(gp)        |     v0 = sym.imp.strspn;
    0x0000944c addu s2, s2, a1           |     s2 += a1;
    0x00009450 sw v0, 0x28(sp)           |     *(var_28h_3) = v0;
    0x00009454 lw v0, -0x7fd0(gp)        |     v0 = sym.imp.strspn;
    0x00009458 lw s6, -0x7fd0(gp)        |     s6 = sym.imp.strspn;
    0x0000945c lw s7, -0x7fd0(gp)        |     s7 = sym.imp.strspn;
    0x00009460 addiu s0, a0, 0x3c        |     s0 = a0 + 0x3c;
    0x00009464 sll s2, s2, 4             |     s2 <<= 4;
                                         |     /* esilref: '&u' */
    0x00009468 addiu v0, v0, 0x8f4       |     v0 += 0x8f4;
    0x0000946c lw s5, -0x7fd0(gp)        |     s5 = sym.imp.strspn;
    0x00009470 lw s4, -0x7fd0(gp)        |     s4 = sym.imp.strspn;
    0x00009474 addu s2, s0, s2           |     s2 = s0 + s2;
    0x00009478 addiu fp, sp, 0x54        |     fp = sp + 0x54;
                                         |     /* str._31s */
    0x0000947c addiu s6, s6, 0x9f8       |     s6 += 0x9f8;
                                         |     /* str.full */
    0x00009480 addiu s7, s7, 0xa00       |     s7 += 0xa00;
    0x00009484 sw v0, 0x24(sp)           |     *(var_24h_2) = v0;
    0x00009488 b 0x9518                  |     goto label_4;
                                         | label_1:
    0x0000948c addiu v0, zero, 2         |     v0 = 2;
    0x00009490 sb v0, 0x10(s0)           |     *((s0 + 16)) = v0;
                                         | label_2:
    0x00009494 lw v0, 0x20(sp)           |     v0 = *(var_20h);
    0x00009498 lw t9, -0x7dcc(gp)        |     t9 = sym.imp.__sprintf_chk
    0x0000949c addiu a3, v0, 0xa10       |     a3 = v0 + 0xa10;
    0x000094a0 addiu a2, zero, 0x80      |     a2 = 0x80;
    0x000094a4 addiu a1, zero, 1         |     a1 = 1;
    0x000094a8 move a0, fp               |     a0 = fp;
    0x000094ac sw s0, 0x10(sp)           |     *(var_10h_5) = s0;
    0x000094b0 jalr t9                   |     t9 ();
    0x000094b4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000094b8 addiu a1, s4, 0x1490      |     a1 = s4 + 0x1490;
    0x000094bc lw t9, -0x7ce4(gp)        |     t9 = sym.imp.fopen;
    0x000094c0 move a0, fp               |     a0 = fp;
    0x000094c4 jalr t9                   |     t9 ();
    0x000094c8 move s1, v0               |     s1 = v0;
    0x000094cc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000094d0 beqz v0, 0x950c           |         goto label_0;
                                         |     }
    0x000094d4 lw t9, -0x7cdc(gp)        |     t9 = sym.imp.__isoc99_fscanf;
    0x000094d8 lw a1, 0x24(sp)           |     a1 = *(var_24h_2);
    0x000094dc addiu a2, s0, -4          |     a2 = s0 + -4;
    0x000094e0 move a0, v0               |     a0 = v0;
    0x000094e4 jalr t9                   |     t9 ();
    0x000094e8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000094ec move a0, s1               |     a0 = s1;
    0x000094f0 lw t9, -0x7d94(gp)        |     t9 = sym.imp.fclose;
    0x000094f4 move s1, v0               |     s1 = v0;
    0x000094f8 jalr t9                   |     t9 ();
    0x000094fc addiu v0, zero, 1         |     v0 = 1;
    0x00009500 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s1 == v0) {
    0x00009504 beq s1, v0, 0x950c        |         goto label_0;
                                         |     }
    0x00009508 sw zero, -4(s0)           |     *((s0 - 1)) = 0;
                                         |     do {
                                         | label_0:
    0x0000950c addiu s0, s0, 0x50        |         s0 += 0x50;
    0x00009510 lw v0, 0x2c(sp)           |         v0 = *(var_2ch_2);
                                         |         if (s0 == s2) {
    0x00009514 beq s0, s2, 0x95cc        |             goto label_5;
                                         |         }
                                         | label_4:
    0x00009518 lw t9, -0x7dcc(gp)        |         t9 = sym.imp.__sprintf_chk
                                         |         /* str._sys_class_net__s_duplex */
    0x0000951c addiu a3, s5, 0x9dc       |         a3 = s5 + 0x9dc;
    0x00009520 addiu a2, zero, 0x80      |         a2 = 0x80;
    0x00009524 addiu a1, zero, 1         |         a1 = 1;
    0x00009528 move a0, fp               |         a0 = fp;
    0x0000952c sw s0, 0x10(sp)           |         *(var_10h_5) = s0;
    0x00009530 jalr t9                   |         t9 ();
    0x00009534 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00009538 addiu a1, s4, 0x1490      |         a1 = s4 + 0x1490;
    0x0000953c lw t9, -0x7ce4(gp)        |         t9 = sym.imp.fopen;
    0x00009540 move a0, fp               |         a0 = fp;
    0x00009544 jalr t9                   |         t9 ();
    0x00009548 move s3, v0               |         s3 = v0;
    0x0000954c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00009550 beqz v0, 0x950c           |         
                                         |     } while (v0 == 0);
    0x00009554 lw t9, -0x7cdc(gp)        |     t9 = sym.imp.__isoc99_fscanf;
    0x00009558 addiu s1, sp, 0x34        |     s1 = sp + 0x34;
    0x0000955c move a2, s1               |     a2 = s1;
    0x00009560 move a1, s6               |     a1 = s6;
    0x00009564 move a0, v0               |     a0 = v0;
    0x00009568 jalr t9                   |     t9 ();
    0x0000956c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009570 move a0, s3               |     a0 = s3;
    0x00009574 lw t9, -0x7d94(gp)        |     t9 = sym.imp.fclose;
    0x00009578 move s3, v0               |     s3 = v0;
    0x0000957c jalr t9                   |     t9 ();
    0x00009580 addiu v0, zero, 1         |     v0 = 1;
    0x00009584 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s3 != v0) {
    0x00009588 bne s3, v0, 0x950c        |         goto label_0;
                                         |     }
    0x0000958c lw t9, -0x7cc4(gp)        |     t9 = sym.imp.strcmp;
    0x00009590 move a1, s7               |     a1 = s7;
    0x00009594 move a0, s1               |     a0 = s1;
    0x00009598 jalr t9                   |     t9 ();
    0x0000959c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000095a0 beqz v0, 0x948c           |         goto label_1;
                                         |     }
    0x000095a4 lw v0, 0x28(sp)           |     v0 = *(var_28h_3);
    0x000095a8 lw t9, -0x7cc4(gp)        |     t9 = sym.imp.strcmp;
    0x000095ac addiu a1, v0, 0xa08       |     a1 = v0 + 0xa08;
    0x000095b0 move a0, s1               |     a0 = s1;
    0x000095b4 jalr t9                   |     t9 ();
    0x000095b8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000095bc bnez v0, 0x950c           |         goto label_0;
                                         |     }
    0x000095c0 sb s3, 0x10(s0)           |     *((s0 + 16)) = s3;
    0x000095c4 b 0x9494                  |     goto label_2;
                                         | label_3:
    0x000095c8 lw v0, 0x2c(sp)           |     v0 = *(var_2ch_2);
                                         | label_5:
    0x000095cc lw v1, 0xd4(sp)           |     v1 = *(var_d4h);
    0x000095d0 lw v0, (v0)               |     v0 = *(v0);
    0x000095d4 lw ra, 0xfc(sp)           |     ra = *(var_fch);
                                         |     if (v1 == v0) {
    0x000095d8 bne v1, v0, 0x9608        |         
    0x000095dc lw fp, 0xf8(sp)           |         fp = *(var_f8h);
    0x000095e0 lw s7, 0xf4(sp)           |         s7 = *(var_f4h);
    0x000095e4 lw s6, 0xf0(sp)           |         s6 = *(var_f0h);
    0x000095e8 lw s5, 0xec(sp)           |         s5 = *(var_ech);
    0x000095ec lw s4, 0xe8(sp)           |         s4 = *(var_e8h);
    0x000095f0 lw s3, 0xe4(sp)           |         s3 = *(var_e4h);
    0x000095f4 lw s2, 0xe0(sp)           |         s2 = *(var_e0h);
    0x000095f8 lw s1, 0xdc(sp)           |         s1 = *(var_dch);
    0x000095fc lw s0, 0xd8(sp)           |         s0 = *(var_d8h);
    0x00009600 addiu sp, sp, 0x100       |         
    0x00009604 jr ra                     |         return v1;
                                         |     }
    0x00009608 lw t9, -0x7d08(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x0000960c jalr t9                   |     t9 ();
    0x00009610 nop                       |     
                                         | }

[*] Function sprintf used 3 times sadc