[*] Binary protection state of libsecret-storage.so.0.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libsecret-storage.so.0.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsecret-storage.so.0.0.0 @ 0x1050 */
| #include <stdint.h>
|
; (fcn) sym.secret_storage_deinit () | void secret_storage_deinit () {
| int16_t var_0h;
| if (? >= ?) {
0x00001050 ldrlt r4, [r0, -0xb0c]! | r4 = *((r0 -= 0xb0c));
| }
0x00001054 sub sp, 0xc |
0x00001056 add r3, pc | r3 += pc;
0x00001058 ldr r4, [r3] | r4 = *(r3);
| if (r4 != 0) {
0x0000105a cbz r4, 0x1074 |
0x0000105c ldr r3, [pc, 0x28] |
0x0000105e movs r2, 0x51 | r2 = 0x51;
0x00001060 ldr r4, [pc, 0x28] |
0x00001062 movs r0, 0 | r0 = 0;
0x00001064 ldr r1, [pc, 0x28] |
0x00001066 add r3, pc | r3 = 0x20f2;
0x00001068 add r4, pc | r4 = 0x20f8;
0x0000106a adds r3, 0x14 | r3 += 0x14;
0x0000106c add r1, pc | r1 = 0x2100;
0x0000106e str r4, [sp] | *(sp) = r4;
0x00001070 blx 0xd78 | g_strdup_printf ()
| }
0x00001074 ldr r5, [pc, 0x1c] |
0x00001076 add r5, pc | r5 = 0x210e;
0x00001078 ldr r0, [r5] | r0 = *(0x210e);
0x0000107a blx 0xcd4 | fcn_00000cd4 ();
0x0000107e str r4, [r5] | *(r5) = r4;
0x00001080 add sp, 0xc |
0x00001082 pop {r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libsecret-storage.so.0.0.0 @ 0xfa4 */
| #include <stdint.h>
|
; (fcn) sym.secret_storage_init () | void secret_storage_init (uint32_t arg1) {
| int16_t var_0h;
| int16_t var_ch;
| int16_t var_10h;
| char * s;
| r0 = arg1;
0x00000fa4 bmi 0x7d3c24 |
0x00000fa8 push {r4, lr} |
0x00000faa sub sp, 0x18 |
0x00000fac add r3, pc | r3 += pc;
0x00000fae dmb ish | __asm ("dmb ish");
0x00000fb2 add r2, pc | r2 += pc;
| do {
0x00000fb4 ldrex r1, [r3] | __asm ("ldrex r1, [r3]");
0x00000fb8 subs r1, 1 | r1--;
0x00000fba strex r0, r1, [r3] | __asm ("strex r0, r1, [r3]");
0x00000fbe cmp r0, 0 |
0x00000fc0 bne 0xfb4 |
| } while (r0 != 0);
0x00000fc2 dmb ish | __asm ("dmb ish");
| if (r1 == 0) {
0x00000fc6 cbnz r1, 0x100c |
0x00000fc8 ldr.w ip, [pc, 0x5c] | ip = *(0x1028);
0x00000fcc ldr r0, [pc, 0x5c] | r0 = *(0x102c);
0x00000fce ldr r1, [pc, 0x60] | r1 = *(0x1032);
0x00000fd0 ldr.w r4, [r2, ip] | r4 = *((r2 + ip));
0x00000fd4 ldr r3, [pc, 0x5c] |
0x00000fd6 str r4, [sp, 0xc] | var_ch = r4;
0x00000fd8 ldr r0, [r2, r0] | r0 = *((r2 + r0));
0x00000fda add r3, pc | r3 = 0x2012;
0x00000fdc str r0, [sp, 0x10] | var_10h = r0;
0x00000fde ldr r2, [r2, r1] | r2 = *((r2 + r1));
0x00000fe0 mov r1, r0 | r1 = r0;
0x00000fe2 str r2, [sp, 0x14] | s = r2;
0x00000fe4 mov r2, r4 | r2 = r4;
0x00000fe6 ldr r0, [sp, 0x14] | r0 = s;
0x00000fe8 blx 0xd90 | strlen (r0);
0x00000fec ldr r2, [pc, 0x48] |
0x00000fee add r2, pc | r2 = 0x202a;
0x00000ff0 str r0, [r2] | *(r2) = r0;
| if (r0 != 0) {
0x00000ff2 cbz r0, 0xff8 |
0x00000ff4 add sp, 0x18 |
0x00000ff6 pop {r4, pc} |
| }
0x00000ff8 ldr r4, [pc, 0x40] |
0x00000ffa movs r2, 0x48 | r2 = 0x48;
0x00000ffc ldr r3, [pc, 0x40] |
0x00000ffe ldr r1, [pc, 0x44] |
0x00001000 add r4, pc | r4 = 0x2040;
0x00001002 add r3, pc | r3 = 0x2046;
0x00001004 str r4, [sp] | *(sp) = r4;
0x00001006 add r1, pc | r1 = 0x2050;
0x00001008 blx 0xd78 | g_strdup_printf ()
| }
0x0000100c ldr r3, [pc, 0x38] |
0x0000100e movs r0, 0 | r0 = 0;
0x00001010 ldr r1, [pc, 0x38] |
0x00001012 movs r2, 0x4b | r2 = 0x4b;
0x00001014 str r0, [sp] | *(sp) = r0;
0x00001016 add r3, pc | r3 = 0x2062;
0x00001018 add r1, pc | r1 = 0x2068;
0x0000101a blx 0xd78 | g_strdup_printf ()
0x0000101e nop |
0x00001020 movs r0, 0x54 | r0 = 0x54;
0x00001022 movs r0, r0 |
0x00001024 subs r6, r1, 6 | r6 = r1 - 6;
0x00001026 movs r0, r0 |
0x00001028 lsls r4, r3, 2 | r4 = r3 << 2;
0x0000102a movs r0, r0 |
0x0000102c lsls r4, r6, 2 | r4 = r6 << 2;
0x0000102e movs r0, r0 |
0x00001030 lsls r0, r4, 2 | r0 = r4 << 2;
0x00001032 movs r0, r0 |
0x00001034 invalid |
| }
[*] Function printf used 4 times libsecret-storage.so.0.0.0