![]() |
AW: Weihnachtsraetsel - Code für Programm gesucht
Zitat:
|
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: ![]() ![]() ... Jetzt noch sowas aus dieser Richtung: ![]() ![]() ... 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:) |
AW: Weihnachtsraetsel - Code für Programm gesucht
![]() +
Delphi-Quellcode:
und
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);
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); |
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. |
AW: Weihnachtsraetsel - Code für Programm gesucht
Zitat:
|
AW: Weihnachtsraetsel - Code für Programm gesucht
Die Release-Build, die mit UPX bearbeitet worden ist, war auch noch sehr gross -> 2229KB.
|
AW: Weihnachtsraetsel - Code für Programm gesucht
Zitat:
|
AW: Weihnachtsraetsel - Code für Programm gesucht
Exe-Files kann man manchmal nicht direkt up-/downloaden.
|
AW: Weihnachtsraetsel - Code für Programm gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
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... ![]() |
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ß. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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-2025 by Thomas Breitkreuz