printf PROTO pString:PTR, args:VARARG
.data
@String DB "String1\n" ,0
.code
g1 proc
invoke printf ,addr @String
ret
g1 endp
main PROC argc:QWORD, argv:QWORD
g1()
printf(addr @String)
xor rax,rax
ret
main ENDP
end
v2.56 (crash) ========================================================== ;-- frame_dummy: entry.init0 (); 0x00401120 endbr64 0x00401124 jmp register_tm_clones ; sym.register_tm_clones 0x00401126 nop word cs:[rax + rax] g1 (); 0x00401130 sub rsp, 8 0x00401134 lea rdi, @String ; 0x404030 ; const char *format 0x0040113b xor eax, eax 0x0040113d call printf ; sym.imp.printf ; int printf(const char *format) 0x00401142 ret int main (int argc, char **argv, char **envp); 0x00401143 push rbp 0x00401144 mov rbp, rsp 0x00401147 call g1 ; sym.g1 0x0040114c lea rdi, @String ; 0x404030 ; const char *format 0x00401153 xor eax, eax 0x00401155 call printf ; sym.imp.printf ; int printf(const char *format) 0x0040115a xor rax, rax 0x0040115d pop rbp 0x0040115e ret 0x0040115f add bl, dh ;-- section..fini: _fini (); | v2.55 ========================================================== ;-- frame_dummy: entry.init0 (); 0x00401120 endbr64 0x00401124 jmp register_tm_clones ; sym.register_tm_clones 0x00401126 nop word cs:[rax + rax] g1 (); 0x00401130 sub rsp, 8 0x00401134 lea rdi, @String ; 0x404030 ; const char *format 0x0040113b xor eax, eax 0x0040113d call printf ; sym.imp.printf ; int printf(const char *format) 0x00401142 add rsp, 8 0x00401146 ret int main (int argc, char **argv, char **envp); 0x00401147 push rbp 0x00401148 mov rbp, rsp 0x0040114b call g1 ; sym.g1 0x00401150 lea rdi, @String ; 0x404030 ; const char *format 0x00401157 xor eax, eax 0x00401159 call printf ; sym.imp.printf ; int printf(const char *format) 0x0040115e xor rax, rax 0x00401161 pop rbp 0x00401162 ret 0x00401163 add bl, dh ;-- section..fini: _fini (); |