WIN32汇编语言学习应用
收藏

WIN32汇编语言解析、WIN32汇编快速入门等,并收录了应用实例。

分享到: Sina Tec

最近更新文章

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 ...
deepfuture 评论(0) 有2915人浏览 2010-02-20 16:42

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 ...
deepfuture 评论(0) 有3155人浏览 2010-02-20 16:38

WIN32汇编学习应用之defwindowproc

defwindowproc窗口过程对一些消息的默认处理方式WM_PAINT 发送WM_ERASEBKGND消息来擦除背景WM_ERASEBKGND 用窗口类结构中的HBRBACKGROUND刷子来绘画窗口背景WM_CLOSE 调用destroywindow来摧毁窗口WM_NCLBUTTONDBLCLK这是非客户区(如标题栏)鼠标双击消息,DefWindowProc测试鼠标的位置,然后再采取相应的措施 ...
 
deepfuture 评论(0) 有2718人浏览 2010-02-20 16:36

windows中WM_CLOSE消息和WM_DESTORY消息的不同之处

1、WM_CLOSE仅代表用户发出了关闭的指令,但窗口过程可以不理睬该消息,因为怎么处理这个消息完全由自己决定。.elseif meax==WM_CLOSEinvoke DestroyWindow,hwinmain ;销毁窗口invoke PostQuitMessage,Null ;向消息循环中发出退出消息如果在这里不调用DestroyWindow,窗口是不会自动销毁的但如果把这个消息交给Destr ...
deepfuture 评论(0) 有2432人浏览 2010-02-20 16:33

WIN32汇编获取应用程序句柄

 getmodulehandle使用方法invoke getmodulehandle,lpmodulenamelpmodulename 是一个字符串指针,它指向的字符含有模块名称。如想得到USER32.dll句柄可以szuserdll db 'user32.dll',0invoke getmodulehandle,addr szuserdll.if eaxmov huserdllhandle,eax ...
 
deepfuture 评论(0) 有2198人浏览 2010-02-20 16:32

WIN32汇编语言学习应用之消息获取

MSG结构:MSG STURCTHwnd DWORD ?Message DWORD ?WParam DWORD ?LParam DWORD ?Time DWORD ?Pt POINT <>MSG ENDS:em21:hwnd:消息要发向的窗口句柄Message:消息标识符Wparam:消息的参数之一Lparam:消息的参数之二Time:消息放入消息队列的时间。pt:消息放入消息队列时的鼠 ...
deepfuture 评论(0) 有1728人浏览 2010-02-20 16:31

一个WIN32汇编的完整窗口入门程序的理解与注释

  ;WIN32汇编的注释是;,其实WIN32汇编和VC有很多地方是相通的,为了加深印象,亲自打完这段长长的代码并;加上注释和个人理解.386.model flat,stdcalloption casemap:none;以下定义INCLUDE文件include winows.incinclude gdi32.incincludelib gdi32.libinclude user32.incinclu ...
deepfuture 评论(0) 有3734人浏览 2010-02-20 16:28

汇编中通用寄存器的目的

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、 ...
 
deepfuture 评论(1) 有2191人浏览 2010-02-20 16:24

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 ...
deepfuture 评论(0) 有2568人浏览 2010-02-17 16:36

设置与获取窗口标题文本

获得: CString xx=""; CTestView::GetActiveWindow()->GetWindowText(xx); MessageBox(xx,xx,MB_OK); 设置: CString xxx="aaaa"; if(GetActiveWindow()==m_hWnd)SetWindowText(str);//CTes ...
 
deepfuture 评论(0) 有2014人浏览 2010-02-17 16:32

win32汇编快速入门

汇编可以开发WINDOWS程序?答案是肯定的,用WIN32汇编语言开发出来的WINDOWS程序具有执行效率高、占用空间小等特点。 一、开发工具下载与安装   在众 ...
deepfuture 评论(0) 有4669人浏览 2010-02-17 16:31

WIN32汇编-HELLO,WORLD!

  我们用WIN32汇编构建第一个WINODWS程序,这个程序完成显示一个带问号的对话框,对话框的内容是现在系统时间。    首先,打开MASM32Editor(在桌面上 ...
deepfuture 评论(0) 有4442人浏览 2010-02-17 16:29

保护模式下段寄存器的作用

1、保护模式一,虽然在寻址上没有分段的限制问题,但对要对一个地址空间定义一些安全上的属性,段寄存器就可以发挥作用,叫做段描述符 2、段描述符表保存了段落描述符,段寄存器中的16位用来做段描述表的索引信息 3、段描述表保存在两个特有的寄存器中 (1)GDTR寄存器,指向全局描述表(GDT),为系统中的所有任务共用的,通常是操作系统自己用的。指向内存地址 (2)LDTR寄存器,指向LDT,每个任 ...
 
deepfuture 评论(1) 有3259人浏览 2010-02-17 14:39

WIN32汇编-反汇编

 学好WIN32汇编,平时需要多阅读编译器生成的汇编代码,因为编译器生成的代码是最规范和最优化的,从中可以学到汇编编程和语句优化的技巧。      ...
deepfuture 评论(0) 有2800人浏览 2010-02-17 14:33

玩转菜单-菜单资源

菜单资源     WINDOWS程序的菜单通常编译前定义在资源文件中,程序员可使用VC自带的资源编辑器可视化地编辑菜单资源,在资源文件中自动生成相关脚本,对于WIN32汇编程序员,最好能看懂这些自动生成的脚本,VC程序员在完成一些特殊程序时也需要亲自看看这些脚本文件。笔者用VC向导生成一个空的单文档程序,下面是VC自动生成的脚本文件中,我们一起对其中的菜单资源进行分析:  /////////// ...
deepfuture 评论(0) 有1943人浏览 2010-02-08 17:31

二进制资源和自定义资源使用定义

1、二进制资源 (1)定义格式:     资源IDRCDATA [DISCARDABLE]    BEGIN           数据定义    END (2)装入资源的例子(MASM32)  invokeFindResource,hInstance,ID_MYRES,RT_RCDATA ;寻找资源  .if eax     mov hres,eax;返回资源句柄     inv ...
deepfuture 评论(0) 有2195人浏览 2010-02-08 17:29

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 ...
 
deepfuture 评论(0) 有5462人浏览 2010-02-08 17:28

取IP寄存器的当前值

call $+3 POP CX 把IP寄存器的当前值放入cx
 
deepfuture 评论(0) 有1942人浏览 2010-02-08 17:27

ret/retn人为改变执行地址

  1、CALL和RET/RETN是一对指令,CALL把返回地址压入堆栈,RET/RETN把返回地址从堆栈取出,然后将IP寄存器改为该返回地址。  2、不使用CALL,而是人为地把地址放入堆栈即可实现。如:  push edi  retn  从edi处开始执行 3、加壳利用这个特点,在启动源文件文件前,将代码解密还原至原始位置  
 
deepfuture 评论(0) 有2830人浏览 2010-02-08 17:27

对程序的静态解码

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 评论(0) 有1627人浏览 2010-02-08 17:26
  • 专栏创建者:deepfuture
  • 创建时间:2011-12-01 16:25:08
  • 专栏文章数:26篇
  • 专栏被浏览:69938 次

本专栏热门文章

最新评论

...
asdface 评论了 保护模式下段寄存器的作用
不错,谢谢。
hshqcn 评论了 汇编中通用寄存器的目的
Global site tag (gtag.js) - Google Analytics