Jump to content
sulea

minesweeper hack [reverse engineering]

Recommended Posts

toata lumea cred ca a jucat jocul minesweeper.

cerintele acestui challenge: hackeriti jocul astfel incat atunci cand calcati pe o bomba sa nu muriti, ci sa se puna AUTOMAT in acel patratel steguletul care marcheaza bomba.

exemplu:

sa zicem ca avem o bomba in prima casuta. atunci cand dam click stanga acolo, in loc sa se termine jocul deoarece am calcat pe o bomba, trebuie ca jocul sa ne marcheze singur acel loc ca fiind cu bomba (prin acel stegulet disponibil la click dreapta)

deci, chiar daca calcam pe bombe, jocul nu se termina, ba din contra ne marcheaza locurile cu bombe in care am calcat

hinturi:

- folositi cheat engine +/- alte unelte

va stau la dispozitie pt ajutor, voi incerca sa fac si un ghid daca sunteti interesati

in cel mai scurt timp voi uploada si un trainer ca sa vedeti mai clar despre ce este vorba

Link to comment
Share on other sites

Poti folosi pixelul magic de la xyzzy.

scopul meu este sa angrenez baietii in diferite aspecte ale reverse-engineeringului.

deci sa revin, aveti mai jos trainerul meu. rulati jocul, apoi trainerul, apasati 'test', iar apoi calcati pe bombe.

ok. acum vreau acelasi lucru de la voi. hackeriti jocul !!

va stau la dispozitie daca aveti intrebari, sau va blocati undeva, sau mai stiu eu ce. haideti fratilor ca e asa frumos reversingul..

download trainer: mines hack.rar

Link to comment
Share on other sites

Mersi pt joc. L-am desfacut dar ma blochez la functia de desenare a flagului. Nu pot sa-mi dau seama care e.

Am gasit Setimer si am blocat timpul la o secunda.

GetPrivateProfileIntW are rost sa incep de aici?

Am luat si hack-ul tau si am vazut ca modifici un process. Inca nu stapanesc asa bine API ca sa imi dau seama exact ce se intampla.

Link to comment
Share on other sites

ok. ma bucur ca esti interesat

explicatii:

definitia unui 'trainer' este de a modifica un program 'din zbor'. adica modificarile se fac in memorie, in timp ce programul respectiv ruleaza, si NU pe disc, cum se face de obicei cu crackurile/patchurile.

pentru a putea avea access la memoria pe care o ocupa un program, windowsul ne pune la dispozitie apiurile read si write process memory. dar pentru a folosi aceste apiuri, avem nevoie de pid-ul procesului la care dorim sa avem access. acesta il luam cu ajutorul apiului openprocess

deci asa functioneaza un trainer.

in exemplul nostru putem face modificari atat 'din zor', cat si modificari pe disc (cum cred ca esti tu obisnuit). eu am preferat sa le fac in zbor, tu le poti face pe disc

acum sa revenim la joc.

-despre partea cu timerul (desi challengeul nu o cerea): te-ai gandit foarte bine la functia settimer. INSA tine minte pe viitor: cand vrei sa hackeresti un joc, nu te baza pe apiuri ale windowsului (ex: settimer). jocurile au functiile lor proprii in care timpii sunt procesati. cel mai bine este sa cauti valoarea care te intereseaza cu ajutorul unui memory finder (am dat ca hint cheat engine)

-despre partea cu "functia de desenare a flagului": FOARTE BINE AI GANDIT, exista o functie care deseneaza acel flag (de fapt deseneaza si numerele, si bombele etc). aceasta functie ia ca parametrii coordonatele casutei in care va desena (x si y)

uite functia despre care e vorba: 1002646

ceea ce te sfatuiesc eu in continuare: foloseste cheat-engineul: apasa pe prima casuta din joc, in cheat engine cauta 'unknown initial value', dai new game, apasa iar pe prima casuta din joc, daca nr din casuta e diferit de cel care a fost acolo inaintea lui, in cheat engine cauta 'changed value' (daca e tot acelasi cauta 'unchanged value'. repeta pasii astia pana cand in cheat engine vei avea 2-3 adrese. in acest fel obtii ADRESA DE MEMORIE a primei casute. apoi vezi ceea ce se afla in acea adresa: adica id-ul numerelor, steguletelor, bombelor etc.

-GetPrivateProfileIntW - nu are nicio legatura cu hackul nostru

deci bazeaza-te pe cheat engine pana gasesti adresele corespunzatoare casutelor jocului.

cand ai gasit adresa primei casute te astept cu post

daca te-ai inpotmolit sau nu ai inteles ceva, te astept cu post

Link to comment
Share on other sites

Ok In primul rand nu mai invata oamenii Reverse engineering in Cheat Engine mai degraba le explici in MHS. Ceea ce faci tu aici nu se numeste Reverse enginnering !!!

Oameni buni daca vreti sa hecuiti jocuri asa cum spune domnu cautati Trainer maker kit(TMK) si cu cateva poke ai hack, incercati WPE...omu asta va da impresii in cap cu Cheat Engine....e un cacat de soft...care da pt minesweeper e cat de cat acceptabil dar cu alte jocuri...??? pointere....ca minesweeper nu are...e usor...Incearca sa le explici in olly pasi generali nu in cheat engine minesweeper....Daca vreti sa invatati ce va zice domnu cu Unknown initial value va sugerez sa incercati Tutorialu de inceput de la Cheat Engine nu din astea...Incercati MHS ca o sa va vina mai usor, are tot ce are Cheat Engine + multe altele printre care si script editor (C/lua) daca neaparat vreti sa va faceti coduri.

Degeaba le explici de WriteProcessMemory daca nu le explici nici macar ce e ala un pointer ce stocheaza si la ce foloseste...numai zic ca de cea mai cunoscuta functie api din toate timpurile de catre orice hacker/cracker e CopyMemory...nu team auzit de ea.

Daca vrei sa ii inveti ceva pe oameni bagale ceva mNemonics in cap nu le mai da vorbe in vant cu din astea si mai vii si cu chestii de genu ca vrei tu sa ne inveti Reverse Engineering.

On: Iti zic asta pentru ca atunci cand am inceput ASM x16 acum multi ani tu bateai cu puta de tastatura mi-au trebuit cel putin 2 ani de emu sa sa invat si sa trec la alta platforma ASM.

Uite o chestie pentru tine sa vezi si tu cum se face un hack minesweeper... nu mam chinuit prea tare...numi pari genu de chalenger. Va mai si dau adresele si hackul:


' win2K
&H10056f8 = Latimea
&H1005a68 = Inaltimea
&H1005a6c = Mine
&H1005700 = Adresa celulei de baza

' winXP
&H1005334 = Latimea
&H1005338 = Inaltimea
&H1005330 = Mine
&H1005340 = Adresa celulei de baza

Uite si Hackul facut de mine: MineSweeperHack.rar

NU va zic cu rautate dar Cheat Engine nu e ca un debugger gen Olly sa poti zice ca faci Reverse Engineering desigur ca sau intamplat cazuri in care am vazut patch in Cheat Engine..Dar a fost sa fie asta nu inseamna ca faci mai repede sau mai usor decat cu debugere gen OllyDbg, Immunity,sau orice gen de emulator. Numele zice tot!

Link to comment
Share on other sites

winmine_patched.rar

aici e minesweeper-ul tau patchuit.

Ce am facut:

in functia ce se apeleaza cand apesi pe un buton codul ce se executa cand apasam pe bomba e dupa

0100352D |. 74 66 JE SHORT winmine.01003595

Am suprascris ce era dupa acest jump cu :

0100352F 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]

01003533 50 PUSH EAX

01003534 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]

01003538 50 PUSH EAX

01003539 E8 11020000 CALL winmine.0100374F

0100353E EB 70 JMP SHORT winmine.010035B0

Adica am pus din nou pe stiva coordonatele x si y si am apelat functia MakeGuess care pune stegulet si am sarit la finalul functiei curente.

Vad ca este totusi un bug si anume ca nu tot mereu imi apare la sfarsit ca am terminat jocu in functie de ultimele clickuri dar nu am timp sa mai stau pe el.

P.S.: Nu mai mentionez aici cat de mare am pula si ca o puneam pe maica-mea sa copieze "mNmemoice" din cartea "totul despre microprocesorul Z80" pentru ca o aveam imprumutata doar 3 zile si eram disperat erau prea multe pagini.

In alta ordine de idei e trist ca vedem tot felu de certuri intre detinatori de putza sau pula . In loc sa invatam impreuna, sa ne ajutam, sa schimbam o idee, un tool, o metoda etc. ne pierdem timpu sa ne agitam care e mai jmeker. Chiar daca esti tare, de unul singur avansezi mai greu si trebuie sa fi deschis la un schimb de informatii, sa iei dar si sa oferi ceva, altfel nu ai ce cauta pe un forum.

  • Upvote 1
Link to comment
Share on other sites

IceyJoke si Sulea daca amandoi ati fi atat de avansati in Reverse Engineering precum va credeti, pana acum ati fi modificat un client de poker, ati fi plini de bani, ati sta la umbra in Hawai cu cocktail-uri si un Alienware in fata. Eu zic sa terminati cu cearta, fiecare are dreptate in felul lui. Mai bine pt aceasta comunitate ati incerca sa faceti ceva gen Lena: tutoriale "noob fiendly" + paper-uri de pe care sa studiem si muritorii de rand.

Link to comment
Share on other sites

@phantomas90 ai foarte mare dreptate...sincer apreciez simplu fapt ca ai auzit de lena [...]

Sincer daca vrei intradevar sa inveti mai multe de la el (lena) iti pot da mailul lui privat [...]

Bai baiatule, tu gandesti inainte sa lovesti clapele tastaturii? Lena e fata, unu la mana, iar doi, tare curios sunt si eu ce cunostinte ai tu in ASM si in tot rahatul pe care l-ai mancat aici pe forum, daca tot esti atat de priceput, asa cum a spus si colegul phantomas90, arata. Te invit sa participi la orice challenge din aceasta categorie dedicat RE-ului, facut fie de sulea, fie de ceilalti membrii si, posteaza rezolvarile. Ca am facut, ca am dres, ca iauite ce am facut eu in trecut, am auzit o mie de "pove?tiri adevarate", demonstreaza, lasa vorbele.

Link to comment
Share on other sites

nu o sa comentez chestiile lui iceyjoke pentru ca este mai bogat ca mine, stie mai multe, umbla prin tari straine si este 'bagabont' (in sensul bun al cuvantului). si cred ca probabil are si un bmw ultimul tip, cu care imi va face lastunul praf. o sa sugerez doar un video: YouTube - omul invizibil - 1

phantomas: eu incerc sa te AJUT cum pot. nu a zis NIMENI ca getdc deseneaza ceva. eu cand ti-am dat acea adresa a functiei ce deseneaza, am crezut ca stii ca se vor executa TOATE instructiunile din acea functie (incluzand getdc si bitblt).

casuta de la x=1 si y=1 se afla la locatia de memorie: 1005361. nu stiu de unde ai scos tu 10053E8 si 10053A8

daca te-am demoralizat cu criticile, imi pare rau, dar am vrut doar sa te ajut sa faci lucrurile asa cum se fac, inca de cand 'este cald fierul'. de acum nu ma voi mai amesteca in greselile pe care le faci.

spre deosebire de alti membrii de aici, eu ma tin de cuvant si aduc si niste dovezi: winmine hacked.rar

este hackul de minesweeper din meniu. am promis ca voi face si un tutorial, probabil va fi gata in cel mai scurt timp -sunt rupt de obosit acum-, si voi incerca sa-l fac cat pot de accesibil pt toata lumea.

ceea ce este un mare mister pt mine este de ce toata lumea aduce discutia de lena. NIMENI, dar NIMENI nu aduce discutia despre baietii care au un '+' in fata nick-ului.. baieti de la care a inceput practic reversingul pt publicul larg

pt iceyjoke: NU ESTE NICIUN FEL DE GLUMA CEEA CE TE VOI RUGA ACUM: te rog frumos sa ma ajuti si pe mine sa plec in spania (sau oriunde) la cules de capsuni/portocale (daca ai aceasta posibilitate, bineinteles). iti voi ramane dator. daca ma poti ajuta te rog trimite-mi pm

pt ceilalti: challengeul ramane valabil!

Link to comment
Share on other sites

Propun inchiderea acestui topic. cat despre challange-ul tau @sulea ce putem sa facem altceva decat ce ai facut si tu:

- adaugarea unei intrari noi in meniu cu ID XXX in resurse spre ex.: cu reshacker

- cautarea unei zone libere de memorie pt codul nostru

- pentru fiecare casuta (limitele sunt determinate de nivelul ales) se verifica daca e bomba si daca e se cheama MakeGuess care pune stegulet.

- modificarea procedurii de fereastra MainWindowProc ca sa faca salt in codul nostru pentru id-ul XXX .

Toate astea sunt facute de tine f bine iar alta solutie nu cred ca ar fi prea diferita fata de ce ai facut tu.

Tin sa iti multumesc pentru challange si pentru solutii, cine ar fi interesat ar putea macar sa urmareasca solutiile si tot ar avea de invatat. Sper ca challange-urile viitoare sa aiba parte de cat mai multi oameni interesati de subiect si nu de altceva.

Link to comment
Share on other sites

mi-ar placea sa folosesti olly , cu IDA nu prea sunt familiarizat

Poftim, poate te ajuta tutorialele acestea

http://www.woodmann.com/TiGa/idaseries.html


T4U:

[URL="http://tuts4you.com/download.php?view.2007"]TiGa 01 - Visual Debugging with IDA[/URL]
[URL="http://tuts4you.com/download.php?view.2008"]TiGa 02 - Remote Debugging with IDA Pro[/URL]
[URL="http://tuts4you.com/download.php?view.2009"]TiGa 03 - Debugging a Buggy Application with IDA Pro[/URL]
[URL="http://tuts4you.com/download.php?view.2010"]TiGa 04 - How to Solve CrackMes for Dummies in Video[/URL]
[URL="http://tuts4you.com/download.php?view.2018"]TiGa 05 - x64 Disassembling and Fixing Obfuscated API's[/URL]
[URL="http://tuts4you.com/download.php?view.2051"]TiGa 06 - TLS Callbacks and Preventing Debugger Detection[/URL]
[URL="http://tuts4you.com/download.php?view.2050"]TiGa 07 - Unwrapping a Flash Video Executable[/URL]
[URL="http://tuts4you.com/download.php?view.2049"]TiGa 08 - Stop Fishing and Start Keygenning![/URL]
[URL="http://tuts4you.com/download.php?view.2534"]TiGa 09 - Alien Autopsy rev. 2008[/URL]
[URL="http://tuts4you.com/download.php?view.2533"]TiGa 10 - Unpacking Deroko x64 UnPackMe[/URL]
[URL="http://tuts4you.com/download.php?view.2532"]TiGa 11 - Solving Pnluck x64 CrackMe[/URL]
[URL="http://tuts4you.com/download.php?view.2557"]TiGa 12 - Unpacking 4 Simple Packers with IDA[/URL]

// + Mirror la cele 2 parti de la tutorialul facut de sulea:

iwjfiojqej.sx33.net/mines.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...