[*] Binary protection state of netd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of netd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/netd @ 0x42844 */
| #include <stdint.h>
|
; (fcn) fcn.00042844 () | void fcn_00042844 () {
0x00042844 lui gp, 5 |
0x00042848 addiu gp, gp, 0x53fc |
0x0004284c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00042850 beqz a0, 0x429bc | goto label_1;
| }
0x00042854 nop |
0x00042858 addiu sp, sp, -0x40 |
0x0004285c sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00042860 sw s2, 0x24(sp) | *(var_24h_2) = s2;
0x00042864 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00042868 lw s2, -0x7bf4(gp) | s2 = *((gp - 7933));
0x0004286c lw s1, -0x7bf4(gp) | s1 = *((gp - 7933));
0x00042870 lw s4, -0x7bf4(gp) | s4 = *((gp - 7933));
0x00042874 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00042878 sw s6, 0x34(sp) | *(var_34h) = s6;
0x0004287c sw s3, 0x28(sp) | *(var_28h) = s3;
0x00042880 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00042884 sw s7, 0x38(sp) | *(var_38h) = s7;
0x00042888 sw s5, 0x30(sp) | *(var_30h) = s5;
0x0004288c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00042890 move s6, a0 | s6 = a0;
| /* esilref: '&s&' */
0x00042894 addiu s2, s2, -0x60ec | s2 += -0x60ec;
| /* esilref: '&s' */
0x00042898 addiu s1, s1, -0x60e8 | s1 += -0x60e8;
0x0004289c addiu s3, zero, 2 | s3 = 2;
| /* str.Setter:__s_returned_non_zero_exit_code:__d */
0x000428a0 addiu s4, s4, -0x60c8 | s4 += -0x60c8;
0x000428a4 b 0x428b0 |
| while (s5 == 0) {
0x000428a8 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (s6 == 0) {
0x000428ac beqz s6, 0x42958 | goto label_2;
| }
| label_0:
0x000428b0 lw s0, (s6) | s0 = *(s6);
0x000428b4 lw t9, -0x7680(gp) | t9 = sym.imp.g_strdup_printf;
0x000428b8 move a1, s0 | a1 = s0;
0x000428bc move a0, s2 | a0 = s2;
0x000428c0 jalr t9 | t9 ();
0x000428c4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428c8 move a2, s0 | a2 = s0;
0x000428cc move a1, s1 | a1 = s1;
0x000428d0 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000428d4 addiu a0, zero, 1 | a0 = 1;
0x000428d8 move s7, v0 | s7 = v0;
0x000428dc bal 0x434d0 | sym_netd_log_esc ();
0x000428e0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428e4 lw t9, -0x7594(gp) | t9 = sym.imp.system
0x000428e8 move a0, s7 | a0 = s7;
0x000428ec jalr t9 | t9 ();
0x000428f0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000428f4 move s5, v0 | s5 = v0;
0x000428f8 lw t9, -0x748c(gp) | t9 = *((gp - 7459));
0x000428fc move a0, s7 | a0 = s7;
0x00042900 jalr t9 | t9 ();
0x00042904 andi v1, s5, 0x7f | v1 = s5 & 0x7f;
0x00042908 addiu v1, v1, 1 | v1++;
0x0004290c seb v1, v1 | __asm ("seb v1, v1");
0x00042910 sra v1, v1, 1 | v1 >>= 1;
0x00042914 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00042918 andi v0, s5, 0x7e | v0 = s5 & 0x7e;
| if (v1 > 0) {
0x0004291c blez v1, 0x42928 |
0x00042920 lw a1, -0x7bf4(gp) | a1 = *((gp - 7933));
| if (v0 == s3) {
0x00042924 beq v0, s3, 0x42980 | goto label_3;
| }
| }
0x00042928 beql s5, zero, 0x428a8 |
| }
0x0004292c lw s6, 4(s6) | s6 = *((s6 + 1));
0x00042930 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x00042934 move a3, s5 | a3 = s5;
0x00042938 move a2, s0 | a2 = s0;
0x0004293c move a1, s4 | a1 = s4;
0x00042940 addiu a0, zero, 3 | a0 = 3;
0x00042944 bal 0x434d0 | sym_netd_log_esc ();
0x00042948 lw s6, 4(s6) | s6 = *((s6 + 1));
0x0004294c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s6 != 0) {
0x00042950 bnez s6, 0x428b0 | goto label_0;
| }
0x00042954 lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_2:
0x00042958 lw s7, 0x38(sp) | s7 = *(var_38h);
0x0004295c lw s6, 0x34(sp) | s6 = *(var_34h);
0x00042960 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00042964 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00042968 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0004296c lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x00042970 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00042974 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00042978 addiu sp, sp, 0x40 |
0x0004297c jr ra | return v0;
| label_3:
0x00042980 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00042984 lw s7, 0x38(sp) | s7 = *(var_38h);
0x00042988 lw s6, 0x34(sp) | s6 = *(var_34h);
0x0004298c lw s5, 0x30(sp) | s5 = *(var_30h);
0x00042990 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00042994 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00042998 lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x0004299c lw s1, 0x20(sp) | s1 = *(var_20h);
0x000429a0 move a2, s0 | a2 = s0;
0x000429a4 lw t9, -0x7fdc(gp) | t9 = sym.netd_log_esc;
0x000429a8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
| /* str.setter__s_was_interrupted */
0x000429ac addiu a1, a1, -0x60e4 | a1 += -0x60e4;
0x000429b0 addiu a0, zero, 2 | a0 = 2;
0x000429b4 addiu sp, sp, 0x40 |
0x000429b8 b 0x434d0 | void (*0x434d0)() ();
| label_1:
0x000429bc jr ra | return v0;
0x000429c0 nop |
| }
[*] Function system used 2 times netd