[*] Binary protection state of sadc
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf 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 printf used 3 times sadc