Witam, w jaki sposób zrobić tak aby po kompilacji rozmiar pliku exe znalazł się w stałej ?? czy jest to do zrobienia ? czy nie da się ?
ziutek7 napisał(a):
Witam, w jaki sposób zrobić tak aby po kompilacji rozmiar pliku exe znalazł się w stałej ?? czy jest to do zrobienia ? czy nie da się ?
Po zbudowaniu pliku EXE pobierz jego rozmiar, znajdź stałą gdzie to ma być i tam zapisz.
Nieco rozszerzając:
Jeżeli kompilacja się zakończy, napisz osobny program, który:
1.Odnajdzie tę stałą w pliku *.exe (bodajże w sekcji .rodata
, .rdata
lub .text
, lecz tego nie jestem na 100% pewien i zależy to od kompilatora (może on w ogóle wyrzucić stałą z kodu)).
2.Podmień wartość na rzeczywisty rozmiar pliku (czyli np.jeżeli stała w pliku znajdować się będzie pod adresem 0x123ABC
, to pod ten adres właśnie musisz wpisać rozmiar exe-ka).
3.Enjoy!
Ale znacznie prościej będzie pobrać ten rozmiar do zmiennej w trakcie działania programu.
Co chcesz osiągnąć? Do czego ci to potrzebne?
Otwórz swój własny plik i wykonaj funkcję GeFileSize ;)
Patryk27 napisał(a):
1.Odnajdzie tę stałą w pliku *.exe (bodajże w sekcji
.rodata
,.rdata
lub.text
, lecz tego nie jestem na 100% pewien i zależy to od kompilatora (może on w ogóle wyrzucić stałą z kodu)).
Można odnaleźć na podstawie unikalnej wartości stałej (a) lub jej otoczenia (b).
a)
- ustawiasz w kodzie źródłowym wartość stałej np. na 0x123ABC
- szukasz w pliku EXE takiej stałej (jeśli znaleziona więcej niż raz - to błąd unikalności)
- zamieniasz ją na nową wartość
- w programie odwołujesz się do stałej
b)
- to samo, tylko stała zawarta jest w środku tablicy bajtów, wykorzystanie w kodzie trochę trudniejsze
@Azarien: to najprostsza forma zabezpieczenia przed:
- błędnie pobranym plikiem
- wirusem
Oczywiście zabezpieczenie do obejścia, ale lepszy rydz niż nic.