[*] Binary protection state of essiv.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function strcat tear down of essiv.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/crypto/essiv.ko @ 0x800019c */
| #include <stdint.h>
|
; (fcn) sym.essiv_skcipher_decrypt () | void essiv_skcipher_decrypt (int32_t arg1) {
| r0 = arg1;
0x0800019c push {r4, r5, r6, lr} |
0x080001a0 mov r4, r0 | r4 = r0;
0x080001a4 ldr r5, [r0, 0x20] | r5 = *((r0 + 0x20));
0x080001a8 ldr r2, [r0, 4] | r2 = *((r0 + 4));
0x080001ac ldr r0, [r5, 0x44] | r0 = *((r5 + 0x44));
0x080001b0 mov r1, r2 | r1 = r2;
0x080001b4 stmdaeq r0, {r0, r1, r5, r8, sl, sp} | __asm ("stmdaeq r0, {r0, r1, r5, r8, sl, sp}");
0x080001b8 ldr r3, [r5, 0x40] | r3 = *((r5 + 0x40));
0x080001bc ldr r2, [r4, 0xc] | r2 = *((r4 + 0xc));
0x080001c0 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x080001c4 add r3, r3, 0x40 | r3 += 0x40;
0x080001c8 str r2, [r4, 0x4c] | *((r4 + 0x4c)) = r2;
0x080001cc str r0, [r4, 0x48] | *((r4 + 0x48)) = r0;
0x080001d0 ldm r4, {r1, r2} | r1 = *(r4);
| r2 = *((r4 + 4));
0x080001d4 str r3, [r4, 0x60] | *((r4 + 0x60)) = r3;
0x080001d8 ldr r0, [r4, 0x24] | r0 = *((r4 + 0x24));
0x080001dc stmdaeq r0, {r4, r5, r6} | __asm ("stmdaeq r0, {r4, r5, r6}");
0x080001e0 stmdaeq r0, {r4, r5, r6} | __asm ("stmdaeq r0, {r4, r5, r6}");
0x080001e4 str r0, [r4, 0x64] | *((r4 + 0x64)) = r0;
0x080001e8 str r1, [r4, 0x40] | *((r4 + 0x40)) = r1;
0x080001ec add r0, r4, 0x40 | r0 = r4 + 0x40;
0x080001f0 str r2, [r4, 0x44] | *((r4 + 0x44)) = r2;
0x080001f4 str r3, [r4, 0x58] | *((r4 + 0x58)) = r3;
0x080001f8 str r4, [r4, 0x5c] | *((r4 + 0x5c)) = r4;
0x080001fc pop {r4, r5, r6, lr} |
0x08000200 stmdaeq r0, {r0, r1, r2, r5, r8, sl, sp} | __asm ("stmdaeq r0, {r0, r1, r2, r5, r8, sl, sp}");
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/crypto/essiv.ko @ 0x8000438 */
| #include <stdint.h>
|
; (fcn) sym.essiv_skcipher_encrypt () | void essiv_skcipher_encrypt (int32_t arg1) {
| r0 = arg1;
0x08000438 push {r4, r5, r6, lr} |
0x0800043c mov r4, r0 | r4 = r0;
0x08000440 ldr r5, [r0, 0x20] | r5 = *((r0 + 0x20));
0x08000444 ldr r2, [r0, 4] | r2 = *((r0 + 4));
0x08000448 ldr r0, [r5, 0x44] | r0 = *((r5 + 0x44));
0x0800044c mov r1, r2 | r1 = r2;
0x08000450 stmdaeq r0, {r0, r1, r5, r8, sl, sp} | __asm ("stmdaeq r0, {r0, r1, r5, r8, sl, sp}");
0x08000454 ldr r3, [r5, 0x40] | r3 = *((r5 + 0x40));
0x08000458 ldr r2, [r4, 0xc] | r2 = *((r4 + 0xc));
0x0800045c ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x08000460 add r3, r3, 0x40 | r3 += 0x40;
0x08000464 str r2, [r4, 0x4c] | *((r4 + 0x4c)) = r2;
0x08000468 str r0, [r4, 0x48] | *((r4 + 0x48)) = r0;
0x0800046c ldm r4, {r1, r2} | r1 = *(r4);
| r2 = *((r4 + 4));
0x08000470 str r3, [r4, 0x60] | *((r4 + 0x60)) = r3;
0x08000474 ldr r0, [r4, 0x24] | r0 = *((r4 + 0x24));
0x08000478 stmdaeq r0, {r4, r5, r6} | __asm ("stmdaeq r0, {r4, r5, r6}");
0x0800047c stmdaeq r0, {r4, r5, r6} | __asm ("stmdaeq r0, {r4, r5, r6}");
0x08000480 str r0, [r4, 0x64] | *((r4 + 0x64)) = r0;
0x08000484 str r1, [r4, 0x40] | *((r4 + 0x40)) = r1;
0x08000488 add r0, r4, 0x40 | r0 = r4 + 0x40;
0x0800048c str r2, [r4, 0x44] | *((r4 + 0x44)) = r2;
0x08000490 str r3, [r4, 0x58] | *((r4 + 0x58)) = r3;
0x08000494 str r4, [r4, 0x5c] | *((r4 + 0x5c)) = r4;
0x08000498 pop {r4, r5, r6, lr} |
0x0800049c stmdaeq r0, {r0, r1, r3, r6, r8, sl, sp} | __asm ("stmdaeq r0, {r0, r1, r3, r6, r8, sl, sp}");
| }
[*] Function strcat used 1 times essiv.ko