VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2668回复:14

有什么办法可以简单地得到指令的长度?

楼主#
更多 发布于:2002-06-18 09:33
不要反汇编,那太麻烦。怎样得到指令的长度?比如给它一个xor eax,eax,它就知道长度是2。
以前看到一个关于研究debug的文章,他说debug用到的方法比较巧妙,但我忘记了。
有谁对debug有研究?那东西那么小,功能如此强大,佩服ing。 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-18 12:12
除了让自己的程序了解机器编码规则外还真没什么好办法。Debug有高招?我也想知道。hehe
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-06-18 15:26
download microsoft detour, it enum all possible asm code ...
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-18 16:05
download microsoft detour, it enum all possible asm code ...

大兄弟:(
1,为何总说洋文?:(
2,你不知道我为何要指令长度,看看这是什么版 :(
3,那个什么detour是什么玩意?详细信息?:(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
eqinzm
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-06-18 16:26
detour也是通过反汇编来得到指令长度的
Hi
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-18 16:30
detour也是通过反汇编来得到指令长度的

我不想那么做啊
似乎debug有些妙计 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-06-18 16:47
http://www.research.microsoft.com/sn/detours/

枚举所有的可能的asm code十分简单。
不过是定义一个数组罢了。 有什么复杂? 也要不了多少代码。
如果只是返回没有debug info的分析,程序不会大。象debug一类的东西。

具体为何用洋文,简单,我的os是洋文的,输入中文不顺。还是输入洋文简单。
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-18 16:57
大兄弟
1,我的系统也是洋文,但我输入中文很爽,我用紫光拼音
2,那东西用C写的?
我只是想找个最简单的方法来获得所有指令的长度,最好这部分代码用汇编写成最多2~3K,4~5K也凑合。
我倒是不是觉得反汇编麻烦,而是觉得太大

[编辑 -  6/18/02 by  Koms Bomb]
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-18 17:16
如果你是想查 x86 的指令,找 x86 机器码的编码规则就行了。

一些讲汇编的书上会有的。
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-18 17:20
如果你是想查 x86 的指令,找 x86 机器码的编码规则就行了。

一些讲汇编的书上会有的。

这我当然知道,但是看我说的,是不想反汇编啊,那样会比较大啊 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-18 17:30
我所理解的你的意思,你看看对不对:
你想读一个编译好的程序,当发现 31H, C0H (或发现 31H)时,就能够知道这是一个 2 字节指令,当然你并不想反汇编它,也就是说你并不关心它是 xor eax,eax 还是其它的什么。

但是,如果不知道机器码编码规则,你不可能知道它是 2 字节指令。只不过你不需要完整的实现编码规则,也就是你所说的“不反汇编”。

[编辑 -  6/18/02 by  cn18799]
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-18 17:33
兄弟说的对,我正是这个意思。我想要的是指令的长度,这样我可以确定哪里是下一条指令,但我不必知道这个指令到底做什么的。
主要是想找个比较巧妙的方法,不必真的去反汇编,不过估计要构造一些表。 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
12楼#
发布于:2002-06-19 11:51
我想你还是要反汇编,要不然没有办法知道。
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-06-19 12:04
我想你还是要反汇编,要不然没有办法知道。

机器码和汇编语言是两回事。

要达到上面的目的:
1. 必须要懂机器码(至少要有机器码的概念)。
2. 既然懂机器码,就没必要再把它翻译成汇编语言。

[编辑 -  6/19/02 by  cn18799]

[编辑 -  6/19/02 by  cn18799]
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
Nouk
驱动中牛
驱动中牛
  • 注册日期2001-08-22
  • 最后登录2006-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-19 13:30
Pre-analysis the mapping table.
Try to find the rule of instruction length.
P.S Detour is API Hook sample.
Taiwan's Driver Developer
游客

返回顶部