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. |
|
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 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: 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 }; |
|
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ć. |
|
pekfos |
» 2018-11-09 20:26:03 Możesz użyć std::search(). |
|
Jah00 Temat założony przez niniejszego użytkownika |
» 2018-11-09 20:29:51 Dziękuję za odpowiedź, zamykam |
|
1 « 2 » |