
汇编语言
`北极星
物来顺应,未来不迎,当时不杂,既过不恋
展开
-
让vc项目 支持.asm类型并指定编译器为Microsoft Micro assembler
VC 在x64项目中不支持_asm 内嵌汇编,可以使用混合编译。将要实现的函数用汇编编写,指定后缀.asm。右击项目,点击Build Customizations..., 勾选masm。右击.asm 文件,指定文件的类型为Microsoft Micro Assembler即可。.asm 写法:.code; this is a commentFuncA proc...原创 2019-10-28 18:15:04 · 607 阅读 · 0 评论 -
汇编语言
转载于:http://cs.fjzs.edu.cn/ketang/hbyy/11-3-2.htm11.3.2 数据传送指令为了满足协处理器和CPU之间进行数据交流的需求,就需要实现内存单元和协处理器之间进行数据传送的指令。协处理器的指令系统中有三大类数据传送指令:BCD传送指令、浮点数传送和整数传送指令。一、BCD传送指令1、FBLD指令格式:FBLD MemBCD(*)指转载 2012-03-27 10:51:54 · 904 阅读 · 0 评论 -
shellcode技术积累
1. kernel32.ExpandEnvironmentStringsA可以把"%USERPROFILE%\a.exe"扩展成用户的目录如 "C:\Documents and Settings\Administrator\a.exe",这个有可能会在一些shellcode当中见到。2.获取当前地址: 00122528 E8 00000000 call 0012原创 2012-04-28 17:11:49 · 775 阅读 · 0 评论 -
lock cmpxchg指令
CMPXCHG - Compare and Exchange0F B0/ r CMPXCHG r/m8,r8 Compare AL with r/m8. If equal, ZF is set and r8 is loaded into r/m8. Else, clear ZF and load r/m8 into AL.0F B1/ r CM原创 2012-06-20 11:46:33 · 5873 阅读 · 0 评论 -
汇编指令深层解析
彻底弄清一些计算机的指令可以帮助你更好地读懂汇编代码,在逆向的时候可以减少错误!(1)CALL指令 ①ESP=ESP-4 ②CALL指令的下一条指令地址入[ESP] ③EIP(2)RETN ①EIP = [ESP] ②ESP = ESP+4(3)LEAVE ①ESP = EBP原创 2011-08-26 20:43:51 · 1026 阅读 · 0 评论 -
一段汇编代码的分析
今天在逆向的时候碰到了如下一段汇编代码,对立面的magicnumber有点好奇,研究了一下:.text:6E06EB40 000 push ebp.text:6E06EB41 004 mov ebp, esp.text:6E06EB43 004 push ebx.text:6E06EB44 008 mov ebx, ecx.text:6E06EB46原创 2013-11-26 11:21:17 · 1252 阅读 · 0 评论 -
ARM参数传递
ARM汇编中,R0~R3用来传递第一至第四个参数,超出的参数通过堆栈原创 2014-04-09 17:12:19 · 1133 阅读 · 0 评论 -
ARM寻址方式
所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。ARM处理器的寻址方式目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。1. 立即数寻址也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫做立即数,对应的寻址转载 2014-04-10 09:45:33 · 635 阅读 · 0 评论 -
VC 写shellcode 时函数地址去掉跳转表
在默认DEBUG/RELEASE模式下函数地址不是最终的函数地址,而是E9 + offset 的形式,这使得直接使用函数地址作为shellcode 起始地址时会出现问题。该怎么修改编译选项呢?在项目属性中,选择 “配置属性” ==> "C/C++" ==> "优化" ==> "全程序优化" ,选择“是(/GL)”这样就去掉了函数跳转表。但是这个开关会和另一个开关有冲突:...原创 2018-11-07 17:58:35 · 575 阅读 · 0 评论