IDA技巧(105)自定义基址的偏移量

admin 2025年1月30日02:13:01评论17 views字数 689阅读2分17秒阅读模式

我们之前已经讨论过简单偏移量,即操作数值或数据值与程序中的地址匹配,因此可以直接转换为偏移量。然而,程序也可能采用更复杂或间接的方式来引用位置。一种常见的方法是使用从某个预定义基址的小偏移量。

从寄存器的偏移量(位移)

许多处理器支持称为“寄存器带位移”、“寄存器带偏移”或类似的寻址模式。此类模式中的操作数可能使用类似以下的语法:

  1. reg(offset)
  2. offset(reg)
  3. reg[offset]
  4. [reg, offset]
  5. [reg+offset]
  6. 等等

基本逻辑在所有情况下都是相同的:偏移量加到寄存器的值上,然后用作数字或(更常见地)地址。在后一种情况下,让IDA为您计算最终地址并添加交叉引用可能会很有用。如果您知道在执行此指令时寄存器的值(例如,它在前面的指令中设置),这就非常简单:

  1. 将光标放在操作数上,调用 编辑 > 操作数类型 > 偏移量 > 偏移量(用户定义),或按 CtrlR;
    IDA技巧(105)自定义基址的偏移量
  2. 基址字段中输入寄存器值;
    IDA技巧(105)自定义基址的偏移量
  3. 点击确定;
  4. IDA将计算最终地址,用等效表达式替换偏移量值,并添加到目标的交叉引用:
    IDA技巧(105)自定义基址的偏移量

现在很明显,被引用的位置是dword_E01FC0C4

学习资源

立即关注【二进制磨剑】公众号

👉👉👉【IDA 技巧合集】👈👈👈
👉👉👉【Github 安全项目合集】👈👈👈
零基础学习 IDA 逆向
【课程完结!内容揭秘!】7 天打造 IDA 9.0 大师:从零基础到逆向精英
🔥🔥🔥 第二期 Android 内核逆向🔥🔥🔥🔥
【课程完结!内容揭秘】第 2 期-Android 逆向内核攻防
🔥🔥🔥 第三期 程序混淆十讲🔥🔥🔥🔥
【课程】第 3 期-程序混淆十讲【早鸟报名开启】

原文始发于微信公众号(二进制磨剑):IDA技巧(105)自定义基址的偏移量

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月30日02:13:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA技巧(105)自定义基址的偏移量https://cn-sec.com/archives/3685919.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息