avatar
文章
80
标签
0
分类
0

Hexo

Hexo

ASM32 7 DLL注入测试
发表于2024-09-16
代码示例MyTest.inc 1234567891011121314151617181920212223242526272829303132333435include windows.incinclude kernel32.incinclude user32.incinclude Comctl32.incinclude shell32.incinclude msvcrt.incinclude psapi.incincludelib kernel32.libincludelib user32.libincludelib Comctl32.libincludelib shell32.libincludelib msvcrt.libincludelib psapi.libDlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM.constMY_MSG db "click",0MY_WND_NAME db "计算机",0MY_USER32 db "USER32.dll",0MY_MSGBOX ...
ASM32 6 RadASM的使用
发表于2024-09-06
RadASM配置及应用RadASM配置参考 https://blog.csdn.net/2301_79113923/article/details/135665466 在路径设置中设置为自己的masm32和Ollydbg的路径 代码测试1 MyTest.inc1234567891011121314151617181920212223242526include windows.incinclude kernel32.incinclude user32.incinclude Comctl32.incinclude shell32.incincludelib kernel32.libincludelib user32.libincludelib Comctl32.libincludelib shell32.libDlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM.constMY_MSG db "click",0IDD_DIALOG1 equ 101BTN_BUTTON1 equ 1001;#################### ...
ASM32 5 使用C库函数和调用对话框
发表于2024-08-31
使用C库函数示例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354.386.model flat,stdcallOPTION CASEMAP:noneinclude msvcrt.incinclude kernel32.incincludelib user32.libincludelib kernel32.libincludelib msvcrt.lib;包含动态库;includelib libc.lib;包含静态库.constMY_STRING db "51asm51asm:%d",0dh,0ah,0MY_PAUSE db "pause",0;代码区.codemyadd proc retmyadd endpstrlen proto c:dwordprintf proto c:VARARGSTART proc ;C库的使用 c调用约定 local buf1[10]:byte local buf2[ ...
ASM32 4 masm32汇编环境配置和简单代码示例
发表于2024-08-28
masm32汇编环境配置下载并安装masm32打开http://www.masm32.com/download/masm32v11r.zip 下载masm32,并将压缩包解压,解压完成后,运行安装文件install.exe,具体安装步骤除了指定路径,就一路YES|OK就可以。 然后在这两处添加masm32中lib和include文件夹的地址 容易出现的问题可能在编译的时候出现错误:A2026 constant expected 解决方案:https://blog.csdn.net/weixin_50836014/article/details/124880063 代码示例12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394.386 ;指令集.model flat,stdcal ...
ASM32 3 宏汇编
发表于2024-08-26
宏汇编宏——具有宏名的一段汇编语句序列——宏定义时书写 宏指令——这段汇编语句序列的缩写——宏调用时书写 宏展开——宏指令处用这段宏代替的过程——宏汇编时实现 宏的功能强大,颇具特色 宏定义1234宏名 macro [形参表] 宏定义体 endm宏注释符 ;; 12345678910main MACRO ;定义名为main的宏,无参数 mov ax,@data ;;宏定义体 mov ds,ax ENDM ;;宏定义结束 return MACRO retnum ;;带有形参return mov al,retnum ;;宏定义中使用参数 mov ah,4ch int 21h ENDM 宏调用1宏名 [实参表] 1234start: main ;宏调用,建立DS内容 dispmsg string ;宏调用,显示字符串 return 0 ;宏调用,返回DOS end start 宏调用的实质是在汇编过程中进行宏展开 宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体取代源程序的指令,同时用位置匹配的实参对形参进行取代 ...
ASM32 2 简单的32位汇编程序
发表于2024-08-09
简单的32位汇编程序hello.inc 1234567891011121314151617181920.386 ;指令集.model flat,stdcall ;平坦模式(不分段)OPTION CASEMAP:none ;大小写敏感;常量区.constMY_MSG db "Hello World!",0MY_TITLE db "51asm",0;未初始化数据区;.data?;NUM2 db ? ;不占用文件空间;初始化数据区.dataNUM1 db 0;函数声明MessageBoxA proto hWnd:dword,lpText:dword,lpCaption:dword,uType:dwordExitProcess proto uExitCode:dword hello.asm 1234567891011121314151617181920212223242526272829303132333435include hello.incincludelib user32.libincludelib ...
ASM32 1 配置asm32环境
发表于2024-08-08
基本运行环境打开VS2019,新建C++空项目 生成依赖项右键项目名称,依次选择生成依赖项、生成自定义 在弹出的窗口中勾选masm,点击确定 添加汇编源文件右键“源文件“文件夹,依次选择添加、新建项 在弹出的窗口中选择C++文件(.cpp),注意名称中的后缀名要改为.asm 右键源文件,选择属性,配置如下 至此汇编语言的基本运行环境配置完毕 添加Irvine32链接库Irvine32 链接库提供了很多简单的输入输岀接口,因此有必要添加Irvine32链接库,方便后续编程 下载并解压Irvine32 链接库文件下载地址Assembly Language for x86 Processors (asmirvine.com) 记住解压的路径,配置VS2019需要用到 配置VS2019右键项目,选择属性,打开属性页面板 选择“Microsoft Macro Assembler”→“General” ,在Include Paths一栏输入Irvine32文件解压的路径 选择“链接器”→“常规”→“附加库目录”,输入 Irvine32文件解压的路径 选择“链接器”→“输入”→ ...
ASM16 25 串操作类指令
发表于2024-08-07
串操作类指令 串操作指令是8086指令系统中比较独特的一类指令,采用比较特殊的数据串寻址方式,在操作主存连续区域的数据时,特别好用、因而常用 重要掌握:MOVS STOS LODS CMPS SCAS REP 一般了解:REPZ/REPE REPNZ/REPNE 串数据类型 串操作指令的操作数是主存中连续存放的数据串(String)——即在连续的主存区域中,字节或字的序列 串操作指令的操作对象是以字(W)为单位的字串,或是以字节(B)为单位的字节串 串存储STOS(store string) 把AL或AX数据传送至目的地址 串读取LODS(load string) 把指定主存单元的数据传送给AL或AX 串比较CMPS(compare string) 将主存中的源操作数减去至目的操作数,以便设置标志,进而比较两操作数之间的关系 串扫描SCAS(scan string) 将AL/AX减去至目的操作数,以便设置标志,进而比较AL/AX与操作数之间的关系 重复前缀指令(repeat) 串操作指令执行一次,仅对数据串中的一个 ...
ASM16 23-24 位操作类指令
发表于2024-08-06
位操作类指令 位操作类指令以二进制位为基本单位进行数据的操作;这是一类常用的指令,都应该特别掌握 注意这些指令对标志位的影响 逻辑运算指令 AND OR XOR NOT TEST 移位指令 SHL SHR SAR 循环移位指令 ROL ROR RCL RCR 逻辑运算指令12345mov ax,-1and ax,8000h ;某位清0or ax,1 ;某位置1xor ax,0fh ;某位取反not ax 运行结果 移位指令 SHL(逻辑左移(无符号)) SHR(逻辑右移(无符号)) SAL(算术左移(有符号))(同SHL) SAR(算术右移(有符号)) 1234mov ax,0fhsar ax,1shl ax,1shr ax,1 运行结果(若最高位为0则算术右移后也补0) 12mov ax,0ffffhsar ax,1 若最高位为1则算术右移后也补1 循环移位指令(rotate) 将操作数从另一端溢移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作 循环移位指令对标志的影响 按照指令功能设置进位标 ...
ASM16 22-23 处理机控制类指令
发表于2024-08-05
处理机控制类指令 这些指令在特定的情况下,必须使用 对标志位进行设置的指令 CLC STC CMC CLD STD CLI STI 对CPU状态进行控制的指令 NOP CS:SS:DS:ES: LOCK HLT ESC WAIT 进位标志操作指令 用于任意设置进位标志 123clc ;复位进位标志:cf=0stc ;置位进位标志:cf=1cmc ;求反进位标志:cf=~cf 方向标志操作指令 串操作指令中,需要使用 12cld ;复位方向标志:df=0std ;置位方向标志:df=1 中断标志操作指令 在编写中断服务程序时,需要控制可屏蔽中断的允许和禁止 12cli ;复位中断标志:if=0sti ;置位中断标志:if=1 空操作指令 NOP不执行任何操作,但占用一个字节存储单元,空耗一个指令执行周期 NOP常用于程序调试 在需要预留指令空间时用NOP填充 代码空间多余时也可以用NOP填充 还可以用NOP实现软件延时 事实上,NOP和XCHG AX,AX的指令代码一样,都是90H 12345678910111 ...
1…456…8
avatar
Miyabi
文章
80
标签
0
分类
0
Follow Me
公告
This is my Blog
最新文章
Python 11 Python基础综合案例-动态柱状图2025-09-01
Python 10 Python基础综合案例-地图可视化2025-08-21
Python 9 Python基础综合案例-折线图可视化2025-08-13
Python 8 Python异常、模块与包2025-07-31
Python 7 Python文件操作2025-07-17
归档
  • 九月 20251
  • 八月 20252
  • 七月 20252
  • 六月 20252
  • 五月 20252
  • 四月 20252
  • 三月 20253
  • 二月 20258
网站资讯
文章数目 :
80
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Miyabi
框架 Hexo|主题 Butterfly