Witam! Ostatnimi czasy bawię się trochę w assemblera, bez problemu odnajduję funkcje, którą aktualnie potrzebuję lecz problem jest gdy chcę napisać swoją. Niby wiem jakie argumenty zawiera ale gdy je podstawie po jej wywołaniu albo debuguje program albo po prostu nie działa.
Było by miło jakby mi ktoś wytłumaczył co znaczą te wszystkie PUSH EBP, PUSH DWORD PTS SS: etc
Napisałem już szkielet funkcji do wypowiadania tekstu w grze. Testowany, działa a wygląda tak:
MOV EDX, EDI ;==> czyta wartość adresu edi i podstawia pod edx w tym wypadki format ASCII np "Hello World!"
MOV ECX, ESI ;==> podstawia wartość ESI i dodaje zera w efekcie końcowym mamy 00000001
CALL MODULE.BASE + SEND.FUNC ;==> wysyła do tego adresu funkcji parametry
RETN ;==> kończy funkcjię
Podobnie chciałbym zrobić z funkcja podana wyżej, służy ona do konstrukcji pakietu a następnie wysłanie go do głównej funkcji odpowiedzialnej za jego wysłanie.
Przykładowy pakiet, który powinna zwrócić ta funkcja: \x96\x01\x66\x79\x82
Pozdrawiam, Ascer!