![]() |
asm inline
möchte über delphi per command click mit hilfe von asm diese nummern ändern
0012F0B6 49 DEC ECX 0012F0B7 45 INC EBP 0012F0B8 2D 354A5330 SUB EAX,30534A35 <<< diese nummern per click ändern! 0012F0BD 52 PUSH EDX 0012F0BE 4E DEC ESI 0012F0BF 3350 00 XOR EDX,DWORD PTR DS:[EAX] ist es möglich? per asm |
Re: asm inline
Ja, es geht. Allerdings musst du mit VirtualProtect erst den Speicherbereich für Schreibzugriffe freischalten. (Wie's geht - vergessen)
Den Wert zu ändern geht auch ohne asm: ein einfaches PLongInt(0012F0B89)^ := sollts schon tun ;) |
Re: asm inline
der speicherbereich 0x0012XXXX ist sehr wahrscheinlich auf dem stack, dafür muss du dir dann keine schreibrechte(virtualprotect) holen (sollte man aber immer mal besser machen ;) ) wie schon gesagt genügt ein pinteger($0012.....)^ := 123456, abr wenn es wirklich auf dem stack liegt kann es ssein, dass sich die adresse auch mal ändert
|
Re: asm inline
Das es auf dem Stack liegt ist natürlich sehr gut möglich, aber wegen der Disassembly oben hab ich eher an ne verschobene ImageBase gedacht. Falls man die überhaupt so weit verschieben kann ^^
|
Re: asm inline
die offset adresse bleibt gleich,habs getestet,
kann mir vieleicht einer einen ausführlichen code reinposten? danke |
Re: asm inline
das geht mit
Delphi-Quellcode:
oder
PInteger($0012F0B89)^ := $12345678
Delphi-Quellcode:
wenn das in deinem Programm ist, ist es in einem anderen programm musst du das mit WriteProcessMemory machen, dafür einfach mal hier im Forum suchen
asm
mov [$0012F0B89], $12345678 end; |
Re: asm inline
der code funktioniert perfekt,er schreibt das auf der adresse,aber das problem ist jetzt ,es schreibt auch ein anderes programm drauf und wird überschrieben,habs den code dann in einen timer reingemacht und interval auf 1 gesetzt,aber der andere programm überschreibt das trozdem wenn er das lesen will schreibt der andere programm was andere rein,kann ich das blocken? das auf diese adresse nichts geschrieben werden kann nur von meinen programm aus?
DAnke 0012F0B6 12345678 xV4 << das schreibt mein prog, das andere schreibt dann 0012F0B6 5644321 IE- <<< das andere programm kann ich das blocken? |
Re: asm inline
Entziehe dem Bereich mit VirtualProtect die Schreibrechte. Aber wenn der Bereich tatsächlich auf dem Stack liegt (hi brechi ;)), dann endet das unter Umständen tödlich.
Was treibst du da eigentlich? *neugier* |
Re: asm inline
wie mache ich das? gibts dafür einen beispiel project?
kann ich das so machen das andere programme nur auf diese adresse lesen können und nur mein programm kann drauf schreiben? danke |
Re: asm inline
habs doch noch geschafft,
aber das mit den Delphi-Quellcode: markieren asm mov [$0012F0B89], $12345678 <<< wieso nur bis 8? end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz