Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Weihnachtsraetsel - Code für Programm gesucht (https://www.delphipraxis.net/183277-weihnachtsraetsel-code-fuer-programm-gesucht.html)

hathor 26. Dez 2014 16:29

Weihnachtsraetsel - Code für Programm gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang ist ein Mini-Programm, das nichts anderes macht ausser Töne.
Die Aufgabe ist nun, herauszufinden, welcher DELPHI-Code dahinter steckt.

Ihr habt 72 Stunden Zeit - ab jetzt: 26.12.2014 17.30 Uhr.

Nachtrag:
XE7, WIN8.1 : Bei mir geht's!
Bei einem Netbook (< 1GHz im Akku-Betrieb), wIN8.0 hört man was, aber das Timing stimmt nicht: es hört sich grässlich an!

Kralle 26. Dez 2014 18:11

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Moin,

Zitat:

Zitat von hathor (Beitrag 1284738)
Im Anhang ist ein Mini-Programm, das nichts anderes macht ausser Töne.
Die Aufgabe ist nun, herauszufinden, welcher DELPHI-Code dahinter steckt.

Ihr habt 72 Stunden Zeit - ab jetzt: 26.12.2014 17.30 Uhr.

Also unter Win8.1 - keine Sound.

Gruß HEiko

hathor 26. Dez 2014 18:18

AW: Weihnachtsraetsel - Code für Programm gesucht
 
XE7, WIN8.1 : Bei mir geht's!

Helmi 26. Dez 2014 18:51

AW: Weihnachtsraetsel - Code für Programm gesucht
 
bei mir meldet sich beim Ausführen gleich Windows mit dem Hinweis:

Zitat:

Der Computer wurde durch Windows geschützt

Von Windows SmartScreen wurde der Start einer unbekannten App verhindert. Die Ausführung dieser App stellt unter Umständen ein Risiko für den PC dar.

mensch72 26. Dez 2014 19:57

AW: Weihnachtsraetsel - Code für Programm gesucht
 
in anderen Foren nennt man sowas "HackMe"...

na gut, wenn ich ganz viel Zeit habe und morgen Vormittag nix anderes groß auf dem Schreibtisch ist, lasse ich mal in ein paar passende Tools darauf los.

Erstmal sehen ob da wirklich nur Töne produziert werden.
(Nur nebenbei zum Spaß ist mir der Aufwand dann bei EXE Packer und RAM DLL's etwas zu hoch.)

hathor 26. Dez 2014 22:37

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von mensch72 (Beitrag 1284751)
in anderen Foren nennt man sowas "HackMe"...

Da hast Du etwas falsch verstanden:

Man soll einfach mit DELPHI-Code die Töne nachbilden.

Irgend jemand mit musikalischem Gehör wird sicher das Rätsel lösen.

Es werden NUR WINDOWS-Routinen verwendet.
Es gibt KEINE eingebettete Resource mit Tönen.
Es gibt KEINE Timer.

Die Smartscreen-Warnung lässt das Starten trotzdem zu.

Was ist Smartscreen?
Smartscreen überprüft jede Anwendung, die Sie aus dem Internet laden. Sobald Sie ein Programm aus dem Internet oder dessen Installationsroutine starten, sammelt Smartscreen einen Satz an Informationen über das Programm. Diese Daten sendet Smartscreen an einen Server von Microsoft. Der Server sendet als Rückmeldung, ob eine Anwendung sicher ist oder nicht.
Wenn eine Anwendung als unsicher eingestuft ist, dann erhalten Sie in Windows 8 vor dem Ausführen der Software einen Warnhinweis . Die Umsetzung des Warnhinweises ist jedoch etwas unglücklich: So bietet er scheinbar keine Möglichkeit, eine als unsicher eingestufte Software dennoch zu starten. Erst ein Klick auf „Weitere Informationen“ blendet die Schaltfläche „Trotzdem starten“ ein.

Bernhard Geyer 27. Dez 2014 08:26

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von hathor (Beitrag 1284763)
Die UAC-Warnung lässt das Starten trotzdem zu.

Smartscreen != UAC.
Ich hatte bisher nur einmal damit zu tun als ich einen Installer (aus bekannter Quelle) starten wollte.
Hier hat SmartScreen den Start der Exe verhindert da die Exe korrupt war (Signierte Exe mit defekter Signatur).
Nachdem der Hersteller die Exe neu bereit gestellt hat klappte es. Damit wäre aber auch bei signierter Exe ein Infektion währen des Downloads erkannt worden.

hathor 27. Dez 2014 09:03

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Danke für den Hinweis.
Auf dem eigenen Notebook erscheint diese Smartscreen-Warnung natürlich nicht. Ich habe oben einen Hinweis hinzugefügt.

Bernhard Geyer 27. Dez 2014 10:17

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von hathor (Beitrag 1284769)
Danke für den Hinweis.
Auf dem eigenen Notebook erscheint diese Smartscreen-Warnung natürlich nicht. Ich habe oben einen Hinweis hinzugefügt.

Mittleweile schlagen 2 Heuristische Erkennungen an ... (https://www.virustotal.com/de/file/0...is/1419675317/)

turboPASCAL 27. Dez 2014 11:11

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

die Warnung kommt wohl möglich von der UPX gepackten Exe.

Die Generierung des Sounds ist höchstwahrscheinlich mit
Delphi-Quellcode:
Windows.Beep()
* gemacht worden,
was ziemlich unglücklich ist da heutige PC's meist nicht mehr über einen PC-Speaker verfügen und je
nach System die Ausgabe des Sounds das Soundboard übernimmt, wenn es so eingestellt ist und oder unterstütz wird.
Das ist von Mainboard zu Mainboard auch unterschiedlich umgesetzt. (von meiner "Soundkarte*" ein Beispiel im Anhang)

Das Programm von hathor erzeugt die Töne scheinbar mit einer Sinus.- (& Co) - Funktion.



*Soundkarte - bei mir Audiosystem des Mainboards
*
Delphi-Quellcode:
Windows.Beep()
- geht auch über direktes ansprechen der Ports etc.

hathor 27. Dez 2014 11:45

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von turboPASCAL (Beitrag 1284779)
Hi,

die Warnung kommt wohl möglich von der UPX gepackten Exe.
Sehr wahrscheinlich.

Die Generierung des Sounds ist höchstwahrscheinlich mit
Delphi-Quellcode:
Windows.Beep()
*
Richtig.
gemacht worden,
was ziemlich unglücklich ist da heutige PC's meist nicht mehr über einen PC-Speaker verfügen und je
nach System die Ausgabe des Sounds das Soundboard übernimmt, wenn es so eingestellt ist und oder unterstütz wird.
Das ist von Mainboard zu Mainboard auch unterschiedlich umgesetzt. (von meiner "Soundkarte*" ein Beispiel im Anhang)

Das Programm von hathor erzeugt die Töne scheinbar mit einer Sinus.- (& Co) - Funktion.
Falsch.

Direkter Port-Zugriff: Falsch.

...

mensch72 27. Dez 2014 12:32

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Ein Musikalisches Gehör habe ich nicht, aber ein paar Tools, die mich dem org. Quelltext sehr nah bringen... :)

Betagtes UPX und Standard-Delphi sind da ja kein Hindernis:
https://code.google.com/p/fuu/
http://www.oocities.org/r_etarded/ol.../ollydump.html
...

Jetzt noch sowas aus dieser Richtung:
http://kpnc.org/idr32/en/
https://tuts4you.com/download.php?view.2867
...

Da kommt was mit Thread, BEEP und Sleep:
Ich habe es lange nicht mehr probiert, ob "Beep" sofort zurückkommt, oder erst nach der in "Duration" angegebenen Zeit.

BOOL WINAPI Beep(
_In_ DWORD dwFreq,
_In_ DWORD dwDuration
);

Das Erzeugen der Tonfolge kann sich mit "solchen und ähnlichen Tools" jeder selbst anschauen und decodieren.
(Ein Blick in den Task-/Prozessmonitor mit Anzeige der genutzten Handles und Threads schadet bei sowas auch nie.)



Man beachte:
- die genannten sind hier alles noch ganz liebe Tools, welche nicht explizit zum Cracken oder Umgehen von Kopierschutz mit Debug-Sperren usw. gemacht wurden!
- und sorry, im Zeitalter von schnellem INET und großen schnellen Festplatten ist UPX und dergleichen eigentlich unnötig und wer es dennoch einsetzt "verlangt" gerade das Überprüfen von dem was er da tut
- ich halte daher das Wissen um den sinnvollen Einsatz solcher Tools für richtig, und hier findet man wenn man will sogar auf "alternativen Weg" die Lösung des Rätsels:)

Horst0815 27. Dez 2014 13:07

AW: Weihnachtsraetsel - Code für Programm gesucht
 
http://www.delphipraxis.net/152849-w...ndows-7-a.html

+


Delphi-Quellcode:
  Beep($960, $64);
  Beep($898, $64);
  Beep($7D0, $64);
  Beep($708, $64);
  Beep($640, $64);
  Beep($578, $64);
  Beep($4B0, $64);
  Beep($3E8, $64);
  Beep($320, $64);
  Beep($258, $64);
  Beep($190, $64);
  Beep($C8, $64);
  Beep($64, $64);
  Beep($32, $64);
  Beep($64, $64);
  Beep($C8, $64);
  Beep($190, $64);
  Beep($258, $64);
  Beep($320, $64);
  Beep($3E8, $64);
  Beep($4B0, $64);
  Beep($578, $64);
  Beep($640, $64);
  Beep($708, $64);
  Beep($7D0, $64);
  Beep($898, $64);
  Beep($960, $64);
und
Delphi-Quellcode:
  Beep($32, $64);
  Beep($64, $64);
  Beep($C8, $64);
  Beep($190, $64);
  Beep($258, $64);
  Beep($320, $64);
  Beep($3E8, $64);
  Beep($4B0, $64);
  Beep($578, $64);
  Beep($640, $64);
  Beep($708, $64);
  Beep($7D0, $64);
  Beep($898, $64);
  Beep($960, $64);

hathor 27. Dez 2014 13:37

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Wegen UPX: Die Debug-Exe ist 11250KB gross!

Horst0815 kommt der Sache schon sehr nahe - deshalb hier die Auflösung:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function BeepThread: DWORD; stdcall;
begin
  result := 0;
  Winapi.Windows.Beep(50, 100);
  Winapi.Windows.Beep(100, 100);
  Winapi.Windows.Beep(200, 100);
  Winapi.Windows.Beep(400, 100);
  Winapi.Windows.Beep(600, 100);
  Winapi.Windows.Beep(800, 100);
  Winapi.Windows.Beep(1000, 100);
  Winapi.Windows.Beep(1200, 100);
  Winapi.Windows.Beep(1400, 100);
  Winapi.Windows.Beep(1600, 100);
  Winapi.Windows.Beep(1800, 100);
  Winapi.Windows.Beep(2000, 100);
  Winapi.Windows.Beep(2200, 100);
  Winapi.Windows.Beep(2400, 100);
end;

function BeepThread2: DWORD; stdcall;
begin
  result := 0;
  Winapi.Windows.Beep(2400, 100);
  Winapi.Windows.Beep(2200, 100);
  Winapi.Windows.Beep(2000, 100);
  Winapi.Windows.Beep(1800, 100);
  Winapi.Windows.Beep(1600, 100);
  Winapi.Windows.Beep(1400, 100);
  Winapi.Windows.Beep(1200, 100);
  Winapi.Windows.Beep(1000, 100);
  Winapi.Windows.Beep(800, 100);
  Winapi.Windows.Beep(600, 100);
  Winapi.Windows.Beep(400, 100);
  Winapi.Windows.Beep(200, 100);
  Winapi.Windows.Beep(100, 100);
  Winapi.Windows.Beep(50, 100);
  Winapi.Windows.Beep(100, 100);
  Winapi.Windows.Beep(200, 100);
  Winapi.Windows.Beep(400, 100);
  Winapi.Windows.Beep(600, 100);
  Winapi.Windows.Beep(800, 100);
  Winapi.Windows.Beep(1000, 100);
  Winapi.Windows.Beep(1200, 100);
  Winapi.Windows.Beep(1400, 100);
  Winapi.Windows.Beep(1600, 100);
  Winapi.Windows.Beep(1800, 100);
  Winapi.Windows.Beep(2000, 100);
  Winapi.Windows.Beep(2200, 100);
  Winapi.Windows.Beep(2400, 100);
end;

procedure TForm1.Button1Click(Sender: TObject);
var tID : Cardinal;
begin
CreateThread(nil, 0, @BeepThread2, NIL, 0, tID);
CreateThread(nil, 0, @BeepThread, NIL, 0, tID);
end;

end.

Bernhard Geyer 27. Dez 2014 13:58

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von hathor (Beitrag 1284789)
Wegen UPX: Die Debug-Exe ist 11250KB gross!

Wäre dann nicht der erste Schritt keine Debug-Infos mitzuliefern? Oder sollte damit die Lösung einfacher werden?

hathor 27. Dez 2014 14:09

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Die Release-Build, die mit UPX bearbeitet worden ist, war auch noch sehr gross -> 2229KB.

Bernhard Geyer 27. Dez 2014 14:14

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von hathor (Beitrag 1284794)
Die Release-Build, die mit UPX bearbeitet worden ist, war auch noch sehr gross -> 2229KB.

Und was hat UPX für einen unterschied gebracht das man die Exe eh noch Zipped?

hathor 27. Dez 2014 14:22

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Exe-Files kann man manchmal nicht direkt up-/downloaden.

turboPASCAL 27. Dez 2014 18:24

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hathor (Beitrag 1284794)
Die Release-Build, die mit UPX bearbeitet worden ist, war auch noch sehr gross -> 2229KB.

Autsch...

Ich mag mein Delphi6, keine Schnickschnack, kein Komfort aber schnittige kleine Programme. :stupid:


PS.:
Nein, das Programm enthälet keinen Virus oder Malware. Falls euer Virenscanner darauf anspringen sollte liegt
es vermutlich daran, das einige Scanner mit Heuristik anspringen...
https://www.virustotal.com/de/file/3...c338/analysis/

mensch72 27. Dez 2014 19:51

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Im CallStack findet man intern im Beep irgendwo auch noch ein Sleep für die Duration, aber der Delphi/WinAPI Code passt.

Debug-Infos hin oder her, UPX hin oder her, solche Sachen sind purer Spaß. Für ein Rätsel OK, aber wenn es drauf ankommt dann greife man doch bitte zu professionellen Sachen.
Mir wäre bei UPX und anderen "PE" Tools das Risiko einer potentiellen Infektionswarung durch irgendeinen Virusschutz bei den Anwendern zu groß.

Bernhard Geyer 27. Dez 2014 21:43

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von hathor (Beitrag 1284796)
Exe-Files kann man manchmal nicht direkt up-/downloaden.

Will man auch nicht.

Aber um wieviel kleiner ist die Zip-Datei wenn du sie erst mit UPX packst? Ob nun die Exe auf der Festplatte 2 oder 3 MB einnimmt ist egal

Bernhard Geyer 27. Dez 2014 21:45

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von turboPASCAL (Beitrag 1284807)
Ich mag mein Delphi6, keine Schnickschnack, kein Komfort aber schnittige kleine Programme. :stupid:

Schnittig klein macht auch D6 mit VCL keine Exe. Klein wäre so 50 kB mit GUI.
Und mit 2 Optinen/Compilerschalter bekommt man die Exe noch kleiner.

BMI 27. Dez 2014 22:18

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von turboPASCAL (Beitrag 1284807)
Zitat:

Zitat von hathor (Beitrag 1284794)
Die Release-Build, die mit UPX bearbeitet worden ist, war auch noch sehr gross -> 2229KB.

Autsch...

Ich mag mein Delphi6, keine Schnickschnack, kein Komfort aber schnittige kleine Programme. :stupid:
[...]

Du has wol auch noch keine Ahnung, was Du mit ein 36 GB grosses DELPI IDLE alles machen kans?!!!

unt Speicherplatz kostett nun wirtlich nicth mehr fiel.

scheiss kleine Programe. Das kurbeld nicht die Wirtschaf an!!

es nacht der festplatte überhautnichts aus, wenn eine Depug-Exe 20 MB oder meer hat.
STRG+F9,STRG+F9,STRG+F9,STRG+F9,STRG+F9,STRG+F9,ST RG+F9,STRG+F9,STRG+F9,

Code:
;D

vagtler 28. Dez 2014 09:38

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Zitat:

Zitat von BMI (Beitrag 1284824)
[...] [absolut unverständliches Kauderwelsch] [...]

Hä?

Erwähnte hier kürzlich jemand das Wort "Orthographie"? :mrgreen:

Ernsthaft, ich habe keine Ahnung, was uns dieser Beitrag sagen möchte.

p80286 28. Dez 2014 16:55

AW: Weihnachtsraetsel - Code für Programm gesucht
 
Das ist die Erläuterung der
Zitat:

Zitat von mensch72 (Beitrag 1284816)
professionellen Sachen

.:mrgreen:

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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