[*] Binary protection state of pkcs1-conv
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of pkcs1-conv
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/pkcs1-conv @ 0x19c4 */
| #include <stdint.h>
|
; (fcn) fcn.000019c4 () | void fcn_000019c4 () {
| int16_t var_0h;
| int16_t var_4h;
| int32_t var_4h_3;
| int16_t var_10h;
| int16_t var_4h_2;
| if (? >= ?) {
0x000019c4 strlt fp, [r0, -0x40f] | *((r0 - 0x40f)) = fp;
| }
0x000019c8 sub sp, 0xc |
0x000019ca add r3, sp, 0x10 | r3 += var_10h;
0x000019cc ldr.w lr, [pc, 0x50] |
0x000019d0 ldr.w ip, [pc, 0x50] | ip = *(0x1a24);
0x000019d4 ldr r1, [pc, 0x50] |
0x000019d6 add lr, pc | lr = 0x33fa;
0x000019d8 ldr r2, [r3], 4 | r2 = *(r3);
| r3 += 4;
0x000019dc ldr.w ip, [lr, ip] |
0x000019e0 ldr r0, [pc, 0x48] | r0 = *(0x1a2c);
0x000019e2 add r1, pc | r1 = 0x340e;
0x000019e4 ldr.w ip, [ip] | ip = *(0x33fa);
0x000019e8 str.w ip, [sp, 4] | __asm ("str.w ip, [var_4h]");
0x000019ec mov.w ip, 0 |
0x000019f0 str r3, [sp] | *(sp) = r3;
0x000019f2 ldr r0, [r1, r0] |
0x000019f4 movs r1, 1 | r1 = 1;
0x000019f6 ldr r0, [r0] | r0 = *(0x340e);
0x000019f8 blx 0xea4 | vfprintf_chk ()
0x000019fc ldr r2, [pc, 0x30] |
0x000019fe ldr r3, [pc, 0x24] | r3 = *(0x1a26);
0x00001a00 add r2, pc | r2 = 0x3434;
0x00001a02 ldr r3, [r2, r3] | r3 = *(0x3434);
0x00001a04 ldr r2, [r3] | r2 = *(0x3434);
0x00001a06 ldr r3, [sp, 4] | r3 = var_4h;
0x00001a08 eors r2, r3 | r2 ^= r3;
0x00001a0a mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x00001a0e bne 0x1a1a |
0x00001a10 add sp, 0xc |
0x00001a12 ldr lr, [sp], 4 |
0x00001a16 add sp, 0x10 |
0x00001a18 bx lr | return;
| }
0x00001a1a blx 0xed4 | stack_chk_fail ();
0x00001a1e nop |
0x00001a20 asrs r2, r7, 0x14 | r2 = r7 >> 0x14;
0x00001a22 movs r0, r0 |
0x00001a24 lsls r0, r2, 3 | r0 = r2 << 3;
0x00001a26 movs r0, r0 |
0x00001a28 asrs r6, r5, 0x14 | r6 = r5 >> 0x14;
0x00001a2a movs r0, r0 |
0x00001a2c lsls r0, r4, 3 | r0 = r4 << 3;
0x00001a2e movs r0, r0 |
0x00001a30 asrs r0, r2, 0x14 | r0 = r2 >> 0x14;
0x00001a32 movs r0, r0 |
0x00001a34 push {r3, lr} |
0x00001a36 blx 0xebc | malloc (r0);
0x00001a3a ldr r3, [pc, 0x20] |
0x00001a3c add r3, pc | r3 = 0x349e;
| if (r0 != 0) {
0x00001a3e cbz r0, 0x1a42 |
0x00001a40 pop {r3, pc} |
| }
0x00001a42 ldr.w ip, [pc, 0x1c] | ip = *(0x1a62);
0x00001a46 movs r2, 0x1a | r2 = 0x1a;
0x00001a48 ldr r0, [pc, 0x18] |
0x00001a4a movs r1, 1 | r1 = 1;
0x00001a4c ldr.w r3, [r3, ip] | r3 = *((r3 + ip));
0x00001a50 add r0, pc | r0 = 0x34b8;
0x00001a52 ldr r3, [r3] | r3 = *(r3);
0x00001a54 blx 0xeb0 | r0 = fwrite (r0, r1, r2, r3);
0x00001a58 blx 0xda8 | abort ();
0x00001a5c asrs r4, r2, 0x13 | r4 = r2 >> 0x13;
0x00001a5e movs r0, r0 |
0x00001a60 lsls r0, r4, 3 | r0 = r4 << 3;
0x00001a62 movs r0, r0 |
0x00001a64 lsls r0, r1, 0xe | r0 = r1 << 0xe;
0x00001a66 movs r0, r0 |
| /* [14] -r-x section size 8 named .fini */
0x00001a68 ands r0, r1 | r0 &= r1;
0x00001a6a invalid |
| }
[*] Function printf used 2 times pkcs1-conv