首页 文章
  • 5 votes
     answers
     views

    如何反汇编LLVM MCJIT编译的结果?

    我有一个我写的程序,它使用LLVM 3.5作为JIT编译器,我正在尝试更新以在LLVM 3.7中使用MCJIT . 我主要使用它,但我很难重现我用LLVM 3.5实现的一个仅调试功能 . 我希望能够看到JIT进程生成的主机代码(例如x86,x64或ARM,而不是LLVM IR);在调试版本中,我在程序运行时将其记录下来 . 使用LLVM 3.5,我可以通过调用ExecutionEngine :: ...
  • 64 votes
     answers
     views

    GCC如何优化循环内增加的未使用变量?

    我写了这个简单的C程序: int main() { int i; int count = 0; for(i = 0; i < 2000000000; i++){ count = count + 1; } } 我想看看gcc编译器如何优化这个循环(显然添加1 2000000000次应该是“一次添加2000000000”) . 所以: gcc t...
  • 2 votes
     answers
     views

    x86 asm反汇编程序库

    是否有可以从.NET调用的库,我可以在其中传递二进制数据并将其反汇编为x86汇编代码?
  • -1 votes
     answers
     views

    寻找一个好的x86汇编程序和反汇编程序库

    我正在为安全相关项目编写多态引擎,我需要以编程方式识别x86代码并识别其中的模式 . BeaEngine非常棒,唯一的问题是,我不确定它是否可以将助记符转换为操作码并组装不同的指令 . 问题是,有没有人知道类似于beaengine的东西,但也可以组装 ? 谢谢 .
  • 16 votes
     answers
     views

    长多字节NOP:通常理解的宏或其他符号

    x86(和x86_64)处理器不仅具有单字节 NOP 指令,而且还具有各种类型的多字节NOP类指令,这不是什么大秘密 . 有我找到的那些: AMD推荐,参考 . AMD Software Optimization Guide for AMD Family 15h Processors, document #47414,第5.8节"Code Padding with Operand-Si...
  • 10 votes
     answers
     views

    x86指令编码表

    我正在重写我的汇编程序 . 在此期间,我对实施反汇编感到好奇 . 我想让它变得简单和紧凑,并且我可以在这样做时使用这些概念 . 可以从操作码确定x86指令编码的其余部分(也可能需要前缀字节,一点) . 我知道很多人都写过表 . 我对助记符感兴趣但对指令编码不感兴趣,因为那是一个实际的难题 . 对于每个操作码编号,我需要知道: 这条指令是否包含modrm? 该指令有多少个直接字段? 立即...
  • 4 votes
     answers
     views

    x86汇编:反汇编程序如何知道如何分解指令?

    x86反汇编程序如何知道在哪里分解指令? 我正在查看8088指令集 . 例如,移动指令有7种变化,范围从2到4个字节 . 说明本身似乎没有遵循特定的顺序 . Why is x86 ugly?的另一个原因 . 例如: 76543210 76543210 76543210 76543210 reg/mem to/from reg 100010dw ||regr/m imm to ...
  • 0 votes
     answers
     views

    检测PE FIles中的无效资源部分

    我正在尝试使用PE文件中的资源执行某些计算 . 为此,我按照以下步骤操作: 从 Headers 中获取资源部分的RVA PEHeader.DataDirectory [IMAGE_DIRECTORY_ENTRY_RESOURCE] .VirtualAddress 将上述RVA转换为文件偏移量 到达资源部分的开头并遍历资源树 到达树叶(实际资源)并进行计算 . 当我处理具有有效资...
  • 5 votes
     answers
     views

    如何反汇编movb指令

    我正在编写一个反汇编程序,我正在查看指令格式(并手动进行一些反汇编),然后我遇到了一条似乎无法解码的指令 . 该特定指令的输出(来自objdump)是: c6 05 14 a0 04 08 01 movb $0x1,0x804a014 但是,我不明白指令是如何解码的,因为操作码c6应该是MOV Eb Ib(Mod R / M到imm8) . 有人可以告诉我它是如何解码的吗? 谢谢!
  • 64 votes
     answers
     views

    如何写一个反汇编程序? [关闭]

    我有兴趣将x86解析器编写为教育项目 . 我发现的唯一真实资源是Spiral Space,“How to write a disassembler” . 虽然这给出了反汇编程序的各种组件的高级描述,但我也快速查看了NASM's源代码,但这有点重要 . 我意识到这个项目的一个主要挑战是我将要处理的相当大的x86指令集 . 我也对基本结构,基本反汇编链接等感兴趣 . 有人能指出我有关编写x86反汇编程...
  • 0 votes
     answers
     views

    如何将shellcode反汇编成汇编指令? [重复]

    这个问题在这里已有答案: How do I disassemble raw x86 code? 6个答案 是否有一些工具可以将原始六角形拆卸成装配说明?例如:假设我们根据this在线反汇编程序将 \xeb\x1d 反汇编成 jmp 0x1f . 那么有一些离线工具吗?我试过ndisasm它没有给我正确的输出 . ndisam -b32 foo给了我: OUTPUT: 00000000 5...
  • 0 votes
     answers
     views

    如何拆卸汇编代码

    我使用masm来编译我的汇编源代码,我很好奇,有没有办法将它转换回源代码 .我想过一种使用调试器来逐步执行代码的方法,但代码大约是450行(包含循环,过程) .
  • 1 votes
     answers
     views

    将十六进制视图切换到IDA上的图形视图

    是否熟悉IDA(反汇编程序)程序?我已经将图表视图切换到十六进制视图,大约一个小时试图将其切换回来,没有运气..没有在线指南说如何切换回来..如果有人知道这个秘密,我想知道怎么...真的时间紧迫 . 非常感谢你
  • 3 votes
     answers
     views

    旧dos组件问题中的硬件VGA文本模式IO

    在阅读了大约4本关于汇编编程的不同书籍的前3或4章后,我进入了一个阶段,我可以使用MASM 6.11将“Hello World”放在dosbox控制台上 . 想象一下我的喜悦! 我的程序的第一个版本使用DOS函数13h . 我的程序的第二个版本使用BIOS功能10h 我现在想要使用直接硬件输出来完成第三个版本 . 我已经阅读了部分书籍,解释了屏幕在VGA显示器上划分为80x25(不关心检测CGA以...
  • 2 votes
     answers
     views

    如何将EXE中的文件偏移映射到其PE部分

    我打开了一个用ImageHlp.dll编写的程序来玩它一点点,我注意到文件中似乎有很大的空白 . 据我所知,对于每个PE部分,section Headers 在文件中将其偏移量设置为 PhysicalAddress ,其大小为 SizeOfRawData ,因此从 PhysicalAddress 到 PhysicalAddress + SizeOfRawData 的所有内容都应该是该部分 . 但是...

热门问题