Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wczytanie danych z pliku

Ostatnio zmodyfikowano 2018-11-09 20:29
Autor Wiadomość
Jah00
Temat założony przez niniejszego użytkownika
» 2018-11-09 19:32:27
Załóżmy najprostszą wersję, w pliku txt zapisujemy liczbę 10, program przy pierwszym włączeniu wczytuje ją i zapisuje do zmiennej po czym się zamyka. Przy każdym następnym włączeniu wyświetla tą liczbę z pamięci zmiennej.
P-172813
pekfos
» 2018-11-09 19:40:39
Zmienna globalna będzie po prostu ciągiem bajtów w pliku exe. Albo i nie. Domyślnie inicjalizowane zmienne mogą zostać zredukowane do samej informacji że pamięć pod nie ma zostać zarezerwowana i wyzerowana przy starcie programu. Co dokładnie się stanie jest zależne od implementacji. W każdym razie, jeśli napiszesz
C/C++
int globalna = 123;
to gdzieś w pliku exe powinien się znajdować ciąg sizeof(int) bajtów i wartość tych bajtów będzie odpowiadać liczbie 123. Wystarczy te bajty zmodyfikować i zmodyfikujesz wartość startową tej zmiennej globalnej. Przy czym cały problem jest w tym "gdzieś". Najprościej możesz to rozwiązać trzymając wszystkie dane jakie chcesz modyfikować w tablicy, na której początku będzie się znajdować unikalny ciąg bajtów. Może to np wyglądać tak:
C/C++
unsigned char data[ MaxDataSize + 32 ] = {
    0xB3, 0xD8, 0x76, 0x13, 0xFB, 0x62, 0x42, 0xC8, 0x7A, 0x32, 0x8D, 0x4F,
    0x3E, 0xB9, 0x36, 0x30, 0x92, 0x7D, 0xCE, 0x9C, 0x0F, 0x4C, 0x36, 0xF9,
    0x71, 0x60, 0xFD, 0x29, 0x36, 0x5B, 0x1E, 0x9E
    // Tu ewentualnie dane jakie mają być w exe na start.
};
P-172814
Jah00
Temat założony przez niniejszego użytkownika
» 2018-11-09 20:20:02
Ok rozumiem, z racji tego że nie jestem aż tak obeznany nasuwa się kolejne pytanie, w jaki sposób wyszukać ciąg tych bajtów z poziomu programu, jedyny sposób jaki mi przychodzi do głowy to cheat engine ale nie wiem czy to w jakikolwiek sposób pomoże, w końcu to sam program ma to wyszukać.
P-172815
pekfos
» 2018-11-09 20:26:03
Możesz użyć std::search().
P-172816
Jah00
Temat założony przez niniejszego użytkownika
» 2018-11-09 20:29:51
Dziękuję za odpowiedź, zamykam
P-172817
1 « 2 »
Poprzednia strona Strona 2 z 2