大一课程计算机基础,蛮有意思的就整理了一下笔记
效果图

完整代码
1 | format PE GUI 4.0 |
DebugEventCallback
指向回调函数的指针,在调试中为声明和警告调用该回调函数(默认True)
SuppressBackgroundThread
若为True则结构体将返回指向hook函数的指针和指向unhook挂钩函数的指针(默认False)
SuppressExternalCodecs
是否抑制外部图像编解码器
GdiplusVersion dd ?
第三个位置用于表示默认值,如果该位置为 ?
则说明这是一个没有初始化的数据
.idata部分
1 | section '.idata' import data readable writeable |
.data部分
1 | section '.data' data readable writeable |
该部分用于存放全局变量/常量等,用ida查看字符串可以看到上面这三个全局变量
WNDCLASS
是一个系统支持的结构,用于储存窗口信息

.code部分
1 | section '.code' code readable executable |
GetModuleHandle
用于获取一个应用程序或动态链接库的模块句柄,前提是目的模块已映射到调用该函数的进程内
LoadCursor
从一个与相关的可执行文件中载入指定的光标资源
test
用于将两个操作数进行逻辑与运算,并根据结果设置标志位(不影响进行运算的两个数本身
窗口进程相关
1 | proc WindowProc hwnd,umsg,wparam,lparam |
WindowProc
是一个用于处理发送给窗口消息的函数
其中的参数 hwnd
指向窗口的句柄,uMsg
为消息类型,wparam
和lparam
为其它的消息
画画
1 | proc draw hdc, color |
invoke
用于使用第一个参数间接调用进程(fastcall
用于直接调用)
lea
Load effective address 加载有效地址,将有效地址传送到指定的寄存器
参考资料:
FASM官方文档