-
WIN32汇编语言学习应用
收藏WIN32汇编语言解析、WIN32汇编快速入门等,并收录了应用实例。
最近更新文章
win32汇编-送消息给其它应用程序
2个函数invoke postmessage,hwnd,msg,wparam,lparaminvoke sendmessage,hwnd,msg,wparam,lparam对于不同的MSG,WPARAM和LPARAM所代表的信息是不同的1、postmessageMSDNThe PostMessage function places (posts) a message in the messagequ ...
WIN32汇编之菜单、加速键、快捷键
(一)Invoke checkmenuitem,hmenu,ebx,eax.elseif eax>=IDM_BIG&&eax<=DM_DETAILinvokecheckmenuradioitem,hmenu,IDM_BIG,IDM_DETAIL,eax,MF_BYCOMMAND.endif重点与难点:1、关于checkmenuitemThe CheckMenu ...
WIN32汇编学习应用之defwindowproc
defwindowproc窗口过程对一些消息的默认处理方式WM_PAINT 发送WM_ERASEBKGND消息来擦除背景WM_ERASEBKGND 用窗口类结构中的HBRBACKGROUND刷子来绘画窗口背景WM_CLOSE 调用destroywindow来摧毁窗口WM_NCLBUTTONDBLCLK这是非客户区(如标题栏)鼠标双击消息,DefWindowProc测试鼠标的位置,然后再采取相应的措施 ...
windows中WM_CLOSE消息和WM_DESTORY消息的不同之处
1、WM_CLOSE仅代表用户发出了关闭的指令,但窗口过程可以不理睬该消息,因为怎么处理这个消息完全由自己决定。.elseif meax==WM_CLOSEinvoke DestroyWindow,hwinmain ;销毁窗口invoke PostQuitMessage,Null ;向消息循环中发出退出消息如果在这里不调用DestroyWindow,窗口是不会自动销毁的但如果把这个消息交给Destr ...
WIN32汇编获取应用程序句柄
getmodulehandle使用方法invoke getmodulehandle,lpmodulenamelpmodulename 是一个字符串指针,它指向的字符含有模块名称。如想得到USER32.dll句柄可以szuserdll db 'user32.dll',0invoke getmodulehandle,addr szuserdll.if eaxmov huserdllhandle,eax ...
WIN32汇编语言学习应用之消息获取
MSG结构:MSG STURCTHwnd DWORD ?Message DWORD ?WParam DWORD ?LParam DWORD ?Time DWORD ?Pt POINT <>MSG ENDS:em21:hwnd:消息要发向的窗口句柄Message:消息标识符Wparam:消息的参数之一Lparam:消息的参数之二Time:消息放入消息队列的时间。pt:消息放入消息队列时的鼠 ...
一个WIN32汇编的完整窗口入门程序的理解与注释
;WIN32汇编的注释是;,其实WIN32汇编和VC有很多地方是相通的,为了加深印象,亲自打完这段长长的代码并;加上注释和个人理解.386.model flat,stdcalloption casemap:none;以下定义INCLUDE文件include winows.incinclude gdi32.incincludelib gdi32.libinclude user32.incinclu ...
汇编中通用寄存器的目的
1、EAX和AX:累加器,所有的I/O指令用它来与外部设备传送信息
2、EBX和BX:在计算存储单元地址时常用作基地址寄存器
3、ECX和CX:保存计数值
4、EDX和DX:做四字或二字运算时,可以把EDX(DX)和EAX(AX)组合在一起存放一个四字或二字长的数据,在对某些I/O操作时,DX可以放I/O的端口地址
5、ESP和SP:堆栈栈顶指针。
6、EBP和BP:基址寄存器
7、 ...
WIN32汇编语言解析
win32汇编中的sizeof
win32汇编中的sizeof不同于其它语言的sizeof ,这个是真正的sizeof,以字节为单位的。看下例szhello db 'hello,world!',0mov eax,sizeof szhelloeax=?答案是eax=13因为hello,world!为13个字节,然后0占一个,所以是13
变量命名风格
前缀 含义b bytew wo ...
设置与获取窗口标题文本
获得:
CString xx="";
CTestView::GetActiveWindow()->GetWindowText(xx);
MessageBox(xx,xx,MB_OK);
设置:
CString xxx="aaaa";
if(GetActiveWindow()==m_hWnd)SetWindowText(str);//CTes ...
win32汇编快速入门
汇编可以开发WINDOWS程序?答案是肯定的,用WIN32汇编语言开发出来的WINDOWS程序具有执行效率高、占用空间小等特点。
一、开发工具下载与安装
在众 ...
WIN32汇编-HELLO,WORLD!
我们用WIN32汇编构建第一个WINODWS程序,这个程序完成显示一个带问号的对话框,对话框的内容是现在系统时间。
首先,打开MASM32Editor(在桌面上 ...
保护模式下段寄存器的作用
1、保护模式一,虽然在寻址上没有分段的限制问题,但对要对一个地址空间定义一些安全上的属性,段寄存器就可以发挥作用,叫做段描述符
2、段描述符表保存了段落描述符,段寄存器中的16位用来做段描述表的索引信息
3、段描述表保存在两个特有的寄存器中
(1)GDTR寄存器,指向全局描述表(GDT),为系统中的所有任务共用的,通常是操作系统自己用的。指向内存地址
(2)LDTR寄存器,指向LDT,每个任 ...
WIN32汇编-反汇编
学好WIN32汇编,平时需要多阅读编译器生成的汇编代码,因为编译器生成的代码是最规范和最优化的,从中可以学到汇编编程和语句优化的技巧。
...
二进制资源和自定义资源使用定义
1、二进制资源
(1)定义格式:
资源IDRCDATA [DISCARDABLE]
BEGIN
数据定义
END
(2)装入资源的例子(MASM32)
invokeFindResource,hInstance,ID_MYRES,RT_RCDATA ;寻找资源
.if eax
mov hres,eax;返回资源句柄
inv ...
LISTBOX和LIST CONTROL的项目增加方法
1、LIST CONTROL(report方式):
(1)类的方式
A.增加列
LVCOLUMN lv; lv. mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH ; lv. fmt=LVCFMT_CENTER ; lv.cx=100; lv.pszText="编号"; lv.cchTextMax=sizeof(lv.pszText); lv.iSub ...
ret/retn人为改变执行地址
1、CALL和RET/RETN是一对指令,CALL把返回地址压入堆栈,RET/RETN把返回地址从堆栈取出,然后将IP寄存器改为该返回地址。
2、不使用CALL,而是人为地把地址放入堆栈即可实现。如:
push edi
retn
从edi处开始执行
3、加壳利用这个特点,在启动源文件文件前,将代码解密还原至原始位置
对程序的静态解码
mov si,offset word word_0_114;要解码的数量
lodsw;将数量移到ax
xchg ax,cx;将数量移到cx
push si;将解码起始地址保存
loc_0_10c:
xor byte prt[si],66h;解码
inc si;取一下需要解码的数据
loop loc_0_10c
jmp si;解码完毕,转到si
- 专栏创建者:deepfuture
- 创建时间:2011-12-01 16:25:08
- 专栏文章数:26篇
- 专栏被浏览:70018 次