检测英特尔 PIN 上的非法指令操作码

2023-12-02

我正在编写一个 Pin 工具,我想在其中检测具有特定操作码的指令。我有一个来自示例 C 程序的可执行文件,我正在其中打印 hello world。使用的体系结构是 x86_64,我在程序中跟踪了汇编指令。我将该程序的汇编指令跟踪提供给英特尔 PIN 工具,我在该工具上运行指令跟踪并执行操作。

我的目标是从原始程序中检测特定的操作码。例如,我在我的 C 程序中添加了以下行 -

asm(".byte 0x17");   // pop ss in 32-bit mode, but illegal in x86-64

由于这个 0x17 是我的 C 程序跟踪中的一条指令。在我的英特尔 PIN 工具中,我有这样的指令跟踪 -

VOID Instruction(INS ins, VOID *v) 
{
   if(INS_Opcode(ins)==0x17)
   {
        //Do something
   }
}

然而,当我运行指令跟踪时,我的 Pin 工具由于我放置的非法指令 0x17 而失败。

当我打印指令操作码时,我发现它们的操作码与 x86_64 的操作码不同。例如,当我打印时,指令 AND 的操作码为 0x17。我是否必须进行某种解码,或者我是否以错误的方式检测操作码?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测英特尔 PIN 上的非法指令操作码 的相关文章

随机推荐

  • 如何检查文件夹中是否存在文件?

    我需要检查文件夹中是否存在 xml 文件 DirectoryInfo di new DirectoryInfo ProcessingDirectory FileInfo TXTFiles di GetFiles xml if TXTFile
  • 如何安排每月第一个周日跑步

    我在 RedHat 上使用 Bash 我需要安排一个 cron 作业在每月第一个星期日上午 9 00 运行 我怎样才能做到这一点 你可以把这样的东西放在crontab file 00 09 7 date d le 07 run your s
  • 搜索电子邮件地址时 MySQL MATCH AGAINST

    我正在编写新闻通讯脚本 我需要在地址中实现搜索 我使用 FULLTEXT 对表建立了索引 但是当我执行以下查询时 SELECT FROM addresses WHERE MATCH email AGAINST email protected
  • Android 弹跳球

    所以我只是想让一个球在屏幕上弹跳 它会因为重力而减慢速度 并像普通球一样从墙上反射 弹跳 有人可以提供一些基础知识和非常简单的实现吗 其他例子似乎有点 过头 似乎超出了我想做的事情 我试过这个 public void updateLogic
  • Javascript:四舍五入到下一个 5 的倍数

    我需要一个实用函数 它接受一个整数值 长度范围从 2 到 5 位数字 并向上舍入到next5的倍数而不是nearest5 的倍数 这是我得到的 function round5 x return x 5 gt 2 5 parseInt x 5
  • C++ 多重继承私有成员不明确访问

    下面的代码 class A1 public int x class A2 private int x return 67 class M public A1 public A2 int main M m m x 编译有错误 error C2
  • Windows 8 Metro 风格应用程序中 .NET GeoCooperative.GetDistanceTo 的等效项

    Metro 风格 Windows 8 应用程序中的 System Device Location GeoCooperative GetDistanceTo 方法等效于什么 Metro 应用程序具有地理坐标类 带有小写的 C 但没有 GetD
  • 在 Typescript 中向现有模块添加定义

    我正在努力使用 Typescript 并修改现有模块的定义 我们习惯将任何想要输出的内容放入 res out 最后有类似 res json res out 的内容 这使我们能够在发送响应时对应用程序进行总体控制 所以我有这样的功能 expo
  • 如何在列表中的多个数据帧上使用 lapply 和粘贴

    我无法结合使用 lapply 和 Paste 来组合列表中包含的多个数据帧的两列 我查看了多个来源 但找不到答案 这个答案将粘贴应用于向量列表以获取字符串列表是关于组合列表中的行 而不是组合列来获得向量 这个答案解释了如何选择列但不将它们粘
  • 在 C 中使用 malloc 为 typedef 类型分配空间

    我不确定我到底需要用什么作为参数malloc来分配空间table allocate int 功能 我只是想count table cTable malloc sizeof count table 但这对 size 参数没有任何作用 我应该为
  • 基于 R 中的色相、饱和度、值来排序颜色

    这道题是R和色彩理论的结合 我尝试根据色相 h 饱和度 s 最后值 v 来排序颜色 这是本文末尾代码中的绘制颜色和数据框 Painted 数据框 1 2 3 4 5 h 0 6229508 0 2767296 0 1323283 0 979
  • iOS 版本特定的 info.plist 设置

    我正在更新 iOS 7 的应用程序 同时仍然支持 iOS 6 并且已更新状态栏以使用白色前景UIStatusBarStyle UIStatusBarStyleLightContent 但是 那UIStatusBarStyleLightCon
  • 混淆 ID

    我正在寻找一种将整数 ID 加密 混淆为另一个整数的方法 更准确地说 我需要一个函数int F int x 以便 xF x 是一一对应的 如果 x y F x F y 给定 F x 很容易找出 x 所以 F 不是哈希函数 给定 x 和 F
  • 如何设置 Azure CNAME

    我正在 Azure 上设置 VPS 但一直停留在配置 CNAME 上 该网站已向第三方注册 我已设置以下内容 NAME TYPE TTL VALUE NS 120 ns1 01 azure dns com etc SOA 3600 azur
  • Terraform - 在 Azure 上配置静态 IP 地址

    我已经使用 Terraform 一段时间了 并且对它与 VMware 和 Azure 提供商的使用感到满意 目前 我需要在 Azure 中使用静态 IP 地址配置 VM 试图说服他们摆脱静电 但有人对我使用了安全锤 我无法偏转 虽然我可以在
  • iPhone SDK 是否有可用的 GKVoiceChat 示例?

    我正在寻找 4 0 或更高版本的 iPhone SDK 的 GKVoiceChat 示例 它肯定会对我的 iPhone 游戏有所帮助 我见过两个游戏套件示例 其中包括 GKVoiceChat 在 Apple 开发者论坛中搜索 GCPing
  • 如何将 async/await 与使用基于事件的异步模式的库一起使用?

    我使用的库有一个名为 DoWork 的异步方法 该方法将在操作完成时引发 WorkDone 事件 我想编写一个调用该库的方法 但我希望我的方法是async所以可以用await 本质上 我想做的是 public async Task
  • 如何在Java Swing中实现空闲任务

    我有一个 GUI 应用程序变得非常慢 我想开始介绍各种 GUI 任务的计时 然而 我们的许多 GUI 操作会触发其他操作 然后 稍后调用 以触发其他操作 最终 一切都平静下来 没有什么可做的 此时 我想停止计时器并报告 GUI 操作 花费了
  • 如何签署 OKEx API 请求?

    在尝试向 OKEx API 进行身份验证时 我不断收到无效签名错误 但我无法理解为什么我的签名未通过 另一只眼睛可能有帮助吗 以下是 OKEx API 文档中的一些上下文 签名消息 OK ACCESS SIGN 标头的生成方式如下 创建一个
  • 检测英特尔 PIN 上的非法指令操作码

    我正在编写一个 Pin 工具 我想在其中检测具有特定操作码的指令 我有一个来自示例 C 程序的可执行文件 我正在其中打印 hello world 使用的体系结构是 x86 64 我在程序中跟踪了汇编指令 我将该程序的汇编指令跟踪提供给英特尔