Repository navigation
Expand file tree
/
Copy pathghidra_extraction_O2_vec.json
More file actions
18 lines (18 loc) · 4.91 KB
/
Copy pathghidra_extraction_O2_vec.json
File metadata and controls
18 lines (18 loc) · 4.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"binary_name": "benchmark_arm64",
"architecture": "AARCH64",
"functions": [
{
"name": "_start_main",
"entry_point": "0010478c",
"instruction_count": 22,
"decompiled_c": "\r\nvoid _start_main(undefined8 param_1)\r\n\r\n{\r\n code *UNRECOVERED_JUMPTABLE;\r\n undefined8 local_40;\r\n undefined8 uStack_38;\r\n undefined1 *local_30;\r\n undefined8 uStack_28;\r\n undefined8 uStack_20;\r\n undefined8 uStack_18;\r\n \r\n uStack_28 = 0;\r\n local_30 = (undefined1 *)0x0;\r\n uStack_18 = 0;\r\n uStack_20 = 0;\r\n uStack_38 = 0;\r\n local_40 = 0;\r\n if (0 < (long)PTR__start_00108b68 - (long)PTR__start_00108b60) {\r\n local_30 = &fini_array_with_sentinels;\r\n }\r\n UNRECOVERED_JUMPTABLE = (code *)__libc_init(param_1,0,PTR_main_00108b70,&local_40);\r\n if (UNRECOVERED_JUMPTABLE != (code *)0x0) {\r\n /* WARNING: Could not recover jumptable at 0x001047f0. Too many branches */\r\n /* WARNING: Treating indirect jump as call */\r\n (*UNRECOVERED_JUMPTABLE)();\r\n return;\r\n }\r\n return;\r\n}\r\n\r\n"
},
{
"name": "main",
"entry_point": "00104878",
"instruction_count": 56,
"decompiled_c": "\r\nundefined8 main(void)\r\n\r\n{\r\n byte bVar1;\r\n byte bVar2;\r\n ulong uVar3;\r\n ulong uVar4;\r\n ulong uVar5;\r\n ulong uVar6;\r\n ulong uVar7;\r\n ulong uVar8;\r\n ulong uVar9;\r\n ulong uVar10;\r\n ulong uVar11;\r\n clock_t cVar12;\r\n clock_t cVar13;\r\n int iVar14;\r\n long lVar15;\r\n long lVar16;\r\n uint uVar17;\r\n byte bVar18;\r\n uint uVar19;\r\n byte bVar20;\r\n uint uVar21;\r\n uint uVar22;\r\n long lVar23;\r\n long lVar24;\r\n byte bVar25;\r\n uint uVar26;\r\n uint uVar28;\r\n undefined8 uVar27;\r\n \r\n puts(\"[+] Execucao nativa ARM64 iniciada no Android!\");\r\n uVar27 = DAT_001005c8;\r\n iVar14 = 10000000;\r\n cVar12 = clock();\r\n lVar23 = 0;\r\n lVar24 = 0;\r\n lVar15 = 0;\r\n lVar16 = 0;\r\n do {\r\n uVar26 = (uint)uVar27;\r\n uVar17 = uVar26 + 2;\r\n uVar28 = (uint)((ulong)uVar27 >> 0x20);\r\n uVar19 = uVar28 + 2;\r\n iVar14 = iVar14 + -4;\r\n uVar21 = uVar17 >> 3;\r\n uVar22 = uVar19 >> 3;\r\n uVar8 = (ulong)uVar27 >> 8;\r\n bVar25 = (byte)uVar27;\r\n uVar9 = (ulong)uVar27 >> 0x10;\r\n uVar3 = (ulong)uVar27 >> 8;\r\n bVar1 = (byte)((ulong)uVar27 >> 0x18);\r\n uVar4 = (ulong)uVar27 >> 0x10;\r\n uVar10 = (ulong)uVar27 >> 0x2b;\r\n uVar5 = (ulong)uVar27 >> 0x20;\r\n uVar11 = (ulong)uVar27 >> 0x33;\r\n uVar6 = (ulong)uVar27 >> 0x28;\r\n bVar2 = (byte)((ulong)uVar27 >> 0x38);\r\n uVar7 = (ulong)uVar27 >> 0x30;\r\n uVar27 = CONCAT44(uVar28 + 4,uVar26 + 4);\r\n bVar18 = (byte)(uVar17 >> 0x18);\r\n bVar20 = (byte)(uVar19 >> 0x18);\r\n lVar23 = lVar23 + (ulong)(uint)(CONCAT13(bVar1 >> 3 ^ bVar1,\r\n CONCAT12((byte)((ushort)uVar9 >> 3) ^ (byte)uVar4,\r\n CONCAT11((byte)((uint3)uVar8 >> 3) ^\r\n (byte)uVar3,\r\n (byte)(uVar26 >> 3) ^ bVar25))) * 3);\r\n lVar24 = lVar24 + (ulong)(uint)(CONCAT13(bVar2 >> 3 ^ bVar2,\r\n CONCAT12((byte)(ushort)uVar11 ^ (byte)uVar7,\r\n CONCAT11((byte)(uint3)uVar10 ^ (byte)uVar6,\r\n (byte)(uVar28 >> 3) ^ (byte)uVar5)))\r\n * 3);\r\n lVar15 = lVar15 + (ulong)(uint)(CONCAT13(bVar18 >> 3 ^ bVar18,\r\n CONCAT12((byte)(uVar21 >> 0x10) ^\r\n (byte)(uVar17 >> 0x10),\r\n CONCAT11((byte)(uVar21 >> 8) ^\r\n (byte)(uVar17 >> 8),\r\n (byte)uVar21 ^ (byte)uVar17))) * 3);\r\n lVar16 = lVar16 + (ulong)(uint)(CONCAT13(bVar20 >> 3 ^ bVar20,\r\n CONCAT12((byte)(uVar22 >> 0x10) ^\r\n (byte)(uVar19 >> 0x10),\r\n CONCAT11((byte)(uVar22 >> 8) ^\r\n (byte)(uVar19 >> 8),\r\n (byte)uVar22 ^ (byte)uVar19))) * 3);\r\n } while (iVar14 != 0);\r\n cVar13 = clock();\r\n printf(\"[+] Resultado: %lld\\n\",(double)(cVar13 - cVar12),lVar15 + lVar23 + lVar16 + lVar24);\r\n printf(\"[+] Tempo decorrido: %.4f s\\n\",(double)(cVar13 - cVar12) / 1000000.0);\r\n puts(\"[+] Executado nativamente no hardware AArch64.\");\r\n return 0;\r\n}\r\n\r\n"
}
]
}