AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion returned falsche Werte?

Ein Thema von Lyan · begonnen am 15. Mai 2019 · letzter Beitrag vom 15. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2      
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#1

Funktion returned falsche Werte?

  Alt 15. Mai 2019, 05:46
Delphi-Version: 10.2 Tokyo
Heute wieder angefangen mit Delphi seit langem und schon hab ich 3 Fragezeichen auf dem Kopf.

Hier ein kleiner Ausschnitt der Funktion
Delphi-Quellcode:
function TCore.GetGlobal: DWORD64;
var
  Registers: TContext;
  Key0, Key1: DWORD64;
  Globals: array[0..20] of DWORD64;
  I: Integer;
begin
  with Registers do
  begin
    Key0 := GLOBAL_INIT_KEYS[0];
    Key1 := GLOBAL_INIT_KEYS[1];
    ConstructKeys(Key0, Key1);
    Rax := Key1;
    R8 := Process.Read64(Process.RvaToVa(GLOBAL0));
    Rdx := DWORD(R8);
    Rax := ROL(DWORD(Rax), 1) + Rdx;
    R8 := R8 shr $20;
Delphi-Quellcode:
function TProcess.Read64(AFrom: DWORD64): DWORD64;
var
  ReadCount: NativeUInt;
begin
  ReadProcessMemory(FProcessHandle, Pointer(AFrom), @Result, SizeOf(DWORD64), ReadCount);
end;
In der Funktion Read64 ist der Wert von Result eine 64-Bit Addresse und nach dem Return ist der zugewiesene Wert irgendwas anderes.

Screenshots im Anhang. Wtf?

Edit:// Okay liegt scheinbar an dem with keyword. Was zeigt mir der Debugger denn da an bei R8? Mit Registers.R8 wird es korrekt dargestellt... War einfach nur sehr verwirrend weil genau der Wert sowieso die Ursache dafür ist dass etwas in der Decryption falsch läuft und dann sah es halt so aus als ob der Grund dafür dass der Wert falsch ist die Funktion ist.

Ich wünschte man könnte wie in Visual Studio einfach global alle Werte als Hex anzeigen und ich könnte einfach über die Variablen hovern beim Debuggen, das ist ja echt zum Ktzen umständlich, Ctrl + F5, Rechtsklick Edit, "Showas Hex"... Wer denkt sich sowas aus? Yep, der Debugger spinnt komplett, bekomme einfach teilweise mal ne 32 Bit Addresse angezeigt, mal den richtigen Wert.
Miniaturansicht angehängter Grafiken
fnhfgiw.png   tzasr3e.png  

Geändert von Lyan (15. Mai 2019 um 06:33 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 06:50
Hallo,
und ohne das with?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 07:24
Moin...
Zitat:
Okay liegt scheinbar an dem with keyword
...ich sage es immer wieder, aber keiner hört drauf. Mit with nimmst du dir die Debugging Funktionen und bekommst keine oder falsche Werte. Kann man das with Schlüsselwort nicht als "abgekündigt" markieren und mit einem Fehler versehen?
Machen wir eine Petition an Emba...
Zitat:
und ich könnte einfach über die Variablen hovern beim Debuggen
...das geht schon. Aber ohne das with.

Geändert von haentschman (15. Mai 2019 um 07:31 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 07:39
Hallo,
in der VCL sind auch
Zitat:
with
drin

ohne mein

with Query do
begin
end;

geht es nicht !
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 07:48
Zitat:
in der VCL sind auch
...da muß aber nicht debuggen.

Zitat:
ohne mein

with Query do
begin
end;

geht es nicht !
... wieso?

Delphi-Quellcode:
with Query do
begin
  ParamByName('Blubb').AsInteger := FunctionXY;
end;
...was zeigt der Debugger über AsInteger an? Nüscht.

@TE: Hover siehe Bild. http://docwiki.embarcadero.com/RADSt...ring_Debugging
@TE: Bei mir sind diese Fenster (#1) auf Ctrl + F7. Hast du eine andere Konfiguration oder war das ein Tippfehler?
Miniaturansicht angehängter Grafiken
hover.png  

Geändert von haentschman (15. Mai 2019 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#6

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 09:09
Zitat:
in der VCL sind auch
...da muß aber nicht debuggen.

Zitat:
ohne mein

with Query do
begin
end;

geht es nicht !
... wieso?

Delphi-Quellcode:
with Query do
begin
  ParamByName('Blubb').AsInteger := FunctionXY;
end;
...was zeigt der Debugger über AsInteger an? Nüscht.

@TE: Hover siehe Bild. http://docwiki.embarcadero.com/RADSt...ring_Debugging
@TE: Bei mir sind diese Fenster (#1) auf Ctrl + F7. Hast du eine andere Konfiguration oder war das ein Tippfehler?
Habe mich da nicht klar genug ausgedrückt, mir geht es explizit um das Darstellen der Werte in Hexadezimal. Ich brauche so gut wie nie Dezimal. In Visual Studio gibt's da (siehe screenshot).

Was mich auch stört, ist dass die IDE am rumfliegen ist alias "debug view mode". Lässt sich wahrscheinlich deaktivieren aber ist schon spannend, wie ich versuche auf dem rechten Bildschirm zu arbeiten und jedes mal wenn ich auf debuggen drücke siche die gesamte IDE auf den mittleren Bildschirm verschiebt und alle subwindows neu gedockt werden etc...
Ich überreagiere vlt. - vor allem weil ich erst seit heute die IDE habe, aber als gewohnter VS17 nutzer fühlt sich das erst mal sehr clunky und nicht gerade intuitiv an was da visuell passiert (und auch die Werte von with im debug mode). Ich setze mich später mal intensiver mit der IDE auseinander, vlt. gibt's ja paar optionen irgendwo versteckt.

Zitat:
Machen wir eine Petition an Emba...
Bin ich sofort dabei!
Miniaturansicht angehängter Grafiken
index.png  
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 09:14
Hallo,
Zitat:
was zeigt der Debugger an bei AsInteger?
Nüscht, ich habe doch eine Variable auf der rechten Seite, und keinen Funktionsaufruf

Zitat:
mittlerer Monitor
Du hast nur 3 Monitore? arm dran ...
Heiko
  Mit Zitat antworten Zitat
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#8

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 10:03
Zitat:
Du hast nur 3 Monitore? arm dran ...
Naja wenn man den ganzen Tag eh nix anderes macht und sie braucht, warum nicht.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 10:33
Zitat:
Was mich auch stört, ist dass die IDE am rumfliegen ist alias "debug view mode".
..siehe Bild (achte auf die Hits der Buttons):

1. deine Aktuelle Ansicht -> speichern oder mit neuem Namen anlegen. Für jede Aufgabe ein Desktop.
2. Debug Ansicht wählen -> einstellen -> speichern -> Debug Desktop einstellen

Fertsch...

Zum Thema HEX:
Man kann eigene "Visualisierungen" erstellen. (Bild)
http://docwiki.embarcadero.com/RADSt...sualisierungen
Stichworte:
IOTADebuggerVisualizer
IOTADebuggerVisualizerValueReplacer
IOTADebuggerVisualizerExternalViewer
Miniaturansicht angehängter Grafiken
visualisierung.png  

Geändert von haentschman (15. Mai 2019 um 10:45 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#10

AW: Funktion returned falsche Werte?

  Alt 15. Mai 2019, 21:51
Moin...
Zitat:
Okay liegt scheinbar an dem with keyword
...ich sage es immer wieder, aber keiner hört drauf. Mit with nimmst du dir die Debugging Funktionen und bekommst keine oder falsche Werte. Kann man das with Schlüsselwort nicht als "abgekündigt" markieren und mit einem Fehler versehen?
Machen wir eine Petition an Emba...
Ja, fang doch schon mal damit an, in dem du eine entsprechende Anforderung in quality.embarcadero.com einträgst
und uns hier dann die Report Nummer kundtust...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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