Gjakmarrja Skrevet 22. juni 2006 Forfatter Del Skrevet 22. juni 2006 (endret) Det jeg ser for meg er å lage et ASM script/kode som fungerer som en interface til resten av aimboten. Hmm virtuelt adresse område? Jobber ikke prosessene bare mot vanlig adresser mot minnet? Forresten, noen som vet hvordan jeg kan grave i minne til andre programmer via API i vb.net ? *starte googlingen* Edit: Programmer som ikke har DMA får de samme adresse i minner hver gang de starter? Er det logisk? Edit2: Fant bra lesestoff her for andre som også er interessert. link Jeg trenger C++ med inline assembly for å kunne lage noe, det er jo tydelig. Men skal si jeg nærmer meg da, lært mye på kort tid. Ikke så vanskelig å gjøre det med windows hooks, da jeg kan injecte hele dll filer inn i selve minne til prosessen. Så ligge inn noen linjer med ASM som sørger for at den nye koden blir kalt riktig. 1. Retrieve a HANDLE to the remote process (OpenProcess). 2. Allocate memory for the DLL name in the remote process (VirtualAllocEx). 3. Write the DLL name, including full path, to the allocated memory (WriteProcessMemory). 4. Map your DLL to the remote process via CreateRemoteThread & LoadLibrary. 5. Wait until the remote thread terminates (WaitForSingleObject); this is until the call to LoadLibrary returns. Put another way, the thread will terminate as soon as our DllMain (called with reason DLL_PROCESS_ATTACH) returns. 6. Retrieve the exit code of the remote thread (GetExitCodeThread). Note that this is the value returned by LoadLibrary, thus the base address (HMODULE) of our mapped DLL. 7. Free the memory allocated in Step #2 (VirtualFreeEx). 8. Unload the DLL from the remote process via CreateRemoteThread & FreeLibrary. Pass the HMODULE handle retreived in Step #6 to FreeLibrary (via lpParameter in CreateRemoteThread). Note: If your injected DLL spawns any new threads, be sure they are all terminated before unloading it. 9. Wait until the thread terminates (WaitForSingleObject). Etter å ha lest en del på nettet kan jeg iallefall konkludere med at dette kan gjennomføres på ganske mange måter. Jeg trenger litt mer kunnskap om ASM og C++. ASM bruker jeg nettet til og dette forumet. Angående C++ skal jeg få henta en murstein på bibliotektet så snart jeg får tid. Endret 23. juni 2006 av chills Lenke til kommentar
Giddion Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 Forresten, noen som vet hvordan jeg kan grave i minne til andre programmer via API i vb.net ? 6363559[/snapback] har du ikke tilgang på win32 API i vb.net (det var mulig i vb 5 eller 6) Edit:Programmer som ikke har DMA får de samme adresse i minner hver gang de starter? Er det logisk? 6363559[/snapback] Vel ja og nei. Hvis det er en app som kjører via en dll (som veldig mange gjør) så blir ikke dllen unloadet med en gang appen slutter (standard instilling) så programmer blir på en måte ikke avsluttet. Ellers så er det fult mulig å få samme adresseområde flere ganger, ganske vanlig faktisk. Jeg trenger C++ med inline assembly for å kunne lage noe, det er jo tydelig. Men skal si jeg nærmer meg da, lært mye på kort tid. 6363559[/snapback] hvorfor skal du bruke inline ASM? Lenke til kommentar
Gjakmarrja Skrevet 23. juni 2006 Forfatter Del Skrevet 23. juni 2006 Jeg fant en kode hvor Assembly koden som skulle injectes var en C++ Structure. Med inline assembly kode. Lenke til kommentar
Gjakmarrja Skrevet 23. juli 2006 Forfatter Del Skrevet 23. juli 2006 Jeg fikk tak i koden til et program som kan lese minnet til minesveiper. Så er godt på vei, men det å finne verdiene til BF2 også lage kode som kan søke etter den koden... blir "tidig". Grr snakket med en student i informatikk (master) som jeg jobber med. Hun sa hun kunne lage en aimbot til BF2 på en dag. Jeg å vil. Kanskje det går an å omgå DMA ved å lage en interface til selve boten som sprøytes inn i .exe i form av assembly kode. Lenke til kommentar
Zethyr Skrevet 23. juli 2006 Del Skrevet 23. juli 2006 Kanskje det går an å omgå DMA ved å lage en interface til selve boten som sprøytes inn i .exe i form av assembly kode. 6544005[/snapback] Kjører spillet noe "Cheatbuster" eller liknende? Ellers er det straks mye lettere å gjøre det. Bare husk at om det er noen checksum-greier eller liknende må du reverse det også. Har du lekt deg med BF2 i TSearch forresten? Lenke til kommentar
Gjakmarrja Skrevet 23. juli 2006 Forfatter Del Skrevet 23. juli 2006 (endret) Nei, ikke noe skikkelig graving enda. Men skal test nå snart da. Ikke med checksum, for koden trenger ikke å injectes før checksumen har kjørt. Edit: Har nå startet BF2 og sitter klar med Tsearch 1.6, hvilken verdier leiter jeg etter her? Jeg klarte å finne adressen til antall kuler jeg har igjen i magasinet. Men når det kommer til posisjon av sikte og til spiller er jeg ikke helt med. ? Endret 24. juli 2006 av chills Lenke til kommentar
Giddion Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 for å prosjektere et kamera i 3d. Er det mest vanlig å bruke 3 vektor3f (4x4 matriser brukes også) men siden mulighetene til å ende oppned ikke er der (i bf2 tror jeg) vil jeg nok tro at det du leter etter er 2 vektorer som består av 3 flyttall. GLU (mener bf2 bruker d3d) bruker de 3 første til å beskrive posisjonen til spilleren og de tre neste på hvor man sikter (Dette er som regel posisjoner på en kule rundt personen) Men jeg vet jo ikke hvordan det er i bf2. Lenke til kommentar
Gjakmarrja Skrevet 24. juli 2006 Forfatter Del Skrevet 24. juli 2006 På tide å se litt i 2mx boka Så er det da totalt 6 tall da? X,Y,Z for spilleren og X,Y,Z (Sikte) i forhold til spilleren ? Noen som har peiling på hvilken størrelse de kan være i? Lenke til kommentar
Zethyr Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 På tide å se litt i 2mx boka Så er det da totalt 6 tall da? X,Y,Z for spilleren og X,Y,Z (Sikte) i forhold til spilleren ? Noen som har peiling på hvilken størrelse de kan være i? 6546293[/snapback] Sikt et sted, search, beveg siktet oppover, new search (incremented), gjenta en del ganger og se om du har suksess. Det er uansett flyttall, og det kan kanskje hjelpe deg? Lenke til kommentar
Gjakmarrja Skrevet 24. juli 2006 Forfatter Del Skrevet 24. juli 2006 (endret) Ja, det sier jo meg noe. Men er litt i tvil enda, skulle ønske BF2 kunne kjøres i window. Greit så det er kanskje de største desimaltallene spillet har å oppdrive, lurer litt på hvordan jeg kan søke etter noe sånt da. Igjen så er det ganske mange verdier som forandrer seg da, hver gang jeg åpner spillet igjen og flytter på aimet. Men vet iallefall hvordan jeg søker etter verdier som "øker"/"synker" og etter hvor mye de har økt eller om de ikke har økt. Man kan sikte rett ned og rett opp, hva kan man anta at rett ned og rett opp i verdi kan være? Endret 24. juli 2006 av chills Lenke til kommentar
Zethyr Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 - 6546940[/snapback] Kanskje det finnes aimbots som viser koordinatene på hvor man sikter? Det hadde vært en stor hjelp, om du ikke gidder å lete i koden. Lenke til kommentar
Gjakmarrja Skrevet 24. juli 2006 Forfatter Del Skrevet 24. juli 2006 (endret) Jepp... Jeg klarte nå iallefall å finne verdien til hvor antall kuler man har igjen og fryse den. Så nå trenger jeg ikke å reloade mer. Link til video Endret 24. juli 2006 av chills Lenke til kommentar
lnostdal Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 sikte opp/ned har antageligvis en differanse på 180 (som i 180 grader) .. test 0 og 180, eller -90 og 90 når du sikter ned/opp (fullt ut) -- ellernoeslikt kanskje de lagrer verdiene som radianer i stedet for grader (defun rad<-deg (deg) (/ (* deg pi) 180)) (defun deg<-rad (rad) (* rad (/ 180 pi))) Lenke til kommentar
lnostdal Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 (endret) cl-user> (rad<-deg 90) 1.5707963267948966d0 cl-user> (rad<-deg -90) -1.5707963267948966d0 cl-user> (rad<-deg 180) 3.141592653589793d0 cl-user> (rad<-deg 0) 0.0d0 litt upresist dette, siden det er snakk om floating point .. men siden dette sansynligvis er C kan du prøve å gå ut i fra konstanten definert i libc (edit2: d.v.s. M_PI i math.h) og komme frem til riktige/matchende verdier, noe slik: cl-user> (= (rad<-deg 90) (* 0.5 pi)) t cl-user> (rad<-deg 180) 3.141592653589793d0 cl-user> (= (rad<-deg 180) (* 1 pi));; or just pi t edit: rettet på indenteringen Endret 24. juli 2006 av lnostdal Lenke til kommentar
Gjakmarrja Skrevet 24. juli 2006 Forfatter Del Skrevet 24. juli 2006 Ja, oki. Skal se nærmere på det. Forøvrig funket ikke "frysekulene", online da den sikkert gjør noen form for validering med serveren. Lenke til kommentar
Zethyr Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 Ja, oki. Skal se nærmere på det. Forøvrig funket ikke "frysekulene", online da den sikkert gjør noen form for validering med serveren. 6547510[/snapback] Du har ikke gjort så grundig research, ser jeg? Lenke til kommentar
Giddion Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 Mange spill er bygd på client server arkitektur som fungerer i SP og MP men ikke nødvendigvis på samme måte. Er du sikker på at du stiller på ammoen i MP og ikke noe annet? I noen spill kan man lene seg mer en 90 grader bakover (prøv å kast en granat rett opp og se om den kommer rett ned). Lenke til kommentar
Zethyr Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 Det kan fint være at ammoen blir beregnet av serveren når den får beskjed om at det har blitt avfyrt et skudd, ja, og at den hele tiden befinner seg der. Jeg kjenner ikke spillets arkitektur, så jeg vet ikke. Forøvrig, det kan være lurt å starte med å sniffe pakker, så kan du se hva som blir sendt/mottat av spillet. Dette kan fint gi deg noen hint om hva du kan fikse på, og hvordan du kan finne det. F.eks. i WoW blir posisjon beregnet client-side, noe som fører til at det er ganske lett å lage en "Chinese Teleport Hack" for å være utilgjegelig for fiendene hele tiden. Dette blir brukt til å skaffe store mengder gull og items, som blir solgt for ekte penger Lenke til kommentar
Gjakmarrja Skrevet 24. juli 2006 Forfatter Del Skrevet 24. juli 2006 Nei, her går det i å prøve å feile. Men det jeg merket er jo at det er 4 adresser i singelplayer jeg fryser for å få den effekten men online var det 5 adresser. Noen som har noen bra verktøy til å logge pakker med? *StarteGooglingen* I BF2 kommer håndgranaten rett i hue på deg, mener jeg. En stund siden jeg har spilt da. Det som er interessant for meg hvis jeg skal lage en aimbot er jo posisjon til de andre spillerene også en måte å sette sikte på. Jeg kan kanskje bruke API til å snu på musen. ? Eller må jeg endre koden? Skal se litt på hvordan posisjon og sikte informasjon lages for "jeg" på min datamaskin. Men det vil nok ta litt prøve å feile, men ikke så vanskelig når jeg først vet hvordan det lagres for da blir det ikke så stress å søke selv om DMA gjør sitt. Men igjen folkens, jeg trenger en noe til å analysere nettverkspakker. Noen som har noen anbefalinger? Lenke til kommentar
Zethyr Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 Noen som har noen bra verktøy til å logge pakker med? 6550141[/snapback] Wireshark (tidligere Ethereal) skulle vel klare jobben? Gratis, hvertfall. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå