[*] Binary protection state of dbus-daemon
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function system tear down of dbus-daemon
; 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/usr/bin/dbus-daemon @ 0x2c520 */
| #include <stdint.h>
|
; (fcn) fcn.0002c520 () | void fcn_0002c520 (void * arg1, int32_t arg2) {
| int32_t var_4h;
| int32_t var_ch;
| r0 = arg1;
| r1 = arg2;
0x0002c520 b 0x2cf68 |
0x0002cf68 push {r0, r1, r2, r4, r5, lr} |
0x0002cf6c mov r5, r0 | r5 = r0;
0x0002cf70 mov r4, r1 | r4 = r1;
0x0002cf74 bl 0x15f00 | r0 = dbus_user_database_lock_system ()
0x0002cf78 cmp r0, 0 |
| if (r0 == 0) {
0x0002cf7c beq 0x2cf94 | goto label_0;
| }
0x0002cf80 bl 0x16074 | r0 = dbus_user_database_get_system ()
0x0002cf84 cmp r0, 0 |
0x0002cf88 bne 0x2cf9c |
| while (r0 == 0) {
0x0002cf8c bl 0x16038 | dbus_user_database_unlock_system ()
0x0002cf90 mov r0, 0 | r0 = 0;
| label_0:
0x0002cf94 add sp, sp, 0xc |
0x0002cf98 pop {r4, r5, pc} |
0x0002cf9c mov r3, 0 | r3 = 0;
0x0002cfa0 add r2, sp, 4 | r2 += var_4h;
0x0002cfa4 mov r1, r5 | r1 = r5;
0x0002cfa8 bl 0x2cf44 | r0 = fcn_0002cf44 (r0, r1);
0x0002cfac cmp r0, 0 |
0x0002cfb0 beq 0x2cf8c |
| }
0x0002cfb4 ldr r3, [sp, 4] | r3 = var_4h;
0x0002cfb8 ldr r3, [r3] | r3 = *(r3);
0x0002cfbc str r3, [r4] | *(r4) = r3;
0x0002cfc0 bl 0x16038 | dbus_user_database_unlock_system ()
0x0002cfc4 mov r0, 1 | r0 = 1;
0x0002cfc8 b 0x2cf94 | goto label_0;
| }
; 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/usr/bin/dbus-daemon @ 0x2c524 */
| #include <stdint.h>
|
; (fcn) fcn.0002c524 () | void fcn_0002c524 (int32_t arg1, int32_t arg2) {
| int32_t var_4h;
| int32_t var_ch;
| r0 = arg1;
| r1 = arg2;
0x0002c524 b 0x2cfec |
0x0002cfec push {r0, r1, r2, r4, r5, r6, r7, lr} |
0x0002cff0 mov r5, 0 | r5 = 0;
0x0002cff4 str r5, [r1] | *(r1) = r5;
0x0002cff8 str r5, [r2] | *(r2) = r5;
0x0002cffc mov r7, r0 | r7 = r0;
0x0002d000 mov r4, r1 | r4 = r1;
0x0002d004 mov r6, r2 | r6 = r2;
0x0002d008 bl 0x15f00 | r0 = dbus_user_database_lock_system ()
0x0002d00c cmp r0, 0 |
| if (r0 == 0) {
0x0002d010 beq 0x2d028 | goto label_1;
| }
0x0002d014 bl 0x16074 | r0 = dbus_user_database_get_system ()
0x0002d018 cmp r0, r5 |
0x0002d01c bne 0x2d030 |
| while (r0 == 0) {
| label_0:
0x0002d020 bl 0x16038 | dbus_user_database_unlock_system ()
0x0002d024 mov r0, 0 | r0 = 0;
| label_1:
0x0002d028 add sp, sp, 0xc |
0x0002d02c pop {r4, r5, r6, r7, pc} |
0x0002d030 mov r3, r5 | r3 = r5;
0x0002d034 add r2, sp, 4 | r2 += var_4h;
0x0002d038 mov r1, r7 | r1 = r7;
0x0002d03c bl 0x16158 | r0 = dbus_user_database_get_uid ();
0x0002d040 cmp r0, 0 |
0x0002d044 beq 0x2d020 |
| }
0x0002d048 ldr r3, [sp, 4] | r3 = var_4h;
0x0002d04c ldr r0, [r3, 0xc] | r0 = *((r3 + 0xc));
0x0002d050 cmp r0, 0 |
| if (r0 <= 0) {
0x0002d054 ble 0x2d08c | goto label_2;
| }
0x0002d058 lsl r0, r0, 2 | r0 <<= 2;
0x0002d05c bl 0x16008 | r0 = dbus_malloc ();
0x0002d060 cmp r0, 0 |
0x0002d064 str r0, [r4] | *(r4) = r0;
| if (r0 == 0) {
0x0002d068 beq 0x2d020 | goto label_0;
| }
0x0002d06c ldr r3, [sp, 4] | r3 = var_4h;
0x0002d070 ldr r2, [r3, 0xc] | r2 = *((r3 + 0xc));
0x0002d074 str r2, [r6] | *(r6) = r2;
0x0002d078 ldr r2, [r3, 0xc] | r2 = *((r3 + 0xc));
0x0002d07c ldr r1, [r3, 8] | r1 = *((r3 + 8));
0x0002d080 lsl r2, r2, 2 | r2 <<= 2;
0x0002d084 ldr r0, [r4] | r0 = *(r4);
0x0002d088 bl 0x15df8 | r0 = memcpy (r0, r1, r2);
| label_2:
0x0002d08c bl 0x16038 | dbus_user_database_unlock_system ()
0x0002d090 mov r0, 1 | r0 = 1;
0x0002d094 b 0x2d028 | goto label_1;
| }
; 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/usr/bin/dbus-daemon @ 0x2cd80 */
| #include <stdint.h>
|
; (fcn) fcn.0002cd80 () | void fcn_0002cd80 (int32_t arg1, int32_t arg2) {
| int32_t var_4h;
| int32_t var_8h;
| r0 = arg1;
| r1 = arg2;
0x0002cd80 push {r0, r1, r4, r5, r6, lr} |
0x0002cd84 mov r6, r0 | r6 = r0;
0x0002cd88 mov r5, r1 | r5 = r1;
0x0002cd8c mov r4, r2 | r4 = r2;
0x0002cd90 bl 0x15f00 | r0 = dbus_user_database_lock_system ()
0x0002cd94 cmp r0, 0 |
| if (r0 == 0) {
0x0002cd98 beq 0x2cdb0 | goto label_0;
| }
0x0002cd9c bl 0x16074 | r0 = dbus_user_database_get_system ()
0x0002cda0 cmp r0, 0 |
0x0002cda4 bne 0x2cdb8 |
| while (r0 == 0) {
0x0002cda8 bl 0x16038 | dbus_user_database_unlock_system ()
0x0002cdac mov r0, 0 | r0 = 0;
| label_0:
0x0002cdb0 add sp, sp, 8 |
0x0002cdb4 pop {r4, r5, r6, pc} |
0x0002cdb8 mov r3, 0 | r3 = 0;
0x0002cdbc add r2, sp, 4 | r2 += var_4h;
0x0002cdc0 mov r1, r6 | r1 = r6;
0x0002cdc4 bl 0x161e8 | r0 = dbus_user_database_get_username ();
0x0002cdc8 cmp r0, 0 |
0x0002cdcc beq 0x2cda8 |
| }
0x0002cdd0 cmp r5, 0 |
| if (r5 == 0) {
0x0002cdd4 ldrne r3, [sp, 4] | r3 = var_4h;
| }
| if (r5 == 0) {
0x0002cdd8 ldrne r3, [r3] | r3 = *(r3);
| }
| if (r5 == 0) {
0x0002cddc strne r3, [r5] | *(r5) = r3;
| }
0x0002cde0 cmp r4, 0 |
| if (r4 == 0) {
0x0002cde4 ldrne r3, [sp, 4] | r3 = var_4h;
| }
| if (r4 == 0) {
0x0002cde8 ldrne r3, [r3, 4] | r3 = *((r3 + 4));
| }
| if (r4 == 0) {
0x0002cdec strne r3, [r4] | *(r4) = r3;
| }
0x0002cdf0 bl 0x16038 | dbus_user_database_unlock_system ()
0x0002cdf4 mov r0, 1 | r0 = 1;
0x0002cdf8 b 0x2cdb0 | goto label_0;
| }
[*] Function system used 13 times dbus-daemon