美文网首页
使用fxdis反汇编HLSL字节码

使用fxdis反汇编HLSL字节码

作者: 静析机言 | 来源:发表于2019-04-25 10:56 被阅读0次

大佬们太厉害了,近来出现了将核心算法藏在HLSL的bytecode中的趋势。如果遇到此类问题,获取核心算法的关键在于找到编译好的shader在代码中的位置,然后利用DirectX的D3Ddisassemble()反编译shader得到HLSL,从而分析得出真正的算法。或者,直接使用fxdis反汇编 shader字节码。

下面演示怎样用 fxdis反汇编shader字节码。

1. 下载fxdis代码

https://code.google.com/archive/p/fxdis-d3d1x/

2. 使用VS2008或VS2010编译成win32程序。

3. 如果编译过程中出现没有找到d3dcompiler.h的错误,则可以判断系统没有安装DirectX SDK。

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812

4. 安装完DirectX SDK后再重新编译fxdis项目,在debug目录下生成了fxdis.exe。

5. 测试:

假设有一个写有HLSL字节码的文件test.bin

执行debug/fxdis.exe test.bin,将获取下列汇编代码

附:

大家可能有疑问:系统是怎样由HLSL文件生成字节码的呢?

它是由DirectX SDK中的fxc.exe将*.hlsl文件编译为字节码(/Fo)或汇编代码(/Fc)的。

fxc /Od /T ps_4_0 test.hlsl /Fo test.bin /Fc test.txt

上述例子中的test.hlsl长成这样

相关文章

  • 使用fxdis反汇编HLSL字节码

    大佬们太厉害了,近来出现了将核心算法藏在HLSL的bytecode中的趋势。如果遇到此类问题,获取核心算法的关键在...

  • Python3.8官方中文API参考手册

    Python 提供了许多模块来帮助使用 Python 语言。 这些模块支持标记化、解析、语法分析、字节码反汇编以及...

  • Java 反汇编分析(一)

    以这段Java代码为例,反汇编分析一下对应的Java字节码。将该文件保存为BooleanTest.java。 使用...

  • UE4对象系统_UFunction_字节码执行

    本来想研究一下vm的字节码并写个反汇编工具,结果发现UE4已经有了:-) 。反汇编的工具相关源码有:Engine\...

  • 利用dis模块分析python代码

    作者信息: Author : 黄志成(小黄)博客地址: 博客 dis模块通过反汇编来支持CPython 字节码的分...

  • LLVM 工具

    llvm-dis llvm-dis 是一个反汇编工具,通过 LLVM 字节码文件(.bc)得到 LLVM 汇编文件...

  • java的asm若干实践

    前置知识、工具、代码库等 jdk里的javap,用来反汇编class文件查看生成的字节码 org.objectwe...

  • JDK内置工具命令

    javap Java反编译工具,主要用于根据Java字节码文件反汇编为Java源代码文件用法:javap

  • ubuntu环境asmtools安装及使用

    asmtools是openjdk提供的java字节码汇编及反汇编工具,学习JVM时需要的工具,下面是这个工具的安装...

  • 16.JVM垃圾回收

    JDK内置工具 javapjava反编译工具,主要用于根据Java字节码文件反汇编为Java源代码文件。1.png...

网友评论

      本文标题:使用fxdis反汇编HLSL字节码

      本文链接:https://www.haomeiwen.com/subject/obdagqtx.html