【问题标题】:IMUL OllyDbg multiplicationIMUL OllyDbg 乘法
【发布时间】:2013-06-24 17:56:57
【问题描述】:

我无法理解汇编语言中的一项指令-> IMUL

据我所知,Imul 是 ->

imul dest, source1, source2

我现在遇到的问题,ollyDBG中Imul的乘法结果和我的不一样!

这是 OllyDbg 上的 IMUL ->

而乘法的结果是十进制的 0x367AA048 或 914006088..

我尝试用这个 PHP 代码来测试这个乘法。

echo dechex(0x00000053 * 0x97C9F598);

令人惊讶的是,我的 PHP 乘法结果与 OllyDbg 得到的结果不同..

我希望有人能帮我弄清楚这个问题..

谢谢。

【问题讨论】:

  • 尝试使用 bcmul 的 bc 数学函数。但您仍然需要考虑 dec->hex 转换。尝试使用 bc 数学操作您自己的 dechex 函数。这是the link

标签: assembly


【解决方案1】:

此乘法的结果不适合 32 位值,因此您在 EAX 中看到的值只是结果的低 4 个字节。

由于此乘法结果为:0x31367AA048,因此如您所见,将低 4 个字节:0x367AA048 放入 EAX

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2018-09-25
    • 2015-06-22
    • 2011-08-12
    • 2012-04-21
    相关资源
    最近更新 更多