汇编翻译成c的问题

qiouqfz 2013-03-25 09:13:21
mov al, [edi+4] ; v20 = *(_BYTE *)(v7 + 4)
mov dl, [edi+3] ; v21 = *(_BYTE *)(v7 + 3);
xor byte ptr [esp+40h+var_18+1], cl ; *(WORD *)((char *)&v42 + 1) ^=
__PAIR__(*(BYTE *)(v7 + 2), *(BYTE *)(v7 + 1))

ida得到得结果,
*(WORD *)((char *)&v42 + 1) ^= __PAIR__(*(BYTE *)(v7 + 2), *(BYTE *)(v7 + 1))
这句怎么理解呢?
...全文
220 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsfzxjy 2013-04-04
  • 打赏
  • 举报
回复
引用 7 楼 hhhhhhhhhhkkkkkkkkkk 的回复:
这个工具好滥,生成的代码这么难懂.建议楼主自己写一个,呵呵.
IDA可是目前最好的反汇编软件呀,,
  • 打赏
  • 举报
回复
这个工具好滥,生成的代码这么难懂.建议楼主自己写一个,呵呵.
brider 2013-04-02
  • 打赏
  • 举报
回复
__PAIR__ 在那里就是将两个BYTE计算为WORD。 你的汇编代码跟C代码没对上吧?? 那条汇编代码是操作byte的,C代码是操作WORD的,自己对错代码了吧。把汇编的整个函数和C的整个函数重新对比一些吧。
Hony杨 2013-03-29
  • 打赏
  • 举报
回复
我估计是C库头文件里面的一个宏,不然反编译不会随便生成没用的变量。
Hony杨 2013-03-26
  • 打赏
  • 举报
回复
晕~~, 那这个反编译软件也太烂了吧!
qiouqfz 2013-03-26
  • 打赏
  • 举报
回复
就是不知道这个“__PAIR__”是啥呀
Hony杨 2013-03-26
  • 打赏
  • 举报
回复
得要知道“__PAIR__”这个是啥。
u010045615 2013-03-26
  • 打赏
  • 举报
回复
就是不知道这个“__PAIR__”是啥

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧