daily update on 20230320 by nitload youmu

This commit is contained in:
Nitload
2023-03-20 01:45:49 +08:00
parent 167e33a3dd
commit db2ca36fd7
100 changed files with 1211 additions and 746 deletions
+69 -15
View File
@@ -1,15 +1,69 @@
.386 ; 编译器指令,使用386指令集
.model flat, stdcall ; model汇编指令,程序的内存模式, flat是windows程序,没有远近指针,stdcall是windows函数用的参数方式,即参数从右向左传递
option casemap :none ; 标签是否区分大小写
include \masm32\include\windows.inc ; 包含了Win32 API 的一些常量和函数定义
include \masm32\include\kernel32.inc ; 包含了后面使用的ExitProcess函数
include \masm32\include\masm32.inc ; 包含了后面使用的StdOut函数,不是标准的Win32函数,由MASM提供
includelib \masm32\lib\kernel32.lib ; 库文件
includelib \masm32\lib\masm32.lib
.data
HelloWorld db "Hello World!", 0 ; 定义使用的字符串常量,db代表define byte。最后跟一个NUL,表示ANSI字符集结束符
.code ; 开始代码区
start: ; 所有的代码要在start标签后、end start前
invoke StdOut, addr HelloWorld ; 调用函数StdOut,参数量HelloWorld的地址。注意StdOut是MASM提供的宏。其它编辑器里可以使用WriteConsole之类win32函数代替。
invoke ExitProcess, 0 ; 调用ExitProcess
end start
; Attributes: bp-based frame fpd=1A0h
; int main(...)
main proc near
frame= byte ptr -1C0h
var_1A0= byte ptr -1A0h
var_19C= dword ptr -19Ch
var_178= dword ptr -178h
var_148= qword ptr -148h
var_120= xmmword ptr -120h
var_F0= xmmword ptr -0F0h
var_18= qword ptr -18h
; __unwind { // j___GSHandlerCheck
push rbp
push rdi
sub rsp, 1B8h
lea rbp, [rsp+20h]
__$EncStackInitStart:
lea rdi, [rsp+1C0h+var_1A0]
mov ecx, 36h ; '6'
mov eax, 0CCCCCCCCh
rep stosd
__$EncStackInitEnd:
mov rax, cs:__security_cookie
xor rax, rbp
mov [rbp+1A0h+var_18], rax
lea rcx, __41B3B322_AsmSqrt@c ; JMC_flag
call j___CheckForDebuggerJustMyCode
movss xmm0, cs:__real@40800000
movss [rbp+1A0h+var_19C], xmm0
lea rax, [rbp+1A0h+var_19C]
mov [rbp+1A0h+var_148], rax
mov rax, [rbp+1A0h+var_148]
movss xmm0, dword ptr [rax]
xorps xmm1, xmm1
movss xmm1, xmm0
movaps xmm0, xmm1
movaps [rbp+1A0h+var_120], xmm0
movaps xmm0, [rbp+1A0h+var_120]
sqrtss xmm0, xmm0
movaps [rbp+1A0h+var_F0], xmm0
movaps xmm0, [rbp+1A0h+var_F0]
movss [rbp+1A0h+var_178], xmm0
mov eax, 4
imul rax, 0
cvtss2sd xmm0, [rbp+rax+1A0h+var_178]
movaps xmm1, xmm0
movq rdx, xmm1
lea rcx, _Format ; "%f"
call j_printf
xor eax, eax
mov edi, eax
lea rcx, [rbp+1A0h+frame] ; frame
lea rdx, v ; v
call j__RTC_CheckStackVars
mov eax, edi
mov rcx, [rbp+1A0h+var_18]
xor rcx, rbp ; StackCookie
call j___security_check_cookie
lea rsp, [rbp+198h]
pop rdi
pop rbp
retn
; } // starts at 140011870
main endp