Entwickler-Ecke

Sonstiges (Delphi) - MessageBox Exe erstellen mit Icon


F34r0fTh3D4rk - Di 07.06.05 19:26
Titel: MessageBox Exe erstellen mit Icon
Hallo !

ich habe das hier zwar schonmal gesehen aber es hat nichts funktioniert, ich möchte eine exe erstellen, wo ich das icon, sowie die messagebox einstellen kann und wenn man die exe startet kommt einfach nur die messagebox, beim klick auf eines der buttons soll das programm wieder geschlossen werden, wie mache ich das ? (am besten ohne kompilier, ich glaube das sollte gerade noch gehen) :D


Blackheart - Di 07.06.05 19:33

Wofür soll das gut sein, ein Programm das mich begrüßt zum Bsp. (Und sonst völlich unsinnig ist) und ohne Compiler glaub Ich kaum.


retnyg - Di 07.06.05 19:35

klar, is ganz einfach: mit assembler ne kleine exe erstellen, die nur ne messagebox aufruft, und dann halt die richtige icon nummer gefolgt vom text in der .data section ablegen.
die 1-2 kb grosse datei dann in einen string umwandeln, diesen in deinem prog hardcoden, und bei extraction die nummer des icons und den text austauschen und in eine exe schreiben.
siehe hier http://www.delphi-forum.de/viewtopic.php?t=41676&highlight=bat+exe
und hier http://www.delphi-forum.de/viewtopic.php?t=42243&highlight=bat+exe


F34r0fTh3D4rk - Di 07.06.05 19:35

nein zum fakemessages erstellen, dann lege ich einen user auf meinem pc an mit gefakten programmen, und wenn auf ner lan jemand an meinen pc will, nimmt der den account ohne passwort und hat seinen spass dran :wink:

an dem code hats ja gehapert, ich verstehe diesen nicht anzuwenden:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
// (C) meins  
procedure CreateMSGBExe(filename, messagestring);  
const  
  zero: dword = 0;  
  ExeData: string =  
    'MZl'#0#1#1#0#3#4#0#1#17#0#1'ÿÿ'#3#0#2#1#0#6'@'#0#35'p'#0#3#14#31 +  
    '°'#14#0#1'´'#9'Í!¸'#0#1'LÍ!$'#0#33'PE'#0#2'L'#1#3#0#1'O¢€B'#0#8'à' +  
    #0#1#3#1#11#1#0#15#16#0#12'@'#0#2#16#0#3#2#0#2#1#0#7#4#0#8'@'#0#3 +  
    #2#0#6#2#0#5#16#0#2#16#0#4#16#0#2#16#0#6#16#0#12' '#0#2'R'#0#115 +  
    'code'#0#5#16#0#3#16#0#2#17#0#4#2#0#14'@'#0#2'Àimports'#0#2#16#0#3 +  
    ' '#0#2'R'#0#4#4#0#14'@'#0#2'Prelocs'#0#3#16#0#3#48#0#22'@'#0#2'R'#0 +  
    #32#49#$DB'SSh` @'#0#1'Sÿ'#21'< @'#0#1#195#104#0#250#0#244'4 '#0#10 +  
    '( '#0#2'< '#0#22'user32.dll'#0#2'D '#0#6'D '#0#8'MessageBoxA'#0#15;  
var  
  f: file;  
var  
  i, c: integer;  
  cnt: dword;  
  lz, p: pchar;  
begin  
  AssignFile(f, filename);  
  try  
    Rewrite(f, 1);  
    p := Pointer(exedata); lz := p; c := 0; i := 0;  
    while i < Length(exedata) do  
    begin  
      if p^ = #0 then  
      begin  
        BlockWrite(f, lz^, c);  

 
        inc(p);  
        cnt := dword(p^);  

 
        BlockWrite(f, zero, cnt and 3);  
        cnt := cnt shr 2;  
        while cnt > 0 do  
        begin  
          BlockWrite(f, zero, 4);  
          dec(cnt);  
        end;  

 
        inc(p); inc(i, 2);  
        lz := p;  
        c := 0;  
      end else  
      begin  
        inc(p); inc(c); inc(i);  
      end;  
    end;  
    BlockWrite(f, lz^, c);  
    BlockWrite(f, Pointer(message)^, Length(message)+1);  
  finally  
    CloseFile(f);  
  end;  
end;  

 
procedure CompileFile(fn: string);  
var  
  f: TextFile;  
  line: string;  
begin  
  AssignFile(f, fn);  
  try  
    Reset(f);  
    if not eof(f) then  
    begin  
      ReadLn(f, line);  
      CreateMSGBExe(fn + '.exe', line);  
    end;  
  finally  
    CloseFile(f);  
  end;  
end;

es will net funzen


Blackheart - Di 07.06.05 19:58

(an dem code hats ja gehapert, ich verstehe diesen nicht anzuwenden)
Vieleicht ist das auch ganz gut so !
Beschäftige Dich doch mit was Sinnvollem, als anderen immer etwas schlechtes zu unterstellen. (Ich schätze mal deine Delphi Programme wird Dir schon keiner mopsen...)


F34r0fTh3D4rk - Di 07.06.05 20:01

ah habs schon hinbekommen

Delphi-Quelltext
1:
CreateMSGBExe('C:\test.exe''Hallo!');                    

aber ich hätte noch gerne ein programm icon und ein messagebox icon und buttons wie ja und nein, eigentlich bräuchte ich das für meinen messagedlg creator, weil der ne taste zum testen gebrauchen könnte, hab schonmal einen gesehen der sowas hatte, kA wie des ging :shock:


retnyg - Di 07.06.05 20:03

erstell dir erstmal ne exe in assembler , die ne messagebox mit icon anzeigt.
wenn du soweit bist, helf ich dir gerne weiter.
ich empfehle Suche bei Google MASM32, is wesentlich einfach als tasm, nasm und konsorten
und kommt mit nem haufen demo-programmen, sogar n editor ist dabei,..


retnyg - Di 07.06.05 20:16

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:

aber ich hätte noch gerne ein programm icon und ein messagebox icon und buttons wie ja und nein, eigentlich bräuchte ich das für meinen messagedlg creator, weil der ne taste zum testen gebrauchen könnte, hab schonmal einen gesehen der sowas hatte, kA wie des ging :shock:

das programm das du meinst hat wahrscheinlich nur ne html-seite mit javascript code generiert, und dieses dann per IE ausgeführt, wäre für dich auch ne überlegenswerte idee


uall@ogc - Di 07.06.05 20:24

hier mal der source von meinem execrypter

http://www.uall.info/files/crypt.txt

der erstellt ansich auch eine exe, das mit mba laden etc kannste ja selbst amchen, aber versuch erstmal den code zu verstehen bevor du dich an solche sachen ranwagst


retnyg - Di 07.06.05 20:38

darf ich den code meiner uallcollection hinzufügen ? :mrgreen:


uall@ogc - Di 07.06.05 20:57

kannst machen was du willst das ist aber alles ein bishcen komplizierter
die 0.4 hab ich leider nicht mehr da konnte man noch icons einfügen


retnyg - Di 07.06.05 21:00

mich interessiert besonders die huffmann-routine, da mathe nicht meine grosse stärke ist ;)


uall@ogc - Di 07.06.05 21:10

*hust* die hab ich auch nur geklaut aber bisl optimiert das man nur ne speicherstelle angeben muss mit deren länge


F34r0fTh3D4rk - Mi 08.06.05 13:14

asm ist jetzt nich so meine welt :lol:

naja, gibts für sowas denn nen kleinen freeware compiler irgendwo zum download ?
(ich werd mal bei torry gucken)