Nowa wersja Xtenda, oznaczona numerkiem 2 ! >:D
Wprawdzie teraz bibliotekę pisałem głównie z myślą o manipulowaniu innymi programami, jednak w bibliotece można nadal znaleźć parę innych przydatnych funkcji. Dla uzyskania większej wydajności zmieniłem sposób jakim manipulowało się procesami w poprzednich wersjach – teraz trzeba je otwierać (wtedy przy wywołaniu jakiejkolwiek funkcji process_* podany proces był otwierany i zamykany w bibliotece [dla prostszej obsługi]). Dzięki wykorzystaniu GMAPI listowanie procesów, kluczy z rejestru itd. również wygląda inaczej niż wtedy – teraz mogłem użyć znacznie wydajniejszej metody wyliczania – do podanej ds_listy dodawane są odpowiednie wartości, tak więc nie trzeba już pisać pętli z funkcjami *find_first i *find_next ;D Dodatkowo, w pliku projektu (który znajduje się w archiwum razem z biblioteką) zdefiniowanych jest wiele stałych z WinAPI przydatnych przy np. wysyłaniu komunikatów czy zmiany stylu okna. A, i nie trzeba już wywoływać funkcji “xtend_set_debug_privilege”, uprawnienia są dodawane przy inicjalizacji.
Jako że Delphi ssie, Xtenda również przepisałem do C++, dzięki czemu DLL nieco mniej waży ;p
Opisy funkcji znajdziecie w skryptach (niestety, tym razem w j. angielskim).
>> Xtend.dll
Btw, sry, że dawno nic nie pisałem na blogu, ale byłem trochę “zajęty” wakacjami i pisaniem od zera tej biblioteki ;p Teraz zacząłem bawić się pewną bardzo ciekawą biblioteką dla C++, zwaną Qt. W najbliższym czasie pewnie opublikuje tutaj GMAPI razem z dokumentacją, albo zajmę się aktualizacją Game Protectora… jeszcze nie wiem czym najpierw się zająć, zobaczy się ;D
A, myślimy z Koflem nad pewnym wspólnym projektem, nad którym prace prawdopodobnie w niedługim czasie rozpoczniemy. Więcej nie mówię, bo póki co to tylko plany ;p
Kolejne zadanie z mojego TODO wykonane ;P Zdecydowałem się napisać od zera ten program w C++, jako że poprzednie wersje były napisane w Delphi – a tego nie chcę się już tykać :) Dalej już projektu nie będę rozwijać, a kod komuś tam zawsze może się przydać, toteż do programu dołączam również source code (publikowany na GPL v3). Ficzery w nowej wersji:
- Możliwość wyciągania zasobów z projektów GM5.3a (.gmd)
- Możliwość wyciągania zasobów z plików GM7.0 (.gmk)
- Nowy interface
Download na podstronie “Projekty >> GM Extractor”.
Pierwszy post na moim nowym blogu. :) Dlaczego go założyłem ? wkurzało już mnie to, że 99% projektów mojego teamu GameBase tak naprawdę należy do mnie, tj. które sam prowadzę/prowadziłem (idzie tam znaleźć jeszcze 1 program Kofla ;o), i to, że nie zapowiada się na wydanie żadnego wspólnego projektu… wprawdzie niby pracowaliśmy z Baranem (aka SilverSheep) nad Imagine Reader, ale nic z tego raczej nie będzie, przynajmniej przez jakiś czas… przez co postanowiłem, że będę pracował “na własne konto” :). Dlatego też wszystkie posty które znaleźć można przed tym i podstrony moich projektów przeniosłem z bloga gamebaseteam.eu. Co teraz będzie z GameBase ? Narazie nie wiemy, ale najprawdopodobniej zniknie.
Poza w/w bzdurami mam jeszcze jedno info, tak dla sprostowania: od jakiegoś czasu pracuję nad nowym projektem, biblioteką zwaną GMAPI i zdążyłem już opublikować parę wersji alpha na forach GMCLAN i GM Community, jednak nie miałem ostatnio czasu by upublicznić tego na własnej stronie (chodzi o to, że chciałbym pierw napisać dokumentację). Dziś lub jutro zamierzam opublikować kolejną “alphę” :)
Jeśli jesteś zainteresowany tym projektem, tu dowiesz się o nim więcej:
http://forum.gmclan.org/index.php?showtopic=17203
lub, jeśli wolisz czytać po angielsku, zapraszam tutaj:
http://gmc.yoyogames.com/index.php?showtopic=429267 :D
Poprawki wprowadzone w nowej wersji Game Protectora (1.2):
- Teraz żadna gra po zabezpieczeniu nie powinna wywalać błędu przy uruchamianiu
- Tła kontrolek zostały zmienione na przezroczyste
Przejdź do podstrony Game Protector
No i znowu – kolejna aktualizacja Game Protectora… mam nadzieję, że to już ostatnia :)
Miałem już nic nie dodawać do programu, ale pojawiły się prośby, by kompresowanie gier za pomocą UPX-a było opcjonalne tak więc dodałem taką opcję w nowej wersji. Poprawiłem również kilka zgłoszonych bugów.
Tak więc, wprowadzone zmiany:
- Poprawka: gry GM7 z własnymi paskami ładowania są teraz poprawnie wczytywane
- Poprawka: prawidłowe wyświetlanie ikony gry
- Zmiana: lekko zmieniony interfejs
- Dodane: kompresja UPX jest teraz opcjonalna
Poprawka – teraz Game Protector powinien działać prawidłowo na systemie Windows Vista.
Dlaczego “pełna” ? Bo zaimplementowałem już wszystkie zaplanowane metody zabezpieczania i opcje programu no i GP już nie będzie dalej rozwijany (jedynie poprawki będę wprowadzać jeśli zajdzie taka potrzeba). Tak, więc jest kolejny update kolejnego mojego programu :) i tym razem jest nieco konkretniej.
.
Zmiany od wersji 0.5, możliwości i nowe opcje programu:
- Napisanie od zera całego programu, tym razem w C++
- Możliwość zabezpieczania gier GM5.3A, GM6.1, GM6.1Vista i GM7.0
- Zmodyfikowana, lepsza metoda zabezpieczania gier:
- Więcej tricków uniemożliwiająch dekompilację
- Usuwanie skryptów z pamięci*
- Szyfrowanie wszystkich zasobów gry
- Kompresowanie gier UPX-em – z jednej strony jest to jakieś zabezpieczenie, a z drugiej strony skompresowane gry ważą ~1MB mniej (z wyjątkiem GM6.1 [nie przekonwertowany "vistatorem"], bo runner jest już skompresowany ASProtectem, więc zabezpieczone gry ważą tylko ~200KB mniej) :P
- Gry GM6.1 są przy zabezpieczaniu konwertowane na “GM6.1 Vista” :P więc działają pod Vistą.
- Interfejs w języku angielskim i polskim
*Jednak do końca wszystkie skrypty nie są usuwane. Z tego co zauważyłem około 10% większych skryptów (nie ten kod z obiektów, creation code itp) pozostaje widoczne i częściowo uszkodzone w pamięci (bo program dostaje te regiony pamięci przy alokacji), reszta kodu pozostaje nie widoczna.
Podziękowania dla Uzjela, który zgodził się mi pomóc przy testowaniu :)
Program oczywiście można znaleźć na odpowiedniej podstronie w zakładce “projekty” na stronie ;p
Jak widzicie, wprowadzam w swoich programach możliwość zmiany języka na angielski, a strona nadal pozostaje tylko w j. polskim… trzeba niedługo coś z tym zrobić :P

I o to przygotowałem następną aktualizację programu MemExtractor, służącego do wyciągania plików z pamięci :)
Myślę jeszcze o kolejnej aktualizacji, bo mam jeszcze trochę pomysłów i planów co do tego programu, no ale… na razie wprowadziłem takie zmiany:
Zmiany:
- Dodałem listę wyświetlającą moduły załadowane przez wybrany proces – można odhaczyć biblioteki których nie chce się skanować
- Dodałem możliwość wydobywania stringów / tekstu z pamięci wybranego procesu
- Ikonki w liście procesów i modułów ^^
i wprowadziłem drobne poprawki…
Klikając PPM na listę modułów można wybrać z menu opcje zaznaczenia/odznaczenia wszystkich modułów. Klikając PPM na listę typów plików można ustawić minimalną długość extractowanych stringów – tzn, że takie ciągi znaków muszą posiadać co najmniej X znaków aby zostały dodane do listy stringów.
Download znajduje się na podstronie projektu
Skoro już piszę, to wspomnę też o tym, że niedlugo ukaże się odświeżona wersja Game Protectora, którą zdecydowałem się napisać od zera w C++
Tak, kolejna aktualizacja, tym razem dodałem do GMThreads funkcje wspierające wielordzeniowe procesory. Teraz wątkom można “podpowiedzieć” na którym/których rdzeniach mają być wykonywane (choć nie zawsze może do tego dojść – system decyduje czy wątek może być wykonywany w danym rdzeniu).
Zaktualizowana wersja oczywiście znajduje się na podstronie projektu.
W prawdzie zaktualizowane wersje można znaleźć w internecie już od jakiegoś czasu… ale cóż, ostatnio nie mam czasu na pisanie newsów na blogu ;p Co więcej, nadal nie będę mógł pisać, bo przez jakiś czas nie będę miał dostępu do internetu.
K, w GMThreads pozbyłem się wycieków pamięci (i przy okazji przepisałem główny kod tworzenia wątków od nowa) a do Xtend.dll dodałem nową funkcję – xtend_set_debug_privilege, dzięki której Xtend ma prawa dostępu do każdego procesu (systemowych włącznie), więc można sobie odczytywać/zapisywać ;D
Najnowsze wersje projektów znajdziecie na ich podstronach ( zakładka “Projekty” >> … )
Bye.


