汇编学习
文章平均质量分 63
汇编学习
jiutao_tang
多少事,从来急;天地转,光阴迫。一万年太久,只争朝夕。
展开
-
获取文件大小、时间
<br />获取文件大小时间:<br />(1)GetFileSize<br />(2)GetFileTime<br />(3)FindFirstFile的WIN32_FILE_DATA结构获取时间和大小等<br />注意:<br />(1)文件时间结构FILETIME通过 FileTimeToSystemTime转换为SYSTEMTIME结构<br />(2)SYSTEMTIME结构里的元素都是word类型,需要用movzx转换为dword,直接使用word会有问题<br />实例:<br />(1)Ge原创 2011-02-19 20:45:00 · 1221 阅读 · 0 评论 -
Win32中的字符串处理
<br />使用一些高级的API,而不是使用cmpsb等汇编指令了。这些API大都在include Shlwapi.inc里<br />例如:在一个字符串中查找另一个字符串<br />原型:extern char *strstr(char *haystack, char *needle);<br />功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。<br />说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。<br />原创 2011-02-19 20:51:00 · 2616 阅读 · 0 评论 -
设置文件关联
<br />.386<br />.model flat,stdcall<br />option casemap:none<br />include windows.inc<br />include kernel32.inc<br />includelib kernel32.lib<br />include user32.inc<br />includelib user32.lib<br />include a原创 2011-02-19 20:48:00 · 445 阅读 · 0 评论 -
INI文件的操作
<br />.386<br />.model flat,stdcall<br />option casemap:none<br />include windows.inc<br />include kernel32.inc<br />include user32.inc<br />includelib kernel32.lib<br />includelib user32.lib<br />include shlwapi.inc ;原创 2011-02-19 20:47:00 · 689 阅读 · 0 评论 -
WSPRINTF格式化字符串函数
<br />Win32 API中一个很常用的函数wsprintf,这是一个字符串格式化函数,可以将数值按指定格式翻译成字符串,类似于C语言中的printf函数,它的原型是这样的:<br />int wsprintf(<br /> LPTSTR lpOut, // 输出缓冲区地址<br /> LPCTSTR lpFmt, // 格式化串地址<br /> ... // 变量列表<br /> 变量列表的数目由格式原创 2011-02-19 20:44:00 · 2732 阅读 · 0 评论 -
生成完整路径名的两种方法
<br />1. GetCurrentDirectory 获取当前目录<br />2. GetModuleFileName获取完整路径 + PathRemoveFileSpec分离纯路径<br />.386<br />.modelflat,stdcall<br />option casemap:none<br /> <br />include windows.inc<br />include kernel32.inc<br />include u原创 2011-02-19 20:42:00 · 845 阅读 · 0 评论 -
获取Explorer进程ID的两种方式
<br />获取Explorer进程ID的两种方式<br />由进程ID进而用OpenProcess函数获取句柄<br /> <br />1. 通过桌面类和名称<br /> .data? <br />szDesktopClass db 'Progman',0 ;桌面的窗口类<br />szDesktopWindowdb 'Program Manager',0原创 2011-02-19 20:43:00 · 3180 阅读 · 0 评论 -
利用进程ID获取主线程ID
<br />利用进程ID获取主线程ID,仅适用于单线程。多线程应区分哪个是主线程,区分方法待验证<br />(1)好像可以用StartTime最早的,不过通过线程执行时间不一定可靠,要是在最开始就CreateThread了,线程的执行时间会相同。可以通过回溯栈上的值来判断哪个线程是主线程,主线程的栈多少有些不同。最明显就是主线程栈上的PE入口点信息,没有这个的就是子线程。<br />(2)CsrProcessLink中取CsrProcessInfo->ClientId.UniqueThread即可,原创 2011-02-19 20:46:00 · 9149 阅读 · 0 评论 -
EnumWindow 枚举窗口
<br />(1)EnumWindow函数功能:<br />枚举所有顶级窗口。函数调用后,系统为每个顶级窗口调用一次回调函数,参数为窗口的句柄和一个附加参数。可以在回调函数中用GetWindowText函数得到窗口标题,再用strstr等函数查找关键字的方式判断某窗口的存在。<br />函数原型:<br />BOOL EnumWindows(<br /> WNDENUMPROC lpEnumFunc, // pointer to callback function<br /> LPA原创 2011-02-19 20:52:00 · 4205 阅读 · 1 评论 -
8086 汇编指令速查手册(转)
<br />一、数据传输指令 <br />─────────────────────────────────────── <br /> 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.<br /> 1. 通用数据传送指令. <br /> MOV 传送字或字节. <br /> MOVSX 先符号扩展,再传送. <br /> MOVZX 先零扩展,再传送. <br /> PUSH 把字原创 2011-02-19 20:51:00 · 862 阅读 · 0 评论 -
注册表操作、开机自启动
<br />.386<br />.model flat,stdcall<br />option casemap:none<br />include windows.inc<br />include kernel32.inc<br />includelib kernel32.lib<br />include user32.inc<br />includelib user32.lib<br />include a原创 2011-02-19 20:48:00 · 452 阅读 · 0 评论 -
一个简单的内存补丁程序
<br />; 内存补丁例子一:对 Test.exe 进行内存补丁<br /> .386<br /> .model flat, stdcall<br /> option casemap :none<br />include windows.inc<br />include user32.inc<br />include kernel32.inc<br />includelib user32.lib<br />includelib kernel3原创 2011-02-19 20:46:00 · 1230 阅读 · 0 评论 -
从窗口句柄获取进程句柄并终止进程GetWindowThreadProcessID
<br />_GetODProcID proc<br />LOCAL @hWinOD ;窗口句柄<br />LOCAL @hProcessOD ;进程句柄<br />LOCAL @idProcessOD ;进程ID<br />invoke FindWindow,addr szClassName,NULL ;通过类名获取窗口句柄 <br />.if eax ;原创 2011-02-19 20:45:00 · 4373 阅读 · 0 评论 -
WIN32汇编的高级语法
<br />1.条件测试语句<br /> <br />操作符和逻辑运算 操 作 用 途<br />==<br />等于<br />变量和操作数之间的比较<br />!=<br />不等于<br />变量和操作数之间的比较<br />> <br />大于<br />变量和操作数之间的比较<br />>=<br />大于等于<br />变量和操作数之间的比较<br />< <br />小于<br />变量和操作数之间的比较<br /><=原创 2011-02-19 20:52:00 · 911 阅读 · 0 评论