首页
社区
课程
招聘
[原创] (3/2更新)abc 文件格式解析模板(010Editor)
发表于: 2023-11-26 11:43 9947

[原创] (3/2更新)abc 文件格式解析模板(010Editor)

2023-11-26 11:43
9947

照着官方文档和代码写了个 010Editor 解析模板,还不是很完善,凑合着用。放到 GitHub 了,附件里也传了一份,附带一个测试用的 abc。大部分是照着 OpenHarmony 官方文档写的,小部分文档不准确,自己扒了源码看。

这个不是方舟字节码(Ark Bytecode)的反汇编器,只是解析 abc 文件格式的模板,abc 文件里面包含方舟字节码,类比 .dex 和里面的 Dalvik 字节码的关系。
方舟字节码的反汇编器在 OpenHarmony 官方仓库有,需要自己编译源码,附件里传了个我编译的 Linux 版本和 PolyOS 模拟器里带的 Windows 版本。

已知问题

  • LiteralArray 可能解析不准确(还不太清楚 LiteralTag::ARRAY_* 类型的值要如何解释,以及为何源码中遇到这种类型就立即结束 LiteralArray
  • MethodRegionIndex 指向的方法的解析有点问题,所以暂时注释掉了
  • MethodHandle 解析未实现
  • (11/28更新)刚发现 LineNumberProgram 的解析也是有问题的,没有处理操作码跟着的操作数,会误把操作数里的 0x0 当成结束标志
  • (11/28更新)这条应该是实现了(如果没在 OHOS 源代码里看错地方的话),原文:any 类型的 Value 解析未实现

更新日志

2024/3/2 更新:实现了对 module record 的解析,LiteralArray 中一些项属于这个类型,参考:https://gitee.com/openharmony/arkcompiler_runtime_core/blob/master/libark_defect_scan_aux/abc_file.cpp#L542
2023/11/28 更新:实现了 DebugInfoAnnotation 相关结构体、any 类型的 Value 的解析,附件已上传新版


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2024-3-2 21:28 被hx九七编辑 ,原因:
上传的附件:
收藏
免费 3
支持
分享
最新回复 (16)
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2

11111111111111111111111111

最后于 2023-11-26 12:07 被光刃编辑 ,原因:
2023-11-26 11:52
0
雪    币: 20
活跃值: (801)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
光刃 这个abc有啥用,是漏洞挖掘吗?你解析这个是干啥?用了多少时间?我们对你发的样本进行了解析,用了3秒解析完毕。并输出pit脚本<?xml version=&qu ...
都不知道是干啥用你在这回复啥?贴个 Peach 的输出干什么?你爱 fuzz 自个 fuzz 去
2023-11-26 12:01
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
4
2023-11-26 12:01
0
雪    币: 10693
活跃值: (7607)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
光刃 [em_13]
不要在这里阴阳怪气,一点风度都没有,仗势欺人
2023-11-26 17:55
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
6
bluefish蓝鱼 不要在这里阴阳怪气,一点风度都没有,仗势欺人

大哥你这就不对了吧,我欺负谁了?
既然该板块不需要看到fuzz类的信息,我删除就是了。
您没必要这样无中生有吧。

最后于 2023-11-26 18:12 被光刃编辑 ,原因:
2023-11-26 18:11
0
雪    币: 3004
活跃值: (30866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2023-11-26 23:20
1
雪    币: 10693
活跃值: (7607)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
光刃 bluefish蓝鱼 不要在这里阴阳怪气,一点风度都没有,仗势欺人 大哥你这就不对了吧,我欺负谁了?既然该板块不需要看到fuzz类的信息,我删除 ...
你这样否定别人的成果,一踩一捧自己产品,这样的回复会让新人感到十分不舒服,严重打击他人的心态。
你的回复已经对他人造成了影响,删除是应该的,但这并不会因为你删除影响就消失了,希望你作为圈内大佬,慎言慎行。
2023-11-26 23:33
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
9
bluefish蓝鱼 你这样否定别人的成果,一踩一捧自己产品,这样的回复会让新人感到十分不舒服,严重打击他人的心态。 你的回复已经对他人造成了影响,删除是应该的,但这并不会因为你删除影响就消失了,希望你作为圈内大佬,慎言 ...
1,我没有否定别人的工作。我只是说我没看懂。你的言论是你个人观念,而不是事实。
2,我也没有捧自己的产品,我发的是脚本文件,无产品信息。更没有打击别人。同样你这是诽谤。
3,我的回复是给论坛其他朋友看的,不是给您看的。同样您的回复让我心理也很不舒服。
4,我不知道您是谁,也不知道您出于什么目的,但是互联网不是法外之地。所以希望您停止无必要的言论攻击。
2023-11-27 06:27
0
雪    币: 10693
活跃值: (7607)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
光刃 1,我没有否定别人的工作。我只是说我没看懂。你的言论是你个人观念,而不是事实。 2,我也没有捧自己的产品,我发的是脚本文件,无产品信息。更没有打击别人。同样你这是诽谤。 3,我的回复是给论坛其他朋 ...
那你看看贴主给你的回复,发这些招人嫌的回复,不就等着被人骂吗
2023-11-28 01:19
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
11
bluefish蓝鱼 那你看看贴主给你的回复,发这些招人嫌的回复,不就等着被人骂吗
为什么我删除脚本:
我个人认为pit脚本有利于了解文件格式解析,所以本着奉献精神,我贡献出了该样本的pit脚本。
但是出于尔等的回复,我个人认为是不友好的,让我阅读后不适的,所以我删除了我发的pit脚本。
我删除他不是义务,而是权利。

而你执意的,持续的扩大争论战场,无中生有,诽谤,你到底是为了什么?是不是背后有其他的势力?我就不知道了。
但是您的错误言论已经影响我方产品的商誉,可能已经对我方带来了严重的经济损失。望知晓!
2023-11-28 07:32
0
雪    币: 2172
活跃值: (1973)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
光刃 为什么我删除脚本: 我个人认为pit脚本有利于了解文件格式解析,所以本着奉献精神,我贡献出了该样本的pit脚本。 但是出于尔等的回复,我个人认为是不友好的,让我阅读后不适的,所以我删除了我发的pi ...
您好,非常抱歉打扰了,请问您的PIT脚本还愿意再分享一下吗?另外能否简短介绍一下是怎么根据样本文件快速生成脚本的,谢谢。
2023-11-28 11:14
0
雪    币: 10693
活跃值: (7607)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
光刃 为什么我删除脚本: 我个人认为pit脚本有利于了解文件格式解析,所以本着奉献精神,我贡献出了该样本的pit脚本。 但是出于尔等的回复,我个人认为是不友好的,让我阅读后不适的,所以我删除了我发的pi ...
2023-11-28 16:10
1
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
14
UserXCh 您好,非常抱歉打扰了,请问您的PIT脚本还愿意再分享一下吗?另外能否简短介绍一下是怎么根据样本文件快速生成脚本的,谢谢。
不分享上面所述格式的pit脚本了,已经删除了。
既然删除了就没必要再发了。

分享一个pdf的吧。
https://bbs.kanxue.com/thread-278268.htm

生成方式:把任意格式样本投喂给我们的软件,我们软件全自动生成。
如果你想自己尝试,可以尝试试用版软件。
软件下载地址:www.asm64.com/new 
选白皮蒜
2023-11-28 17:30
0
雪    币: 790
活跃值: (1081)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢楼主的分享
2023-12-7 16:06
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
想问下,是否有修改abc代码的方式
2024-4-7 16:05
0
雪    币: 20
活跃值: (801)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
mb_aryyjtar 想问下,是否有修改abc代码的方式
理论上改里面字节码就行,官方仓库有反汇编器和汇编器。要装到 HarmonyOS(非 OpenHarmony)估计要重签名,这方面没了解过。
2024-4-11 00:14
0
游客
登录 | 注册 方可回帖
返回
//