トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

解説/FEBuilderGBA/反汇编_ZH

Last-modified: 2018-05-21 (月) 19:51:26 (32d)

使用FEBuilderGBA反汇编器进行ROM分析(hacker用)

FEBuilderGBA是GBAFE简单改造的工具、
真正的代码分析,希望可以帮助大家。

这次,我来介绍一下分析基础的反汇编和地图文件。


反汇编

FEBuilderGBA独自的反汇编程序,地图文件生成程序的功能。
使用这个的话,可以取得自动插入的asm源代码。

这样的源代码生成。

08E4F6E0 B500   push {, lr}
08E4F6E2 46C0   mov r8, r8
08E4F6E4 4B05   ldr r3, [pc, #0x14] # pointer:08E4F6FC -> 0202BCF4 (所持金 )
08E4F6E6 6819   ldr r1, [r3, #0x0] # pointer:0202BCF4 (所持金 )
08E4F6E8 2000   mov r0, #0x0
08E4F6EA 46C0   mov r8, r8
08E4F6EC 4A04   ldr r2, [pc, #0x10] # pointer:08E4F700
08E4F6EE 4291   cmp r1 ,r2
08E4F6F0 DB00   blt #0x8e4f6f4
    08E4F6F2 2001   mov r0, #0x1
08E4F6F4 4A03   ldr r2, [pc, #0xc] # pointer:08E4F704 -> 030004B0 (数据事件命令40050000XXXXXXXX)
08E4F6F6 6310   str r0, [r2, #0x30] # pointer:030004E0
08E4F6F8 2000   mov r0, #0x0
08E4F6FA BD00   pop {, lr}
08E4F6FC BCF4 0202   //LDRDATA
08E4F700 C350 0000   //LDRDATA
08E4F704 04B0 0300   //LDRDATA

StepA01

请从菜单中选择一个工具->反汇编。
https://i.imgur.com/Y0oSzvT.jpg

StepA02

如果插入函数的地址的话,会显示其内容。

只是,哪里有什么函数不知道。
让我们来看看所有的源代码。

「输出到所有文件」请选择。
https://i.imgur.com/FqhJSoD.jpg

StepA03

ASM源代码输出呢,import IDA上创造的mapfile?您可以选择。
最新版本,no $ gba debugger用的sym文件也可以作成。

总之,这次,ASM源代码生成。
如果要生成ASM源代码,需要一个小时左右的时间,建议您在睡觉前执行。
https://i.imgur.com/fxIsbFe.jpg

StepA04

将asm一直输出到指定的文件中。
大概需要一个小时。
https://i.imgur.com/16fcu45.jpg

disarm的不同

FEBuilderGB具有与disarm不同的功能

  1. 您可以跟踪所有LDR目标指针。
  2. 名称被自动分配给当前使用asmmap已知函数和功能的 存储器。
  3. 其他数据部分如图像被缩写。
  4. 所有数字都以十六进制符号#0x1234输出。

但是,有以下限制。

  1. 它只对应于thumb模式。

关于mapfile

FEBuilderGBA已知的所有信息都输出到mapfile。

  1. 可以更改的结构信息 romfe*.cs
  2. disamble制作rom所持信息
  3. 地址信息由补丁文件提供
  4. 有关ROM中存在的lz 77压缩数据的信息
  5. 简单显示多个连续的0x00和0xFF作为空白区域
  6. 有关已知功能和数据区域的信息 /config/data/asmmap*.txt

但还没有足够的信息。 请告诉我,如果你知道有关未知功能的信息。 另外,由于FEBuilderGBA和补丁已知的结构等结构也被用作反汇编器的映射文件 、 你发布的补丁越多,反汇编器自动变得越聪明 。