Assembler Code - call
Übersicht

![]() |
Der EisvogelBetreff: Assembler Code - call |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Ich versuche derzeit mit ASM in BlitzMax zu arbeiten, basierend auf diesem Tutorial. Jetzt besteht das Problem, dass mein Code nicht so wie ich will compiled wird. Ich versuche einen Funktionsaufruf, auf eine Funktion, die NICHT in meinem Programm enthalten ist, sondern in dem Host Programm in das meine DLL später injected wird enthalten ist. Code: [AUSKLAPPEN] call 010104AD0h
Diese Zeile sollte eigentlich die Funktion des Host Programmes an der Stelle $10104AD0 aufrufen, doch wird es von BlitzMax immer in das folgende übersetzt (IDA Pro): Code: [AUSKLAPPEN] call near ptr 20121AD0h
Ich habe keine Ahnung wieso. Ich würde ja das Symbol direkt hinschreiben, doch da es ja "nicht" exisitiert kann BlitzMax das nicht linken und somit funktioniert das nicht. Mache ich was falsch? Oder geht das einfach nicht, oder nur anders? MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, du musst einen Far Call machen:
Code: [AUSKLAPPEN] push ebx
mov ebx,0x010104AD0h call ebx pop ebx Weil ein Near Call indirekt zum aktuellen Wert in eip erfolgt. Ich weiß aber nicht, ob das funktionieren wird, weil zum Offset noch ein Wert hinzuaddiert wird, der vielleicht von Start zu Start unterschiedlich ist. Du kannst aber versuchen die Differenz von den zwei Werten vom Wert in ebx abzuziehen (wenn der obere Code nicht funktioniert): Code: [AUSKLAPPEN] push ebx
mov ebx,010104AD0h-1001D000h ; 1001D000h ist die Differenz call ebx pop ebx mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das funktioniert leider auch nicht. Keiner der beiden Codes.
EDIT: Habs jetzt so gelöst, dass ich den Funktions-Pointer als Parameter übegebe. Das scheint zu funktionieren. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group