找出ARC文件入口点

逆向工程 艾达 入口点
2021-07-10 03:10:34

我从 ci 模块得到 dump 并在 deflate 压缩数据后,这次​​我找不到我要找的数据,不反汇编它,有时我可以手动提取数据,但这次文件有点不同。

因此,我尝试加载文件并使用 2 个可能的目标进行测试,ARCompact 和 ARCTangent,以及我使用 0x0 和 0x400000 测试的加载地址,因为我在二进制 (LE) 中看到了一些偏移量,例如:

207B2A40
347B2A40

所以我想加载必须接近该偏移量但没有成功,只有垃圾功能。文件中的第一个 0xB0 数据是这样的:

4A2100004A2200004A2300004A240000
4A2500004A2600004A2700004A200010
4A2100104A2200104A2300104A240010
4A2500104A2600104A2700104A200020
4A2100204A2200204A2300204A240020
4A2500204A2600204A2700204A200030
4A2100304A2000002220800F23408009
0A24803F2B4048B80A22803F2B406059
0A22808F00000000E22082004A230030
2220800F2240DC9E090000006CD41640
692040004A2600704A2600704A260070

这些标志位于 gzip 标头之前:

    48B82B40
    48B82B40
    00200300
    2E 6B65726E656C -> kernel
    0000000000
    004B5F40 -*
    004B5F40 -* Offset where kernel is decompressed?
    00400600 -> ?
    1F8B0800 -> gzip

希望有人能以某种方式帮助我。

提前谢谢了。

1个回答

似乎是 ARCompact 代码:

CODE:00000000                 mov     r1, 0
CODE:00000004                 mov     r2, 0
CODE:00000008                 mov     r3, 0
CODE:0000000C                 mov     r4, 0
CODE:00000010                 mov     r5, 0
CODE:00000014                 mov     r6, 0
CODE:00000018                 mov     r7, 0
CODE:0000001C                 mov     r8, 0
CODE:00000020                 mov     r9, 0
CODE:00000024                 mov     r10, 0
CODE:00000028                 mov     r11, 0
CODE:0000002C                 mov     r12, 0
CODE:00000030                 mov     r13, 0
CODE:00000034                 mov     r14, 0
CODE:00000038                 mov     r15, 0
CODE:0000003C                 mov     r16, 0
CODE:00000040                 mov     r17, 0
CODE:00000044                 mov     r18, 0
CODE:00000048                 mov     r19, 0
CODE:0000004C                 mov     r20, 0
CODE:00000050                 mov     r21, 0
CODE:00000054                 mov     r22, 0
CODE:00000058                 mov     r23, 0
CODE:0000005C                 mov     r24, 0
CODE:00000060                 mov     r25, 0
CODE:00000064                 mov     r0, 0
CODE:00000068                 jl      0x40230980
CODE:00000070                 mov     sp, 0x402BB848
CODE:00000078                 mov     gp, 0x402B5960
CODE:00000080                 mov.f   r2, 0
CODE:00000088                 jlne    [r2]
CODE:0000008C                 mov     fp, 0
CODE:00000090                 jl      0x40229EDC
CODE:00000098                 b       loc_A0

负载基数可能是 40000000 或 40200000,但也可能是其他内容。