Archiwum
- LATANIE W KATARZE
- Sterowanie systemem Windows za pomocą programu NirCmd (Windows XP, Vista, 7)
- Jak zablokować ostrzeżenie pojawiające się przy uruchamianiu pobranych programów? (Wi
- Alternatywa dla Nero. Test najlepszych programów do nagrywania płyt
- Toshiba uruchamia w Polsce program CRU dla posiadaczy notebooków
- TEST: 20 programów antywirusowych. Który najlepszy?
- Live Essentials 11 - programowy niezbędnik Windows
- NVIDIA 3D Vision w programie Mars 500
- 3. Fiorentina {dosko} 0:0 Sevilla {Ledzik02}
- 26. Lazio (Sherman) 1:0 Lancashire (guliwer1977)
- Australia: zainstaluj antywirusa, albo poĹźegnasz siÄ z internetem
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- wookee.pev.pl
Cytat
Długie szaty krępują ciało, a bogactwa duszę. Sokrates
I byłem królem. Lecz sen przepadł rankiem. William Szekspir (właść. William Shakespeare, 1564 - 1616)
Dalsza krewna: Czy śmierć to krewna? - życia pytasz się kochanie, tak krewna, ale dalsza, już na ostatnim planie. Sztaudynger Jan
Dla aktywnego człowieka świat jest tym, czym powinien być, to znaczy pełen przeciwności. Luc de Clapiers de Vauvenargues (1715 - 1747)
A ludzie rzekną, że nieba szaleją, a nieba rzekną: że przyszedł dzień Wiary. Cyprian Kamil Norwid (1821-1883)
aaaaLATANIE W KATARZEaaaa
W tej części wytłumaczę wam jak zaprogramować hacka (nie będę tłumaczył implementacji okna). Zapraszam douważnego przejrzenia postu, gdyż może on być ciężki w przełknięciu.
Na początek ściągamy sobie kod do AutoIT:
http://www.autoitscript.com/forum/index.php?showtopic=85724 Ponieważ programowanie okna powinno być wam znane, wytłumaczę tylko zawartosć funkcji hackującej :). No więc
przyjmijmy, że mamy następujący układ wskaźników (dla uproszczenia z tylko 1 offsetem):
11111111->22222222->33333333(offset=8)->4444444B Poniżej przedstawiam kod:
#include <NomadMemoru.au3>
Func Hackuj()
$processid=WinGetProcess("Nazwa procesu")
$process=_MemoryOpen($processid)
$wskaznik1=HEX(_MemoryRead($process, 11111111, 'float')) ;=22222222
$wskaznik2=HEX(_MemoryRead($process, $wskaznik1, 'float')) ;=33333333
$wskaznik2=HEX(_MemoryRead($process, $wskaznik2, 'float')) ;=44444444, a ma byc 4444444B, więc
$wskaznik2+=0x8
_MemoryWrite($wskaznik2, $process, 90, 'float')
EndFunc
A teraz objaśnienie:
$processid=WinGetProcess("Gra")
Funkcja pobiera ID procesu o podanej nazwie okna. Można użyć specjalnych oznaczeń, do innych kryteriów, ale o tym w
pomocy autoit.
$process=_MemoryOpen($processid)
Uzyskujemy dostęp do pamięci procesu.
$wskaznik1=HEX(_MemoryRead($process, 11111111, 'float')) ;=22222222
Argumenty tej funkcji to: Wczytana pamiec procesu(pobrane funkcją _MemoryOpen()) , Adres od którego zaczynamy wczytywanie, typ wczytywanych danych.
Co się tyczy typu danych określa on najczęściej ile danych wczytujemy (najczęściej dword)
W tej funkcji sprawdzamy, co jest w pamięci naszego procesu pod adresem 11111111 (w tym przypadku adres , w którym jest adres, do
adresu, w ktorym jest adres, do interesującego nas adresu :)) Dlatego właśnie powtarzamy tą czynność:
$wskaznik2=HEX(_MemoryRead($process, $wskaznik1, 'float')) ;=33333333
$wskaznik2=HEX(_MemoryRead($process, $wskaznik2, 'float')) ;=44444444, a ma byc 4444444B, więc
$wskaznik2+=0x8
i na końcu dodajemu nasz offset 0x oznacze, że nasza wartość jest szesnastkowa. A co się tyczy funkcji HEX(). Nie chcemy, żeby skrypt wczytał jakąś dziwną liczbę. Z kolei funkcja HEX() Zamienia naszą
wartość na wartość hexową (tak dla pewności).
_MemoryWrite($wskaznik2, $process, 90, 'float')
Na koniec wpisujemy w nasz adres 90 typu float. Po wykonaniu tej funkcji nasza postać powinna się przenieść na
współrzędne X=90 :)
Rzeczą gruntowną do zrozumienia tego jest zrozumienie wskaźników. Niektóre zmienne są tworzone w trakcie działania programów, a skrypt musi wiedzieć gdzie ich szukać. Dlatego właśnie powstają wskaźniki skalarne przechowujące dane o znalezieniu danej zmiennej. Pierwszy wskaźnik zawiera adres do jakiegoś miejsca w pamięci. Jeśli to miejsce jest wskaźnikiem, to również takowy adres zawiera. My te adresy odczytujemy, celem znalezienia ostatniego, najważniejszego adresu.(Ale pewnie błędów narobiłem :))
Nie jestem pewien co do poprawnosci kodu. Powinno byc dobrze ale nie mam AutoIT na PC zeby sprawdzic. W razie pablemow prosze pytac.
I standardzik:
Byłbym niezmiernie wdzięczny, gdyby ktoś zechciał wrzucić Screeny, bo informatycy, to z natury leniwe bestie :].
Zezwalam na kopiowanie poradnika tylko z dołączonym linkiem i BANNEREM swiata gier! (tego serwisu) i oczywiście tylko i wyłącznie z tym dopiskiem.
Pozdrawiam:
WaY
:o Nic a nic nie czaje :P ale i tak masz piwo w wakacje sie za to zabiorę i wykombinuję hacka zobaczycie :P