[*] Binary protection state of image2d
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of image2d
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xb98d0 */
| #include <stdint.h>
|
; (fcn) sym.af_streamer_gen03_run () | void af_streamer_gen03_run () {
0x000b98d0 lui gp, 0x19 |
0x000b98d4 addiu gp, gp, 0x5a00 |
0x000b98d8 addu gp, gp, t9 | gp += t9;
0x000b98dc addiu sp, sp, -0x290 |
0x000b98e0 lw v0, 0x334(a0) | v0 = *(a0);
0x000b98e4 sw s4, 0x280(sp) | *(var_280h) = s4;
0x000b98e8 lw s4, -0x5f08(gp) | s4 = *((gp - 6082));
0x000b98ec sw s5, 0x284(sp) | *(var_284h) = s5;
0x000b98f0 move s5, a0 | s5 = a0;
0x000b98f4 lw a0, 0x20(v0) | a0 = *((v0 + 8));
0x000b98f8 lw v1, (s4) | v1 = *(s4);
0x000b98fc sw s1, 0x274(sp) | *(var_274h) = s1;
0x000b9900 sw s0, 0x270(sp) | *(var_270h) = s0;
0x000b9904 lw s1, 8(v0) | s1 = *((v0 + 2));
0x000b9908 lw s0, 0x54(v0) | s0 = *((v0 + 21));
0x000b990c sw a0, 0x18(sp) | *(var_18h) = a0;
0x000b9910 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x000b9914 lw a3, -0x7da8(gp) | a3 = *(gp);
0x000b9918 sw a0, 0x14(sp) | *(var_14h) = a0;
0x000b991c lw v0, 4(v0) | v0 = *((v0 + 1));
0x000b9920 lw t9, -0x60ec(gp) | t9 = sym.imp.__sprintf_chk;
0x000b9924 sw s3, 0x27c(sp) | *(var_27ch) = s3;
0x000b9928 addiu s3, sp, 0x6c | s3 = sp + 0x6c;
0x000b992c sw gp, 0x20(sp) | *(var_20h) = gp;
0x000b9930 sw ra, 0x28c(sp) | *(var_28ch) = ra;
0x000b9934 sw s6, 0x288(sp) | *(var_288h) = s6;
0x000b9938 sw s2, 0x278(sp) | *(var_278h) = s2;
0x000b993c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._d___d___d */
0x000b9940 addiu a3, a3, -0x6d8 | a3 += -aav.0x000006d8;
0x000b9944 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x000b9948 addiu a1, zero, 1 | a1 = 1;
0x000b994c move a0, s3 | a0 = s3;
0x000b9950 sw v1, 0x26c(sp) | *(var_26ch) = v1;
0x000b9954 jalr t9 | t9 ();
0x000b9958 nop |
0x000b995c lw gp, 0x20(sp) | gp = *(var_20h);
| if (s1 == 0) {
0x000b9960 beqz s1, 0xb99c4 | goto label_0;
| }
0x000b9964 sll s2, s1, 3 | s2 = s1 << 3;
0x000b9968 addu s2, s2, s1 | s2 += s1;
0x000b996c lw s6, -0x7da8(gp) | s6 = *(gp);
0x000b9970 sll s2, s2, 2 | s2 <<= 2;
0x000b9974 addu s2, s0, s2 | s2 = s0 + s2;
0x000b9978 addiu s1, sp, 0x2c | s1 = sp + 0x2c;
| /* str.___d */
0x000b997c addiu s6, s6, -0x6cc | s6 += -aav.0x000006cc;
| do {
0x000b9980 lw v0, (s0) | v0 = *(s0);
0x000b9984 lw t9, -0x60ec(gp) | t9 = sym.imp.__sprintf_chk;
0x000b9988 move a3, s6 | a3 = s6;
0x000b998c addiu a2, zero, 0x40 | a2 = 0x40;
0x000b9990 addiu a1, zero, 1 | a1 = 1;
0x000b9994 move a0, s1 | a0 = s1;
0x000b9998 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000b999c jalr t9 | t9 ();
0x000b99a0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000b99a4 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x000b99a8 move a1, s1 | a1 = s1;
0x000b99ac lw t9, -0x5d64(gp) | t9 = sym.imp.__strcat_chk
0x000b99b0 move a0, s3 | a0 = s3;
0x000b99b4 addiu s0, s0, 0x24 | s0 += 0x24;
0x000b99b8 jalr t9 | t9 ();
0x000b99bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000b99c0 bne s0, s2, 0xb9980 |
| } while (s0 != s2);
| label_0:
0x000b99c4 lw a1, -0x7e54(gp) | a1 = *(gp);
0x000b99c8 lw t9, -0x5d64(gp) | t9 = sym.imp.__strcat_chk
0x000b99cc addiu a1, a1, 0x1910 | a1 += 0x1910;
0x000b99d0 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x000b99d4 move a0, s3 | a0 = s3;
0x000b99d8 jalr t9 | t9 ();
0x000b99dc lw a1, 0x2e8(s5) | a1 = *(s5);
0x000b99e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a1 != 0) {
0x000b99e4 beqz a1, 0xb99f8 |
0x000b99e8 lw t9, -0x5b8c(gp) | t9 = sym.imp.fputs;
0x000b99ec move a0, s3 | a0 = s3;
0x000b99f0 jalr t9 | t9 ();
0x000b99f4 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x000b99f8 lw a0, 0x26c(sp) | a0 = *(var_26ch);
0x000b99fc lw v1, (s4) | v1 = *(s4);
0x000b9a00 move v0, zero | v0 = 0;
| if (a0 == v1) {
0x000b9a04 bne a0, v1, 0xb9a30 |
0x000b9a08 lw ra, 0x28c(sp) | ra = *(var_28ch);
0x000b9a0c lw s6, 0x288(sp) | s6 = *(var_288h);
0x000b9a10 lw s5, 0x284(sp) | s5 = *(var_284h);
0x000b9a14 lw s4, 0x280(sp) | s4 = *(var_280h);
0x000b9a18 lw s3, 0x27c(sp) | s3 = *(var_27ch);
0x000b9a1c lw s2, 0x278(sp) | s2 = *(var_278h);
0x000b9a20 lw s1, 0x274(sp) | s1 = *(var_274h);
0x000b9a24 lw s0, 0x270(sp) | s0 = *(var_270h);
0x000b9a28 addiu sp, sp, 0x290 |
0x000b9a2c jr ra | return v0;
| }
0x000b9a30 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x000b9a34 jalr t9 | t9 ();
0x000b9a38 nop |
0x000b9a3c nop |
| }
[*] Function strcat used 3 times image2d