吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3155|回复: 8
收起左侧

[分享] 对于一个指令反汇编的问题 帖子的个人解析

[复制链接]
不苦小和尚 发表于 2020-2-6 14:26
本帖最后由 不苦小和尚 于 2020-2-6 20:01 编辑

昨天晚上看到一个网友发来的帖子,地址如下:https://www.52pojie.cn/thread-1099125-1-1.html
里面主要讲了对于 8378 18 00  这条指令翻译的问题
下面就来讲讲我自己的理解,不对的地方请大家指出。
首先我们先根据第一个字节83,到OPCODE表里查找,结果如下
1.png
查出来是Immediate Grp 1,说明这个包含了多条指令的
要根据后面的一个字节的ModR/M确定相应的指令
操作数中含有Ev符号,那么紧跟后面的一个字节78就是MODR/M,操作码为Group的时候后面必须紧跟ModR/M
总上所述,指令暂时可以解析为:
Grp1 Ev,Ib
到现在还无法确切知道指令和操作数的内容
ModR/M = 78
78的二进制 0111 1000
拆分的ModR/M = 01 |  111 |  000 (Mod : 01 , Reg: 111 , R/M: 000)
首先参考Group指令表查看对应的指令 Reg的可以推断出指令为 CMP
2.png
可以推断出指令格式为:CMP Ev, Ib
3.png
此时指令可以被解析为:CMP [EAX] + disp8, IbCMP [EAX + disp8], Ib   //Dis8 就是表 8位大小的位移Disp8就代表一个字节大小,
指令可以解析为:CMP [EAX + 0x18], IbIb可以解析为一个字节的立即数,
由于在win32系统中一个里立即数占用4个字节,
所以最后的指令就可以翻译为:CMP DWORD PTR [EAX+0x18], 0   

免费评分

参与人数 7吾爱币 +12 热心值 +7 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
pj383153 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
su.tim + 1 这个是什么?没看懂?
qws1855 + 1 + 1 谢谢@Thanks!
女萝岩 + 1 + 1 我很赞同!
liu5653250 + 1 + 1 我很赞同!
陈世界 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

liu5653250 发表于 2020-2-6 17:39
打卡签到免被清理!
女萝岩 发表于 2020-2-6 18:48
写的挺好的,又帮我加深了一遍印象。不过
CMP [EAX + disp8^3]
这种写法我个人觉得容易被误解,最好还是换一种写法。并不是disp8的三次方,这个3是可有可无的,它其实是一种注释,从上面顺序排下来的,正好排到了3.

asm.png

在手册中有关于注释3的说明
asm2.png

 楼主| 不苦小和尚 发表于 2020-2-6 20:00
女萝岩 发表于 2020-2-6 18:48
写的挺好的,又帮我加深了一遍印象。不过
CMP [EAX + disp8^3]
这种写法我个人觉得容易被误解,最好还是 ...

原来如此,谢谢了
qws1855 发表于 2020-2-6 20:03
感谢分享
有辆卡卡 发表于 2020-2-6 21:19
谢谢分享
大大PPQ 发表于 2020-2-7 19:40
真的学习了
JFZ-Jerry 发表于 2020-2-7 20:38
谢谢分享  帮助理解
q510 发表于 2020-2-11 21:02
看不懂啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 05:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表