[*] Binary protection state of busybox
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of busybox
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/bin/busybox @ 0x27d04 */
| #include <stdint.h>
|
; (fcn) fcn.00027d04 () | void fcn_00027d04 (int32_t arg1) {
| int32_t var_0h;
| int32_t var_8h;
| int32_t var_8h_2;
| int32_t var_14h;
| r0 = arg1;
0x00027d04 ldr r3, [pc, 0x9c] | r3 = *(0x27da4);
0x00027d08 push {r4, r5, r6, r7, r8, sb, lr} |
0x00027d0c ldr r4, [r3] | r4 = *(0x27da4);
0x00027d10 mov r5, r0 | r5 = r0;
0x00027d14 ldr r0, [r4, 0x18] | r0 = *(0x27dbc);
0x00027d18 sub sp, sp, 0x14 |
0x00027d1c cmp r0, 0 |
| if (r0 != 0) {
0x00027d20 beq 0x27d2c |
0x00027d24 mov r1, 0x10000 | r1 = 0x10000;
0x00027d28 bl 0x14468 | munmap (r0, r1);
| }
0x00027d2c ldrd r2, r3, [r4, 0x30] | __asm ("ldrd r2, r3, [r4, 0x30]");
0x00027d30 mov r1, 0x10000 | r1 = 0x10000;
0x00027d34 strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_8h]");
0x00027d38 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00027d3c mov r2, 3 | r2 = 3;
0x00027d40 str r3, [sp] | *(sp) = r3;
0x00027d44 mov r0, 0 | r0 = 0;
0x00027d48 mov r3, 1 | r3 = 1;
0x00027d4c bl 0x14f90 | r0 = mmap64 ()
0x00027d50 cmn r0, 1 |
0x00027d54 str r0, [r4, 0x18] | *((r4 + 0x18)) = r0;
| if (r0 == 1) {
0x00027d58 bne 0x27d68 |
0x00027d5c bl 0x27c9c | fcn_00027c9c ();
0x00027d60 ldr r0, [pc, 0x44] | r0 = *(0x27da8);
0x00027d64 bl 0x17fd8 | r0 = fcn_00017fd8 ();
| }
0x00027d68 add r3, r0, 0x10000 | r3 = r0 + 0x10000;
0x00027d6c ldrd r6, r7, [r4, 0x30] | __asm ("ldrd r6, r7, [r4, 0x30]");
0x00027d70 str r3, [r4, 0x20] | *((r4 + 0x20)) = r3;
0x00027d74 ldrd r2, r3, [r4, 0x28] | __asm ("ldrd r2, r3, [r4, 0x28]");
0x00027d78 add r5, r0, r5 | r5 = r0 + r5;
0x00027d7c subs r8, r2, r6 | r8 = r2 - r6;
0x00027d80 sbc sb, r3, r7 | __asm ("sbc sb, r3, r7");
0x00027d84 cmp r8, 0x10000 |
0x00027d88 sbcs r1, sb, 0 | __asm ("sbcs r1, sb, 0");
| if (r8 >= 0x10000) {
0x00027d8c sublt r2, r2, r6 | r2 -= r6;
| }
| if (r8 >= 0x10000) {
0x00027d90 addlt r0, r0, r2 | r0 += r2;
| }
| if (r8 >= 0x10000) {
0x00027d94 strlt r0, [r4, 0x20] | *((r4 + 0x20)) = r0;
| }
0x00027d98 mov r0, 1 | r0 = 1;
0x00027d9c str r5, [r4, 0x1c] | *((r4 + 0x1c)) = r5;
0x00027da0 add sp, sp, 0x14 |
0x00027da4 pop {r4, r5, r6, r7, r8, sb, pc} |
| }
[*] Function mmap used 2 times busybox