Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Assembler..in delphi? (https://www.delphipraxis.net/6903-assembler-delphi.html)

Pseudemys Nelsoni 26. Jul 2003 18:40


Assembler..in delphi?
 
hi,

ich habe in einem game (es gibt standardmäßig nur 8 farben) die farbe geändert in eine die normalwerweise nicht vorkommt mit "TSearch" habe mir einen breakpoint gesetzt da das game DMA benutzt...dann bekomm ich assembly code... aber wie bau ich das in einem prog mit ein? ich meine ich kann ja nicht jedes mal das memory search tool öffnen und die stelle im ram suchen um die farbe zu ändern

der code wäre:

6946f5 nop
6946f6 nop
6946f7 xor eax,eax
6946f9 cmp ecx,eax
6946fb mov [esp+0x10],eax
6946ff jle short 0x00694749
694701 mov edx,0x866574
694706 cmp eax,esi
694708 je short 0x0069471B
69470a cmp [edx],edi
69470c jnz short 0x0069471B
69470e mov esi,[esp+0x18]
694712 inc edi
694713 mov dword ptr [esp+0x10],0x1
69471b inc eax
69471c add edx,0x90
694722 cmp eax,ecx
694724 jl short 0x00694706
694726 mov eax,[esp+0x10]
69472a test eax,eax
69472c je short 0x00694749
69472e and edi,0x80000007

...

Mr_T 26. Jul 2003 19:47

Re: Assembler..in delphi?
 
Also um einfachen Assembler-Code zu verweden gibt es in Delphi das Schlüsselwort
"ASM"... Wenn man ASM innerhalb seines Delphi-Programmes verwenden möchte, braucht man so einen Block dafür, wenn ich mich nicht ganz irre....:

Delphi-Quellcode:
asm
... //Der Code
end;
Oder verstehe ich nun was falsch?

Gast 26. Jul 2003 20:38

Re: Assembler..in delphi?
 
@Silent:
Dein Code hilft wenig weiter, da man den Kontext sehen müßte. zB ist esp+0x10 eine Stackvariable. esp+0x18 auch. Das sagt uns schonmal wie groß der Stack mindestens ist.
Alles andere kann man aus deinem Code nur raten. Benutz einen Disassembler um den Code etwas lesbarer und vor allem mit Kontext (Prozedureintro/outro) zu erhalten. Dann kannste das nochmal posten.

IDA 4.11 gab es für den X86er mal als Freeware. Das schwirrt m.M.n. noch auf diversen Seiten durchs Internet.

Ansonsten eben die EXE hier anhängen. Wenn dann jemand Lust hat, wird er sichs mal anschauen.

Gast 26. Jul 2003 20:41

Re: Assembler..in delphi?
 
Willst du immer so lala im Speicher die Farbe "wechseln" oder soll das persistent sein? Also zB direkt in der EXE?

Pseudemys Nelsoni 26. Jul 2003 20:52

Re: Assembler..in delphi?
 
also es gibt in dem Spiel eine dropdown list mit 8 farben, da möchte ich weitere anfügen (ist auch möglich da es bereits solch einen patch gibt, der aber einige bugs hat) ich habe während TSearch an war im game immer alle sachen verändert die sich nicht auf die farbe beziehen und bei TSearch dann geählt "Has Not Changed" dann hab ich die farbe geändert im game und wieder zu tsearch gewechselt und "Has Changed" gewählt, solange bis eben nur noch wenige ergebnisse da waren. dann hab ich die value die für die farben zuständig ist entdeckt und sie z.b mal auf "16" gestellt dann gabs im game ein dunkelrot (was normal nicht möglich ist) da sich aber nach neustarten des games das ganze wieder an einer ganz anderen speicherstelle wie zuvor befindet hab ich einen Breakpoint draufgesetzt, dann rechtsklick auf das memo, und das ganze (was ich oben zuvor gepostet hab) gespeichert in eine Textdatei...jo und das wars, leider hab ich keine ahnung von assemblern und weiss daher auch nicht weiter wie ich das in ein prog packen könnte

Pseudemys Nelsoni 26. Jul 2003 20:57

Re: Assembler..in delphi?
 
btw: jo ich möchte im spiel immer die farbe ändern können


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz