Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 05:43

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Little Memory write problem

Discussion on Little Memory write problem within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2011
Posts: 270
Received Thanks: 44
Little Memory write problem

Hallo Community,
Ich habe ein kleines Problem. In meinem S4 League Trainer sorgt irgendwas dafür das die Memorys in S4 League nicht "überarbeitet wird". (Kann das grade nicht richtig ausdrücken ^^') jedenfalls hier der Code:
Währe nett, wenn mir jemand sagen könnte, wieso der nicht funktionier ^^'. P.s. Die Adressen sollten die richtigen sein. Habe es mit, hex und dezimal probiert. Ist jetzt in dem Code dezimal.(oder mach ich doch was falsch ? )

Vielen dank im vorraus
md88 is offline  
Old 03/11/2014, 13:55   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
adressen beginnen immer mit 0x
YatoDev is offline  
Old 03/11/2014, 14:52   #3
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Nein! Man kann Adressen auch in Dezimalschreibweise angeben, in diesem Fall haben sie natürlich keinen Hex-Präfix (0x). Der TE hat auch explizit erwähnt, dass im aktuellen Code die Dezimalschreibweise verwendet wird.
Negativ hierbei ist aber, dass die Zahlen als String angegeben werden. AutoIt ist nicht typensicher, daher ist es bei Dezimalschreibweise egal. Folgendes funktioniert ist aber falsch:
Code:
$iBkColor="0xF1EDED"
AutoIt wertet den String nicht aus. Deshalb funktioniert dieser Vergleich nicht, obwohl die Zahlen theoretisch die selben sind:
Code:
If "255" = "0xFF" Then MsgBox(0, "", "1") ; funktioniert nicht
If 255 = 0xFF Then MsgBox(0, "", "2") ;funktioniert
Zahlen sollte man explizit als solche angeben. Ich weiß nicht, wie AutoIt den Speicher verwaltet, aber bei typsicheren Sprachen braucht 0xFFFFFFFF lediglich 4 Byte, wohingegen der String "0xFFFFFFFF" 10 bzw. 20 Byte benötigt.


Zum eigentlichen Problem:
Dein Script ist recht schlampig. Du solltest bei den Memory-Funktion auf Rückgabewerte und/oder Fehler achten. Ausgeführt werden die Befehle zum ändern des Speichers außerdem nur dann, wenn du auf den Button klickst. Einmalig. Prüfe besser in der While-Schleife den Zustand der Checkboxen und manipuliere dann den Speicher entsprechend.
KDeluxe is offline  
Thanks
1 User
Old 03/11/2014, 20:38   #4
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by KDeluxe View Post
....
ich weis...

Die nomad memory verlangt aber diese schreibweise
YatoDev is offline  
Old 03/11/2014, 21:23   #5
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by KDeluxe View Post
Folgendes funktioniert ist aber falsch:
Code:
$iBkColor="0xF1EDED"
AutoIt wertet den String nicht aus. Deshalb funktioniert dieser Vergleich nicht, obwohl die Zahlen theoretisch die selben sind:
Code:
If "255" = "0xFF" Then MsgBox(0, "", "1") ; funktioniert nicht
If 255 = 0xFF Then MsgBox(0, "", "2") ;funktioniert
Zahlen sollte man explizit als solche angeben. Ich weiß nicht, wie AutoIt den Speicher verwaltet, aber bei typsicheren Sprachen braucht 0xFFFFFFFF lediglich 4 Byte, wohingegen der String "0xFFFFFFFF" 10 bzw. 20 Byte benötigt.
das ist nicht ganz richtig...

vergleicht man aber zwei strings, so werden diese immer auf inhalt überprüft (wie es auch in der regel erwünscht ist). entsprechend kann "255"="0xFF" nur false ergeben. "255"=255, "255"=0xFF, "0xFF"=255, "0xFF"=0xFF hingegen sind immer wahr.

autoit handelt aber binarys von unbestimmter länge allgemein als strings.
die schreibweise von hexadezimalen werten als string ist dementsprechend nicht nur korrekt, sondern bei werten > 0xFFFFFFFF sogar unvermeidlich.

Edit:
die hilfe gibt es in diesem falle noch genauer her... 2 strings werden immer lexiografisch vergleichen (buchstabe für buchstabe). dh "255">"0xFF" da "2">"0".
entsprechend wird es hier bei verwendung von sehr großen zahlen bzw hex werten (in stringschreibweise) schwer, diese miteinander zu vergleichen. hier müsste man entsprechend mit stringoperationen tricksen.
lolkop is offline  
Thanks
1 User
Old 03/11/2014, 21:58   #6
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by lolkop View Post
die hilfe gibt es in diesem falle noch genauer her... 2 strings werden immer lexiografisch vergleichen (buchstabe für buchstabe). dh "255">"0xFF" da "2">"0".
entsprechend wird es hier bei verwendung von sehr großen zahlen bzw hex werten (in stringschreibweise) schwer, diese miteinander zu vergleichen. hier müsste man entsprechend mit stringoperationen tricksen.
warum sollte jemand das als string vergleichen ? zahlen sind keine strings also schreibt man die ohne "" und 0xFFFFFF kann man ja auch ohne schreiben (mach ich auch immer)
YatoDev is offline  
Thanks
1 User
Old 03/11/2014, 22:10   #7
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by »FlutterShy™ View Post
warum sollte jemand das als string vergleichen ? zahlen sind keine strings also schreibt man die ohne "" und 0xFFFFFF kann man ja auch ohne schreiben (mach ich auch immer)
dann führe mal mit einer beliebigen autoit version eine beliebige mathematische operation mit der zahl: 0x00000000000000001 (entspricht 1) durch...

autoit ist was die hexadezimale, wie auch dezimale schreibweise angeht leider sowohl in der länge, als auch im umfang sehr beschränkt, wodurch für viele operationen die verwendung von strings unumgänglich ist.
lolkop is offline  
Thanks
1 User
Old 03/11/2014, 22:13   #8
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
moment. dachte das geht mit dem 64 bit compiler oder nicht ? ansonsten haste recht
YatoDev is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Write Memory Issue.
11/13/2012 - .NET Languages - 1 Replies
So as the title states, I'm having an issue with this memory write function. It does work, but it seems to write some extra bytes into the next address above the target address. I'm not quite sure how to fix it since my knowledge in visual basic and memory in general isn't that great. I thought I would make post here for feedback while I try to find some stuff on google as well. Here is the code I have atm. Read works fine. Public Declare Function ReadProcessMemory Lib "kernel32" Alias...
Memory write
09/25/2012 - .NET Languages - 2 Replies
Hallo, ich bräuchte mal bitte eure hilfe ;D Mit programmieren kenn ich mich nicht so aus... meine ersten hack für mw3 hab ich mir Cheat Engine gemacht ... das Design war grauenhaft -.- ... nun wollte ich einen mit VB Express 2010 machen ... hab keine ahnung wie ich die memory/speicher bearbeiten kann ... Habe ein paar module getestet klappt aber nicht-.- Benutze VB Express 2010. Wäre schön wenn jmd. mir hilft ^^ Mfg
Memory Write
01/12/2012 - C/C++ - 8 Replies
Moin, ich mach grad ein c++ trainer tutorial durch, hab auch alles bis auf eine kleine sache verstanden ... Nur von der logik her: hier mit deklariere ich doch was der neue wert sein soll : BYTE AmmoValue = {0xA3,0x1C,0x0,0x0};
[VB]Write Memory bzw Read Memory
06/26/2010 - .NET Languages - 8 Replies
Hi Ich hab das TuT von *Guidman* benütz um einen hack zu machen. So aber nun hab ihc ein paar fragen könnte man memory teil kürzer machen und am besten wie kann man das selber machen weil ich will nihct immer C&P machen. Und zu Read Memory kann man das auch machen das ein Label immer die Bestimmte Ahnzahl angiebt von dem Pointer?.(Wenn das Read Memory ist ?) Bitte helf mir Danke
write memory process problem
10/28/2009 - General Coding - 3 Replies
Hey Leute Habe mir ebem mal das tut von Blackfog angeschaut. Verstehe es auch, bloss will mein compi nich so wie ich will XD habe es au scho mit copy and paste versucht, das ding macht einfach nix



All times are GMT +1. The time now is 05:44.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.