GitHub Actions 最近上了一大批 AMD 的 x86 机器,DR 的某几个 x86 测试只要分到这些机器上就大概率会挂,上游又比较缺人修,每次想合代码都要 rerun 好多遍撞大运,好烦啊 😫
详细说明一下 box64 这个 bug 现象:
在运行某些 windows installer 的时候,观测到
这个 bug 非常奇特,box64 常用的 debug 手法得到的全是误导信息,花了好多时间在这些假信息上。
在运行某些 windows installer 的时候,观测到
lock or dword ptr [eax], edx 执行失败,如果在 Dynarec 中禁用这条指令,则一切正常。挂上 gdb 后发现,segv 的地方是 sc.w.aqrl ,这个指令试图去写 0x401000 这个地址, info proc mapping 显示这块内存是 r-x,然后尝试写了几次之后,不知道在什么地方 TF 变成了 1(其实就是在上图中的 signal handler 中,把 x5 的值当成 eflags 了)然后 box64 进到了单步模式(每执行一条指令就会主动进 sighandler,即 SIGTRAP),再然后从 signal handler 回来之后,又跑了一会,从栈上弹了个 0 给了 RIP,然后就炸了。这个 bug 非常奇特,box64 常用的 debug 手法得到的全是误导信息,花了好多时间在这些假信息上。
👍2
Solving Linear Arithmetic Constraints
for User Interface Applications
https://constraints.cs.washington.edu/solvers/uist97.pdf
for User Interface Applications
https://constraints.cs.washington.edu/solvers/uist97.pdf
https://shell-storm.org/online/Online-Assembler-and-Disassembler/?opcodes=66+F3+A7&arch=x86-32&dis_with_ins=True
emmm,好像发现了一个 capstone 反汇编 bug
emmm,好像发现了一个 capstone 反汇编 bug
🤯1