Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C# - Cheat w 5 minut !


Rekomendowane odpowiedzi

Opublikowano

Witam. Zaglądając na różne fora zagraniczne poświęcone hacking'owi gier itp. wpadłem na ciekawą bibliotekę, dzięki której możemy modyfikować aplikację dosłownie w dwóch liniach kodu. Pomyślałem, że zrobię krótki tutek, aby zachęcić początkujących i rozkręcić hack'owanie w języku C# ;)

Nazwa: VAMemory.dll
Źródło: www.vivid-abstractions.net
Download:

http://www.vivid-abstractions.net/wp-content/plugins/download-monitor/download.php?id=25

Skan:

https://www.virustotal.com/pl/file/7b12ff7b40209d2c3185fe5f81c3f30ebf2573160d26fed0fed19e0f0ea11702/analysis/1363471351/


Szybki przykład pokazany na tutorial'u od Cheat Engine.

 

.:::SZUKANIE ADRESU:::.


1. Otwieramy Cheat Engine, wybieramy proces modyfikowanej aplikacji. W moim przypadku "Tutorial-i386".

1363475736-U290622.png


2. Naszym zadaniem w kroku 2 tutorial'a od CE będzie znalezienie adresu życia, a następnie modyfikacja jego na wartość 1000, żeby odblokować przycisk "Next". W takim razie wpisujemy widoczną wartość na ekranie, czyli 100 i klikamy "First Scan".

1363475754-U290622.png


3. W oknie tutorial'a klikamy przycisk "Hit me" i okazaną wartość wyszukujemy jako "Next Scan". Znaleziony adres klikamy dwukrotnie, aby dodać go do tabeli na dole.

1363475776-U290622.png


 

.:::PISANIE CHEAT'U:::.

1. Tworzymy nowy projekt Windows Forms w środowisku Visual Studio.

1363476788-U290622.png


2. Projektujemy naszą formę dodając komponent "TextBox" i "Button" oraz dodajemy tę bibliotekę do projektu.

1363476819-U290622.png


3. Klikamy dwukrotnie na komponent "Button" i wpisujemy taki kod.

1363476859-U290622.png

 

.:::OPIS KODU:::.

1. Najpierw tworzymy zmienną "Hack", później przypisujemy do niej nową instancję klasy poprzez operator "new", aby zarezerwować miejsce w pamięci dla metod klasy "VAMemory". W jej argumencie podajemy nazwę procesu, nie okna.

VAMemory Hack = new VAMemory("Tutorial-i386");
 

2. Następnie odwołujemy się do metody "WriteInt32".

2.1 W pierwszym argumencie podajemy adres do modyfikacji.

2.2 W drugim argumencie konwertujemy wartość tekstową komponentu "TextBox" na Int.

Hack.WriteInt32((IntPtr)0x0191F56C,Int32.Parse(textBox1.Text));
 

 

.:::EFEKT:::.

Wartość zostaje zmieniona na "1000", dzięki czemu odblokowujemy przycisk "Next".

1363479780-U290622.png

 

Oczywiście ten adres co znalazłem nie jest adresem bazowym dlatego po "zrestartowaniu" aplikacji (Tutorial-i386) hack nie ma prawa działać. Dlatego odsyłam do tematów o pointerach.

 

P.s.

Sorry jak coś głupiego napisałem, ale jest 01:45 i się oczy same zamykają ;) Liczę na like i może parę procent zdjęte.

GrottyCracker22.png
Opublikowano

Genialny tut :D Mam nadzieję że napiszesz więcej. Czy tak samo wpisuje się pointer jak adres?

comment_aKm2b5jSiJgvkhmrlSzZ5Yc80OK7Mzta

Opublikowano

Wszystko pięknie, przejrzyście, like się należy.

No to w C# jeszcze łatwiej się robi niż w jakimkolwiek języku i tutaj mamy od razu dwie linijki a nie jak w innych minimum 10 w dodatku nie zrozumiałych na pierwszy rzut oka.

Dobra robota :).

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Świetny poradnik : ) Ja jak robiłem testowanie cheat engine to nawet nie doszłem do tego kroku, ale kiedyś to było, i tak chyba teraz też tak nie zrobił ale fajnie się czytało tut, like

Czerwone jest piękne! Kocham <3

Opublikowano

Świetny poradnik : ) Ja jak robiłem testowanie cheat engine to nawet nie doszłem do tego kroku, ale kiedyś to było, i tak chyba teraz też tak nie zrobił ale fajnie się czytało tut, like

To jest krok 2 :O

 

@topic

Poradnik bardzo dobry, ale jednak użyłbym jakiejś klasy z dostępnym kodem.

Opublikowano

 

Zamiast zawracać sobie głowę C#,lepiej skorzystać z generatora trainerów.

Hahahhahahaha ;D dobre ;p

 

Lib taki sobie, ja np lubie mieć dostęp do wszystkiego ;p

  • 5 miesięcy temu...
Opublikowano

To jest krok 2 :O

 

@topic

Poradnik bardzo dobry, ale jednak użyłbym jakiejś klasy z dostępnym kodem.

 

A polecasz jakąś?

 

PS. Właśnie trafiłem na ten tutorial w zasadzie nie szukając tematu, ale jak już to odpaliłem IDE, żeby potestować. Zastanawiam się jak obsłużyć scenariusz, w którym mamy więcej niż jedną instancję danego procesu. (jak np. chrome.exe) na screenach.

 

//Edit: Odpowiedź na problem o więcej niż jeden proces o tej samej nazwie uzyskałem, nie da się. Jedyny dostępny konstruktor dla biblioteki VAmemory to podanie stringu.

  • 11 miesięcy temu...
Opublikowano

A bardzo ładne. Myślałem, że będę musiał się męczyć tak jak w C++ ale dzięki tej bibliotece i temu poradnikowi będzie łatwiej. Dzięki! Like.

 

@Edit: A co jeżeli mój adres jest taki:

 minesweeper.exe+AAA38

;D?

Opublikowano

minesweeper.exe to baseadress (entrypoint naszego programu).

W przypadku winxp jest to zawsze wartość stała(0x400000).

W przypadku nowszych jest ASLR (Address space layout randomization) i entrypoint jest przypisywany do każdego programu inny więc trzeba odczytać base address:

 public static readonly uint baseAdress = (uint)NASZPROCES.MainModule.BaseAddress.ToInt32();
Opublikowano

 

minesweeper.exe to baseadress (entrypoint naszego programu).

W przypadku winxp jest to zawsze wartość stała(0x400000).

W przypadku nowszych jest ASLR (Address space layout randomization) i entrypoint jest przypisywany do każdego programu inny więc trzeba odczytać base address:

 public static readonly uint baseAdress = (uint)NASZPROCES.MainModule.BaseAddress.ToInt32();

DWORD baseAddr = (DWORD)GetModuleHandle("plik.exe");

 

okurwatodzialC#noiodkopalebekaXD

Opublikowano

 

minesweeper.exe to baseadress (entrypoint naszego programu).

Base address to nie entrypoint, jak już to ImageBase(nie zawsze, z tego co pamiętam to po poprawnym załadowaniu biblioteki system zmienia ten adres)

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano
Base address to nie entrypoint,

 

 

Mógłbyś dokładniej ?

 

Masz zapewne rację, ja tak napisałem dlatego, że np na overflow ludzie piszą 'how[,,,] entrypoint/base addres of program'.

No i w sumie base adress jako tako kojarzy mi się z startem pamięci :)

 

DWORD baseAddr = (DWORD)GetModuleHandle("plik.exe");

 

 

Tez bym chciał xD

Opublikowano

EntryPoint = adres prologu kompilatora wywołującego main'a.

BaseAddress/ImageBase = adres modułu w pamięci(wskazuje na nagłówki, a raczej na nagłówek IMAGE_DOS_HEADER).

 

@edit, może kiedyś to opiszę dokładniej.

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

  • 3 miesiące temu...
Opublikowano

Czy za pomocą tej biblioteki można np wysłać do gry np. klawisz z klawiatury aby poruszyć np. postacią z gry??

  •  carbonx zmienił(a) tytuł na C# - Cheat w 5 minut !

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...