[*] Binary protection state of libssl.so.1.1
Full RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function popen tear down of libssl.so.1.1
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libssl.so.1.1 @ 0xf0a4 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x0000f0a4 lui gp, 8 |
0x0000f0a8 addiu gp, gp, 0x22fc |
0x0000f0ac addu gp, gp, t9 | gp += t9;
0x0000f0b0 addiu sp, sp, -0x20 |
0x0000f0b4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0000f0b8 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0000f0bc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0000f0c0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0000f0c4 lbu v0, -0x5dd0(s0) | v0 = *((s0 - 24016));
0x0000f0c8 lw v0, -0x7498(gp) | v0 = *((gp - 7462));
| if (v0 == 0) {
0x0000f0cc bnez v0, 0xf100 |
0x0000f0d0 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x0000f0d4 beqz v0, 0xf0e8 |
0x0000f0d8 lw t9, -0x7498(gp) | t9 = *((gp - 7462));
0x0000f0dc lw a0, (v0) | a0 = *(v0);
0x0000f0e0 jalr t9 | t9 ();
0x0000f0e4 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0000f0e8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000f0ec addiu t9, t9, -0xfe0 | t9 += -0xfe0;
0x0000f0f0 bal 0xf020 | entry0 ();
0x0000f0f4 nop |
0x0000f0f8 addiu v0, zero, 1 | v0 = 1;
0x0000f0fc sb v0, -0x5dd0(s0) | *((s0 - 24016)) = v0;
| }
0x0000f100 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0000f104 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0000f108 addiu sp, sp, 0x20 |
0x0000f10c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libssl.so.1.1 @ 0x30038 */
| #include <stdint.h>
|
; (fcn) sym.SSL_do_handshake () | void SSL_do_handshake () {
0x00030038 lui gp, 6 |
0x0003003c addiu gp, gp, 0x1368 |
0x00030040 addu gp, gp, t9 | gp += t9;
0x00030044 addiu sp, sp, -0x48 |
0x00030048 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x0003004c sw s1, 0x40(sp) | *(var_18h) = s1;
0x00030050 lw s1, -0x7520(gp) | s1 = *((gp - 7496));
0x00030054 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00030058 sw ra, 0x44(sp) | *(var_1ch) = ra;
0x0003005c lw v1, (s1) | v1 = *(s1);
0x00030060 sw s0, 0x3c(sp) | *(var_3ch) = s0;
0x00030064 sw v1, 0x34(sp) | *(var_34h) = v1;
0x00030068 lw t9, -0x7c5c(gp) | t9 = *((gp - 7959));
| if (v0 == 0) {
0x0003006c beqz v0, 0x3014c | goto label_2;
| }
0x00030070 move s0, a0 | s0 = a0;
0x00030074 addiu a1, zero, -1 | a1 = -1;
0x00030078 bal 0x481cc | fcn_000481cc ();
0x0003007c lw v0, 4(s0) | v0 = *((s0 + 1));
0x00030080 move a1, zero | a1 = 0;
0x00030084 lw t9, 0x34(v0) | t9 = *((v0 + 13));
0x00030088 move a0, s0 | a0 = s0;
0x0003008c jalr t9 | t9 ();
0x00030090 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00030094 lw t9, -0x7edc(gp) | t9 = *((gp - 8119));
0x00030098 move a0, s0 | a0 = s0;
0x0003009c bal 0x47308 | sym_SSL_in_init ();
0x000300a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000300a4 beqz v0, 0x300e8 |
| while (v0 != 0) {
0x000300a8 lw v0, 0x4f0(s0) | v0 = *((s0 + 316));
0x000300ac andi v0, v0, 0x100 | v0 &= aav.0x00000100;
0x000300b0 lw t9, -0x72b8(gp) | t9 = *((gp - 7342));
| if (v0 != 0) {
0x000300b4 bnez v0, 0x30104 | goto label_3;
| }
| label_1:
0x000300b8 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x000300bc move a0, s0 | a0 = s0;
0x000300c0 jalr t9 | t9 ();
0x000300c4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| label_0:
0x000300c8 lw a0, 0x34(sp) | a0 = *(var_34h);
0x000300cc lw v1, (s1) | v1 = *(s1);
0x000300d0 lw ra, 0x44(sp) | ra = *(var_1ch);
| if (a0 != v1) {
0x000300d4 bne a0, v1, 0x3017c | goto label_4;
| }
0x000300d8 lw s1, 0x40(sp) | s1 = *(var_18h);
0x000300dc lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x000300e0 addiu sp, sp, 0x48 |
0x000300e4 jr ra | return v0;
0x000300e8 lw t9, -0x7da0(gp) | t9 = *((gp - 8040));
0x000300ec move a0, s0 | a0 = s0;
0x000300f0 bal 0x47334 | sym_SSL_in_before ();
0x000300f4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000300f8 bnez v0, 0x300a8 |
| }
0x000300fc addiu v0, zero, 1 | v0 = 1;
0x00030100 b 0x300c8 | goto label_0;
| label_3:
0x00030104 jalr t9 | t9 ();
0x00030108 nop |
0x0003010c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00030110 bnez v0, 0x300b8 | goto label_1;
| }
0x00030114 lw a2, -0x7ce0(gp) | a2 = *((gp - 7992));
0x00030118 lw t9, -0x7ce0(gp) | t9 = *((gp - 7992));
0x0003011c addiu a2, a2, -0x5bd4 | a2 += -0x5bd4;
0x00030120 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00030124 move a0, s0 | a0 = s0;
0x00030128 sw zero, 0x24(sp) | *(var_24h_2) = 0;
0x0003012c sw zero, 0x28(sp) | *(var_28h) = 0;
0x00030130 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00030134 sw zero, 0x30(sp) | *(var_30h) = 0;
0x00030138 addiu t9, t9, -0x58b0 | t9 += -0x58b0;
0x0003013c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00030140 bal 0x2a750 | fcn_0002a750 ();
0x00030144 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00030148 b 0x300c8 | goto label_0;
| label_2:
0x0003014c lw a3, -0x7e54(gp) | a3 = *((gp - 8085));
0x00030150 lw t9, -0x76a4(gp) | t9 = *((gp - 7593));
0x00030154 addiu v0, zero, 0xe83 | v0 = 0xe83;
0x00030158 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003015c addiu a3, a3, -0xc48 | a3 += -0xc48;
0x00030160 addiu a2, zero, 0x90 | a2 = 0x90;
0x00030164 addiu a1, zero, 0xb4 | a1 = 0xb4;
0x00030168 addiu a0, zero, 0x14 | a0 = 0x14;
0x0003016c jalr t9 | t9 ();
0x00030170 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00030174 addiu v0, zero, -1 | v0 = -1;
0x00030178 b 0x300c8 | goto label_0;
| label_4:
0x0003017c lw t9, -0x7630(gp) | t9 = *((gp - 7564));
0x00030180 jalr t9 | t9 ();
0x00030184 nop |
0x00030188 lui gp, 6 |
0x0003018c addiu gp, gp, 0x1218 |
0x00030190 addu gp, gp, t9 | gp += t9;
0x00030194 addiu sp, sp, -0x28 |
0x00030198 lw a3, -0x7e54(gp) | a3 = *((gp - 8085));
0x0003019c lw t9, -0x76a4(gp) | t9 = *((gp - 7593));
0x000301a0 addiu v0, zero, 0xeb5 | v0 = 0xeb5;
0x000301a4 addiu a3, a3, -0xc48 | a3 += -0xc48;
0x000301a8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000301ac sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x000301b0 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x000301b4 addiu a2, zero, 0x42 | a2 = 0x42;
0x000301b8 addiu a1, zero, 0xf4 | a1 = 0xf4;
0x000301bc addiu a0, zero, 0x14 | a0 = 0x14;
0x000301c0 jalr t9 | t9 ();
0x000301c4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000301c8 move v0, zero | v0 = 0;
0x000301cc addiu sp, sp, 0x28 |
0x000301d0 jr ra | return v0;
| }
[*] Function popen used 1 times libssl.so.1.1