汇编语言
文章平均质量分 55
AppNinja
记录作者的技术开发分析过程
一个在程序分析领域涉猎还算广泛的程序分析师:Windows、Android、iOS、MacOS。
You must devote your attention to your work.
展开
-
在visual studio中编译汇编源代码文件.asm
右键 .asm 文件,设置为Microsoft Macro Assembler。右键项目-生成依赖项-生成自定义,选中 masm。原创 2022-12-02 15:17:05 · 1338 阅读 · 0 评论 -
ida idc脚本:将内存字符串转为调试器的地址格式
转换前: memstrInput:38 88 ec f4 92 00 00。有时候需要复制内存中的内容当作跳转地址,但是调试器有自己的地址格式,转换后: OutputResult:000092f4ec8838。ida idc脚本:内存字符串转为地址格式。原创 2022-11-25 20:29:47 · 247 阅读 · 0 评论 -
一文解决IDA的IDC脚本语言入门教程
在IDC中,static关键字用于引入一个用户定义的函数,函数的参数列表仅包含一个以逗号分隔的参数名列表。每次调用一个交叉引用函数,IDA都会设置一个内部IDC状态变量,指出返回的最后一个交叉引用的类型。IDC的块中,可以声明新的变量,只要变量声明位于花括号内的第一个语句即可。但是IDC并不严格限制新引入的变量的作用范围,因此,你可以在声明这些变量的花括号以外引用它们。和代码交叉引用一样,如果需要知道你收到的交叉引用的类型,那么在调用另一个交叉引用查询函数之前,必须调用XrefType函数。原创 2022-11-22 15:15:14 · 1846 阅读 · 0 评论 -
Windows下x64反汇编参数传递约定,一句话,调用顺序为从左到右, Function( rcx, rdx, r8,r9, [rsp+0x20], [rsp+0x28], [rsp+0x30]..
x64 体系结构是 x86 的向后兼容扩展。 它提供与 x86 相同的旧 32 位模式,以及新的 64 位模式。术语"x64"包括 AMD 64 和 Intel64。 指令集接近相同。x64 将 x86 的 8 个常规用途寄存器扩展为 64 位,并添加了 8 个新的 64 位寄存器。 64 位寄存器的名称以"r"开头,因此例如, eax 的 64 位扩展名为 rax。 新寄存器的名称为 r8 到 r15。每个寄存器的低 32 位、16 位和 8 位可直接在操作数中处理。 这包括寄存器,如 esi,其低 8原创 2022-11-09 17:51:17 · 3946 阅读 · 0 评论 -
使用Android ndk编译64位arm汇编代码,附录源代码
1、arm汇编源码文件 hello64.s.data/* Data segment: define our message string and calculate its length. */msg: .ascii "Hello, ARM64! Written by AppNinja.\n"len = . - msg.text/* Our application's entry point. */.globl _start_start: /* sy.原创 2022-03-15 15:46:43 · 4994 阅读 · 0 评论 -
使用Android ndk编译32位arm汇编代码,附录源代码
1、arm汇编源码文件 hello.s.data/* Data segment: define our message string and calculate its length. */msg: .ascii "Hello,Arm,mov add, cmp, nop. Writtey by Appninja.\n"len = . - msg.text/* Our application's entry point. */.globl _start_start:原创 2022-03-15 15:31:12 · 3378 阅读 · 0 评论