daily update on 20230320 by nitload youmu
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user