[*] Binary protection state of libbootblock.so.2.4
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libbootblock.so.2.4
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libbootblock.so.2.4 @ 0x1438 */
| #include <stdint.h>
|
; (fcn) sym.bootblock_clear () | void bootblock_clear () {
| int32_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_20h;
| int16_t var_24h;
0x00001438 blmi 0xa53ce0 | __asm ("blmi 0xa53ce0");
0x0000143c push {r4, r5, lr} |
0x0000143e sub sp, 0x2c |
0x00001440 add r2, pc | r2 += pc;
0x00001442 add r0, sp, 0x10 | r0 += var_10h;
0x00001444 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001446 ldr r3, [r3] | r3 = *(r3);
0x00001448 str r3, [sp, 0x24] | var_24h = r3;
0x0000144a mov.w r3, 0 | r3 = 0;
0x0000144e blx 0xb68 | r0 = sd_bus_open_system ()
0x00001452 cmp r0, 0 |
| if (r0 < 0) {
0x00001454 blt 0x14cc | goto label_1;
| }
0x00001456 ldr r2, [pc, 0x8c] |
0x00001458 add r5, sp, 0x18 | r5 += var_18h;
0x0000145a ldr r3, [pc, 0x8c] |
0x0000145c movs r4, 0 | r4 = 0;
0x0000145e ldr r0, [pc, 0x8c] |
0x00001460 add r2, pc | r2 = 0x294a;
0x00001462 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00001466 str r2, [sp, 0xc] | var_ch = r2;
0x00001468 add r2, sp, 0x14 | r2 += var_14h;
0x0000146a str r2, [sp, 8] | var_8h = r2;
0x0000146c add r3, pc | r3 = 0x295a;
0x0000146e ldr r2, [pc, 0x80] |
0x00001470 add r0, pc | r0 = 0x2962;
0x00001472 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00001476 mov r1, r3 | r1 = r3;
0x00001478 ldr r0, [sp, 0x10] | r0 = var_10h;
0x0000147a add r2, pc | r2 = 0x2970;
0x0000147c vstr d16, [sp, 0x18] | __asm ("vstr d16, [sp, 0x18]");
0x00001480 str r4, [sp, 0x20] | var_20h = r4;
0x00001482 str r4, [sp, 0x14] | var_14h = r4;
0x00001484 blx 0xbe4 | r0 = fcn_00000be4 ();
0x00001488 cmp r0, r4 |
| if (r0 >= r4) {
0x0000148a bge 0x14c4 | goto label_2;
| }
0x0000148c ldr r1, [pc, 0x64] |
0x0000148e ldr r0, [sp, 0x18] | r0 = var_18h;
0x00001490 add r1, pc | r1 = 0x2988;
0x00001492 blx 0xc2c | r0 = fcn_00000c2c ();
0x00001496 cmp r0, r4 |
0x00001498 ite ne |
| if (r0 == r4) {
0x0000149a movne r4, 0x46 | r4 = 0x46;
| }
0x0000149c moveq r4, 5 | r4 = 5;
| while (1) {
0x0000149e ldr r0, [sp, 0x10] | r0 = var_10h;
0x000014a0 blx 0xb84 | fcn_00000b84 ();
0x000014a4 blx 0xc44 | r0 = fcn_00000c44 ();
0x000014a8 str r4, [r0] | *(r0) = r4;
| label_0:
0x000014aa ldr r2, [pc, 0x4c] |
0x000014ac ldr r3, [pc, 0x30] | r3 = *(0x14e0);
0x000014ae add r2, pc | r2 = 0x29ac;
0x000014b0 ldr r3, [r2, r3] | r3 = *(0x29ac);
0x000014b2 ldr r2, [r3] | r2 = *(0x29ac);
0x000014b4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000014b6 eors r2, r3 | r2 ^= r3;
0x000014b8 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000014bc bne 0x14d8 | goto label_3;
| }
0x000014be mov r0, r4 | r0 = r4;
0x000014c0 add sp, 0x2c |
0x000014c2 pop {r4, r5, pc} |
| label_2:
0x000014c4 ldr r0, [sp, 0x14] | r0 = var_14h;
0x000014c6 blx 0xb38 | sd_bus_message_unref ();
0x000014ca b 0x149e |
| }
| label_1:
0x000014cc blx 0xc44 | fcn_00000c44 ();
0x000014d0 movs r3, 0x46 | r3 = 0x46;
0x000014d2 mov r4, r3 | r4 = r3;
0x000014d4 str r3, [r0] | *(r0) = r3;
0x000014d6 b 0x14aa | goto label_0;
| label_3:
0x000014d8 blx 0xbd8 | fcn_00000bd8 ();
0x000014dc subs r0, r1, r4 | r0 = r1 - r4;
0x000014de movs r0, r0 |
0x000014e0 lsls r4, r5, 2 | r4 = r5 << 2;
0x000014e2 movs r0, r0 |
0x000014e4 lsls r4, r6, 6 | r4 = r6 << 6;
0x000014e6 movs r0, r0 |
0x000014e8 lsls r0, r7, 7 | r0 = r7 << 7;
0x000014ea movs r0, r0 |
0x000014ec lsls r0, r6, 0xb | r0 = r6 << 0xb;
0x000014ee movs r0, r0 |
0x000014f0 lsls r2, r1, 7 | r2 = r1 << 7;
0x000014f2 movs r0, r0 |
0x000014f4 lsls r0, r7, 9 | r0 = r7 << 9;
0x000014f6 movs r0, r0 |
0x000014f8 subs r2, r3, r2 | r2 = r3 - r2;
0x000014fa movs r0, r0 |
| /* [12] -r-x section size 8 named .fini */
0x000014fc ands r0, r1 | r0 &= r1;
0x000014fe invalid |
| }
[*] Function system used 2 times libbootblock.so.2.4