Assembly MOVSX EDX、字节PTR[ESP+;ECX+;8]命令的OllyDbg和IDA PRO的差异
在使用OllyDbg和idapro反汇编同一个程序时,我用不同的方式反汇编了一行代码 OllyDBG:Assembly MOVSX EDX、字节PTR[ESP+;ECX+;8]命令的OllyDbg和IDA PRO的差异,assembly,reverse-engineering,ida,ollydbg,Assembly,Reverse Engineering,Ida,Ollydbg,在使用OllyDbg和idapro反汇编同一个程序时,我用不同的方式反汇编了一行代码 OllyDBG: MOVSX EDX,BYTE PTR [ESP+ECX+8] 艾达: 有人能解释一下IDA PRO在这里的意思吗?我对这里的68h+字符串部分感到失望。我可以假设68h+String总是表示字节PTR吗?IDA尝试设置与局部变量相关的命令[ESP+ECX+8]指向与[ESP+ECX+68h+字符串]相同的地址。您可以将IDA的输出读取为[ESP+ECX+8+String+60h]。我
MOVSX EDX,BYTE PTR [ESP+ECX+8]
艾达:
有人能解释一下IDA PRO在这里的意思吗?我对这里的68h+字符串部分感到失望。我可以假设68h+String总是表示字节PTR吗?IDA尝试设置与局部变量相关的命令<代码>[ESP+ECX+8]指向与
[ESP+ECX+68h+字符串]
相同的地址。您可以将IDA的输出读取为[ESP+ECX+8+String+60h]
。我也很困惑,IDA对字节PTR
和单词PTR
没有区别,两者都会产生不同的命令。IDA尝试将此命令与局部变量相关<代码>[ESP+ECX+8]指向与[ESP+ECX+68h+字符串]
相同的地址。你可以把IDA的输出读作[ESP+ECX+8+String+60h]
。我也很困惑,IDA对字节PTR
和单词PTR
没有区别,两者都会产生不同的命令。IDA应该声明字符串是一个值为-60h的局部变量
功能/程序的开始
(68+字符串)==(68+(-60))==(68-60)==8
这与ollydbg显示的内容相同
IDA的反汇编语法往往令人困惑
例如,ollydbg将显示
00405712 8B4424 30 MOV EAX, DWORD PTR SS:[ESP+30]
而艾达会出现
text:00405712 mov eax, [esp+1Ch+arg_4]
因为在函数的开头,ida将arg_4定义为
.text:004056E0 arg_4 = dword ptr 14h
就是
14h + 1ch == 30h
如果您不喜欢ida语法,但希望看到直接的[esp+30]
您可以运行此脚本
shift +f2 paste and press ok
请注意,ida idc的所有功能对于任何大规模操作来说都太慢
在下面的代码段中,将其缩减为更小的块以获得更快的结果,而不是MaxEA()
auto i;
for ( i = MinEA() ; i < MaxEA() ; i = NextHead(i, MaxEA()) )
{
OpHex(i,-1);
}
autoi;
for(i=MinEA();i
ida应该声明字符串为局部变量
,值为-60h
功能/程序的开始
(68+字符串)==(68+(-60))==(68-60)==8
这与ollydbg显示的内容相同
IDA的反汇编语法往往令人困惑
例如,ollydbg将显示
00405712 8B4424 30 MOV EAX, DWORD PTR SS:[ESP+30]
而艾达会出现
text:00405712 mov eax, [esp+1Ch+arg_4]
因为在函数的开头,ida将arg_4定义为
.text:004056E0 arg_4 = dword ptr 14h
就是
14h + 1ch == 30h
如果您不喜欢ida语法,但希望看到直接的[esp+30]
您可以运行此脚本
shift +f2 paste and press ok
请注意,ida idc的所有功能对于任何大规模操作来说都太慢
在下面的代码段中,将其缩减为更小的块以获得更快的结果,而不是MaxEA()
auto i;
for ( i = MinEA() ; i < MaxEA() ; i = NextHead(i, MaxEA()) )
{
OpHex(i,-1);
}
autoi;
for(i=MinEA();i
正在查找类似的IDA问题。IDA将本说明正确列为:
inc字节ptr ds:900h
但当你在偏移量上放置标签时,它会
inc-ds:byte_900
通过命名偏移量,ptr和字节引用实际上消失了耸耸肩:正在寻找类似的IDA问题。IDA将本说明正确列为:
inc字节ptr ds:900h
但当你在偏移量上放置标签时,它会
inc-ds:byte_900
通过命名偏移量,ptr和字节引用实际上消失了耸耸肩:我不这么认为。原始字节是什么样子,根据IDA pro,字符串是什么?@sircodesalot它是一个movsx
,所以是的,它可以是字节ptr
。算法是:先决条件:有一个文本字符串。第1步:将字符串的第一个字符移动到EDX中第2步:使用它进行smth第3步:移动到下一个字符。我不这么认为。原始字节是什么样子,根据IDA pro,字符串是什么?@sircodesalot它是一个movsx
,所以是的,它可以是字节ptr
。算法是:先决条件:有一个文本字符串。步骤1:将字符串的第一个字符移动到EDX中步骤2:使用它进行smth步骤3:移动到下一个字符。