惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
J
Java Code Geeks
S
SegmentFault 最新的问题
L
LangChain Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
H
Help Net Security
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
N
Netflix TechBlog - Medium
A
About on SuperTechFans
博客园 - 叶小钗
美团技术团队
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 看到有公司考核 token 指标,很好奇大家上个月的 AI 账单是多少 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 现在还有什么渠道可以稳定安全地使用 Claude 吗? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用?
开源日记 - garlic decompiler - 2026-01-05
neocanable · 2026-01-05 · via V2EX
  1. 用 c 手撸一个 Java 的 decompiler
  2. 开源一个 c 语言实现的 Java 反编译器
  3. 开源反编译器支持 dex/apk

2025 年结束了,garlic decompiler 一堆 bug 还没有解决完;

我就挖了一个新坑:做 android native 层的反汇编,也就是 arm 的汇编。

这个路径绕啊绕的,很 SB ,可以借鉴,做事之前一定要调研好。

  1. 哎,第一次做反汇编的大概都是根据二进制的位与来与去,写出来的极其不通用 , pass掉这种玩具写法。

  2. 嗯,发现开源项目比如 capstone 实现的真好啊,去看看,发现反汇编有引擎这么一说。

  3. 哦,原来 capstone 也是跟随着 LLVM 更新的,我去看看 LLVM 。

  4. 哦,原来人家官方是有 fat 数据的,那还写鸡毛的反汇编引擎,直接解析官方 fat 数据就 ok 了。

  5. 哦,不对,官方数据只能提供汇编文本化的输出,很多东西要自己定义。

经过了这么大一圈,我写了一个关于 arm - T32/A32/A64 的反汇编引擎。实现方案很简单

  1. 用 ruby 定义 arm 汇编语言的 DSL ,和编写测试
  2. 定义 c 语言的结构,脚本生成静态数据
  3. 实现一边解析规则
  4. 对比测试,IDA/Ghidra 等等对比
  5. alias 啊,宽指令,simd 什么的支持一下

T32 和 A32 还在调试,A64 效果:

[ELF] 0x000000000008b0f0 <avcodec_find_decoder> # .text
   8b0f0: f00018e1    adrp        x1, #0x8b40f
   8b0f4: f947a421    ldr         x1, [x1, #0xf48]
   8b0f8: 17ffffe4    b           #0x8b088
[ELF] 0x000000000008b0fc <avcodec_find_encoder_by_name> # .text
   8b0fc: f00018e1    adrp        x1, #0x8b41b
   8b100: f945a421    ldr         x1, [x1, #0xb48]
   8b104: 14000001    b           #0x8b108
   8b108: d100c3ff    sub         sp, sp, #0x30
   8b10c: a90153f5    stp         x21, x20, [sp, #0x10]
   8b110: a9027bf3    stp         x19, x30, [sp, #0x20]
   8b114: f90007ff    str         x31, [sp, #0x8]
   8b118: b40001c0    cbz         x0, #0x8b150
   8b11c: aa0103f3    mov         x19, x1                 // alias orr
   8b120: aa0003f4    mov         x20, x0                 // alias orr
   8b124: 94000019    bl          #0x8b188
   8b128: aa0003f5    mov         x21, x0                 // alias orr
   8b12c: b4000140    cbz         x0, #0x8b154
   8b130: aa1503e0    mov         x0, x21                 // alias orr
   8b134: d63f0260    blr         x19
   8b138: 34ffff60    cbz         w0, #0x8b124
   8b13c: f94002a1    ldr         x1, [x21, #0x0]
   8b140: aa1403e0    mov         x0, x20                 // alias orr
   8b144: 97ff30c7    bl          #0x57460
   8b148: 35fffee0    cbnz        w0, #0x8b124
   8b14c: 14000002    b           #0x8b154
   8b150: aa1f03f5    mov         x21, x31                // alias orr
   8b154: aa1503e0    mov         x0, x21                 // alias orr
   8b158: a9427bf3    ldp         x19, x30, [sp, #0x20]
   8b15c: a94153f5    ldp         x21, x20, [sp, #0x10]
   8b160: 9100c3ff    add         sp, sp, #0x30
   8b164: d65f03c0    ret         x30
[ELF] 0x000000000008b168 <avcodec_find_decoder_by_name> # .text
   8b168: f00018e1    adrp        x1, #0x8b487
   8b16c: f947a421    ldr         x1, [x1, #0xf48]
   8b170: 17ffffe6    b           #0x8b108
   8b174: b0001ac0    adrp        x0, #0x8b4cd
   8b178: 90000001    adrp        x1, #0x8b178
   8b17c: 91013000    add         x0, x0, #0x4c
   8b180: 91003021    add         x1, x1, #0xc
   8b184: 17ff31c7    b           #0x578a0
   8b188: 910023e0    add         x0, sp, #0x8
   8b18c: 17ff358d    b           #0x587c0
   8b190: a9bf7bf3    stp         x19, x30, [sp, #0x3f0]!
   8b194: b941ec08    ldr         w8, [x0, #0x1ec]
   8b198: 7100091f    cmp         w8, #0x2                // alias subs
   8b19c: 540000eb    b           #0x8b1b8
   8b1a0: b00013e1    adrp        x1, #0x8b41d
   8b1a4: 9113c821    add         x1, x1, #0x4f2
   8b1a8: 97ff2f5a    bl          #0x56f10
   8b1ac: 5297d600    mov         w0, #0xbeb0             // alias movz
   8b1b0: 72b75500    movk        w0, #0xbaa8, lsl #0x10
   8b1b4: 1400003a    b           #0x8b29c
   8b1b8: f9402c13    ldr         x19, [x0, #0x58]
   8b1bc: b941e808    ldr         w8, [x0, #0x1e8]
   8b1c0: 52800029    mov         w9, #0x1                // alias movz
   8b1c4: b901ec09    str         w9, [x0, #0x1ec]

顺便感叹一下,AI 真的好用