Tworzenie exe'ca

0

Jak w WinAPI dynamicznie utworzyć jak najmniejszego exe'ka

0

Chodzi ci o napisanie programu w WinAPI, żeby był mały? No to polecam mały przykład Adama wprowadzający w temat (dział Download) i WindowsSDK.

0

Nie. Dokładnie to chodzi mi o to że mój prog ma tworzyc dynamicznie exeka w którym chcialbym zapisywac rózne dane. Dlatego ten exek utworzony powinien byc dość mały.

0

Przejrzyj sobie to:
http://4programmers.net/view.php?id=37

Poszukaj też w kodach źródłowych, a na pewno kilka znajdziesz.

0

Stworzyc samemu exe'ca, ktory bylby zgodny z PE - obecny stosowany przez Windows format pliku dla dll i exe, no to stary porywasz sie na bardzo trudna rzecz (z motyka na ksiezyc niemalze :-8 ).
Chodzi o to ze musisz znac format PE, a to juz samo w sobie mimo ze na neciku dobrze opisane jest TRUDNE.
Ale qwa o czym ja pisze - to jest niewykonalane zeby samemu zrobic exe'ca !!

Jesli chcesz cos przechowywac to zrob np plik temporary i tam wrzucaj smieci - exe'ca ktory bylby exee'ciem na pewno nie zrobisz, jeszcze pol biedy z sekcjami poczatkowymi ale sekcja kodu ?!

Mimo wszystko byloby latwiej gdybys rozwinal na jaka cholere ci akurat exec ??

0

OK spoko poniosło mnie troche ! Chodzi o to, że chcę w jak najbezpieczniejszy sposób przechować hasełko do proga, a że nie moge (chyba że nie potrafie) dokleic tekstu do tegoż exeka w runtimie więc może jakieś inne racjonalne propsy jak bym mógł to przechować?

0

To absolutnie nie jest niemożliwe!! :-D

Przecież jak kompilator tworzy exe? Tworz go od 0 przecież... Jest też całę mnóstwo patchy modyfikujących execki. Wystarczy że:

  1. Dodasz do zasobow wlasnego proga inny prog ktory wypakujesz na dysk gdy bedziesz chciał zmodyfikować orginalnego execka.
  2. Uruchomisz wypakowany program z odpowienimi parametrami, które będą określać jakie zmiany chcesz dokonać w głównym execku.
  3. Wypakowany program zamknie podstawowa aplikacje.
  4. Na wzór innych programów patchy zmodyfikuje execka wedle parametrow z ktorymi zostal uruchomiony.
  5. Uruchomi podstawowa aplikacje.
  6. Albo usunie sie samoczynnie, albo zostanie usuniety przez podstawowa aplikacje.

Tutaj oczywiscie najwiekszym problemem jest stworzenie programu patchujacego :-) Co dla poczatkujacego programisty jest niemal niemozliwe. I oczywiscie ponadto klania sie znajomosc asma... :>

0

Ahaaaa.... O to chodzi.... No to nie trzeba żadnych execów, tylko zahashowane hasło. Wpisz w google "MD5 +Delphi", poszukaj w wynikach modułu do szyfrowania MD5.
Jak użytkownik podaje hasło po raz pierwszy, potraktuj je algorytmem i zapisz do pliku wynik. Gdy podaje je później, szyfruj to, co wprowadził i porównuj z zaszyfrowaną wersją z pliku - jeśli są takie same, to znaczy, że hasła też są identyczne. Takiego zaszyfrowanego hasła nigdzie nie musisz ukrywać, możesz nawet wstawić je do pliku o nazwie "TU_SA_HASLA.txt" - nikomu nic nie da wersja zaszyfrowana, MD5 to algorytm jednostronny, niemożliwy do odwrócenia.

0

my_nick: sposób też nie do końca dobry :). Co będzie, kiedy sobie napiszę program do kodowania md5, po czym zakoduję nowe hasło i wrzucę hash do tegoż pliku? :)

0

A czy można jakoś bezpiecznie do resourca wcisnąć hasło??

0

Wcisnij hasha do resourca... mozesz tez go czyms zaszyfrowac. Lub uzyj jako hasha jakis wyraz uzyty w programie.

0

Hasło musi być możliwe do zmiany podczas gdy prog jest odpalony.
Jak do resa dodać tekst ???

0

Dodajesz przez TResourceStream a następnie wystarczy zabezpieczyć zasoby tak aby przy edycji wyglądały jak uszkodzone. Gdzieś w FAQ to było.

0

Nie o to mi chodzilo. Wykorzystaj to z md5, tylko hasha do niego zapisz w programie, moze to byc np zwykla stala.


Lub jesli chcesz cos jeszce bardziej nie do zlamania to mozesz po kazdym uruchomieniu programu zmieniac hasha i jego nr zapisac tez w jakims pliku. Sposobow jest bardzo duzo...

0

jesli podasz stala w programie to nie zmienisz juz hasla, poza tym mozna to odczytac z exe'ka.

a nie mozesz zaszyfrowac zaszyfrowanego hasla? :)

0

To absolutnie nie jest niemożliwe!! :-D
...
Tutaj oczywiscie najwiekszym problemem jest stworzenie programu patchujacego :-) ...

Eh tu nie mowa o modyfikowaniu istniejacego exe'ca co akurat nie jest trudne, ale o stworzeniu od podstaw nowego - a tego nie zrobisz juz zadnym patchem, no chyba ze skopiujeszz jednego exe'ca czesc do drugiego ale to juz inna bajka.

0

eh, tworzysz w programie TStringList i w nim dodajesz jakies stale. Obok programu bedzie zaszyfrowany plik z haslem i jeszce jeden (zaszyfrowany, ale tu juz mozesz jakis wlasny "algorytm" napisac, ktory twoj program bedzie potrafil rozszyfrowac) z numerem aktualnego hasha.

Gdy odpalasz, program rozszyfrowuje plik z nr i wyciaga ze TStringList[NUMER] hasha, ktorego uzywa do porownania z haslem. Jezeli haslo jest prawidlowe zmien NUMER np o 1 i na nowo zaszyfruj plik z haslem oraz zapisz nowy NUMER.

Mysle, ze takie zabezpieczenie powinno ci calkowicie wystarczyc.


Tak swoja droga to niepowinienes pytac sie, jak zabezpieczyc program, w miejscach publicznych :/

0

DOBRA! Napiszę sobie funkcję kodującą i zapiszę do resoursa w jakiś niekonwencjonalny sposób!

Dzięki wszystkim za porady!

1 użytkowników online, w tym zalogowanych: 0, gości: 1