Wie kann ich meine Anwendung abschmieren lassen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Wie kann ich meine Anwendung abschmieren lassen?

Beitrag von Kukulkan »

Hallo,

Wie kann ich meine Anwendung am sichersten kontrolliert abschmieren lassen? Wichtig wäre, dass das erst nach ein paar weiteren Befehlen passiert und nicht sofort. Also so nach dem Motto ich rufe was auf, und dann stürtzt die Anwendung immer bei einem bestimten Befehl (zB was GUI Artiges) ab.

Beispiel:

Code: Alles auswählen

{irgendwas}
Böser CODE
{irgendwas}
{irgendwas}
Hier der Absturz weil zB SetGadgetText() aufgerufen wurde (oder sowas)
{irgendwas}
Kennt da jemand was?

Ach ja, fragt nicht warum :lol:

Volker
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Wie kann ich meine Anwendung abschmieren lassen?

Beitrag von Kiffi »

Volker Schmid hat geschrieben:Kennt da jemand was?
;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Noch schöner:

Code: Alles auswählen

CallFunctionFast(1)
:lol:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Danke danke, aber sowohl Division durch Null oder CallFunctionFast() lösen den Absturz direkt aus. Ich suche was um etwas verspätet abzuschmieren...

Volker
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Code: Alles auswählen

Procedure CrashIt(Time.l)
  Protected b.l
  Delay(Time)
  b / 0
EndProcedure

CreateThread(@CrashIt(), 1000)

Repeat
  Delay(2)
ForEver
:? Komisch, dass das überhaupt jemand benötigt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Vielleicht ein paar Gosubs ohne Return oder Returns ohne Gosubs oder
Prototypen, die 2 Parameter haben, die du benutzt um eine Procedure mit
nur einem Parameter aufzurufen.
Volker hat geschrieben:Ach ja, fragt nicht warum
Warum?
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hi DarkDragon,

Das sieht sehr gut aus! Ich werde das am Donnerstag so testen.

Warum? Naja, ich prüfe die Integrität externer DLL's, indem ich eine Zahl berechne (wiederum aus den Hashcodes). Diese Zahl wird erst später im Code mal gesichtet. Ist diese falsch, so will ich mein Programm abschmieren lassen. Aber eben nicht sofort, denn dann findet ein Hacker die Stelle doch recht schnell. Ich möchte es lieber so, dass man eine Weile suchen muss... Ist nicht wirklich sicher, aber sollte ein paar Anfänger-Hacker schon auf die Probe stellen, oder?

Grüsse,

Volker
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Hm, da wäre die Lösung von DarkDragon wahrscheinlich nicht so gut, da man ja leicht bemerkt das es ein extra thread ist. Dann muss man halt nurnoch suchen wo der gestartet wurde. Als ich den ersten Post gelesen hab dacht ich zuerst an "!SUB Esp, 4" oder ähnliches, das führt zwar nicht zwangsweise zum Absturz - aber das Programm macht auf jedenfall nicht das, was es soll, und es ist sehr verwirrend, wenn man nur den ASM-Code hat ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

OnError Library
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Code: Alles auswählen

!std
Erklärung:
Die Assembleranweisung setzt das Direction-Flag.
Sowohl PureBasic-Prozeduren als auch die Win-API gehen von einem gelöschten Direction-Flag aus. Deshalb passiert erstmal garnix. Erst wenn ein Code das Direction Flag verwendet z.b. um einen String zu scannen crasht es.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten