GeirGrusom Skrevet 1. august 2007 Del Skrevet 1. august 2007 Jeg vil gjerne takke GeirGrusom for hjelpen til å bestemme meg for Python 9183665[/snapback] Hehe, det skulle man aldri trodd om meg Lenke til kommentar
Frysning Skrevet 1. august 2007 Forfatter Del Skrevet 1. august 2007 Men seriøst, det er en lang prosess med å lære programmering. Du lærer egentlig alltid noe nytt, og det er alltid en utfordring som lurer rundt neste hjørnet. Lenke til kommentar
KiLLerZ Skrevet 1. august 2007 Del Skrevet 1. august 2007 Kunne vært interresant å fått på plass språket "Nynorsk" Noen som har noe bra online lesestoff om emnet? 9176090[/snapback] Her er noen sider som kanskje kan hjelpe. Har bare sett så vidt på dem da http://www.nynorsksenteret.no http://no.wikipedia.org/wiki/Nynorsk http://www.nynorsk.no/ http://nn.wikipedia.org/wiki/Nynorsk 1 Lenke til kommentar
Frysning Skrevet 2. august 2007 Forfatter Del Skrevet 2. august 2007 Jeg trodde Ueland var ironisk jeg. 1 Lenke til kommentar
Ueland Skrevet 2. august 2007 Del Skrevet 2. august 2007 Jeg tenkte egentlig på et språk som består av nynorsk, mest for lærdommens skyld "objektet bil utvider kjøretøy og imlpementerer motor" Lenke til kommentar
Emancipate Skrevet 2. august 2007 Del Skrevet 2. august 2007 Det heter vel utvidar? Lenke til kommentar
Johan Skrevet 2. august 2007 Del Skrevet 2. august 2007 objektet bil arvar frå kjøretøy og har ein motor, variablar, heiltall hestekreftar. heiltall dørar. flyttall køyrdeKilometer stans metodar, køyr() osv osv. Selfølgelig kompilatorfeil hvis det blir brukt feil gramatikk! Lenke til kommentar
Frysning Skrevet 4. august 2007 Forfatter Del Skrevet 4. august 2007 Driver å leser den boken om reversing, skal se abstraksjonsnivået er veldig høyt. Det virkelig en kunst, tungt diffust analysearbeid. Men helt ekstremt kraftig. Ferien går med til fruen, og denne boken. Lenke til kommentar
Frysning Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 (endret) Hva er den praktiske forskjellen på en Wrapper å en injector? Når det kommer til DirectX burde det jo være en smal sak, alle spillene bruker samme .dll til å "tegne" på skjermen. Ergo samme offsett er aktuell, pluss en muligens base-adress. Og det er vel bare en funksjon som tegner oppdateringene til skjermen, så ved å hooke den og bruke den versjonen av .dll som spillet har lastet inn i minne til å tegne f.eks en in-game msn klient på bufferen før jeg lar oppdateringen av skjermen kjøre så burde vel det funke? Endret 12. august 2007 av Frysning Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 Wrapper og inject er to vidt forskjellige ting som brukes til forskjellige ting. Wrapper er at noen skriver kode i et språk som er på et lavere nivå (som regel C++) for å få utvidet mulighetene til et språk i et høyere nivå (f.eks. Java) F.eks. for å få OpenGL eller OpenAL støtte. Mange velger å skrive wrappere selvom det strengt tatt ikke er nødvendig også, for å få bedre kontroll på hva som foregår, eksempler på det er OpenGL wrappers i .NET, siden alle .NET språkene kan bruke både OpenGL og OpenAL gjennom DllImport attributten. (eller *sukk* Declare funksjonen i VB, hvis man er av den gamle skolen) Code injection er at man etter at programmet er i gang, legger til kode, men da bruker man som regel de fasiliteter som allerede er brukt i programmet, f.eks. kalle glPolygonMode(GL_LINE) for å skru på wireframe rendring. (tenker på jukseprogrammet til Half-Life nå) Lenke til kommentar
Giddion Skrevet 12. august 2007 Del Skrevet 12. august 2007 Hva er den praktiske forskjellen på en Wrapper å en injector? 9261519[/snapback] vel... en wrapper pakker jo ting inn i et ekstra lag, som f. eks. lage et lag som gjør dx mulig i python eller lignende. en injector vel "pumper" data inn i programmet.. som f. eks. en msn klient på bufferen. Det blir som å sammenligne en jakke med en stikkpille... nesten Når det kommer til DirectX burde det jo være en smal sak, alle spillene bruker samme .dll til å "tegne" på skjermen. Ergo samme offsett er aktuell, pluss en muligens base-adress. Og det er vel bare en funksjon som tegner oppdateringene til skjermen, så ved å hooke den og bruke den versjonen av .dll som spillet har lastet inn i minne til å tegne f.eks en in-game msn klient på bufferen før jeg lar oppdateringen av skjermen kjøre så burde vel det funke? 9261519[/snapback] Du får det til å virke så enkelt Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 Kunsten er å ta bilde av MSN, lagre det i minnet til programmet som skal ha det, deretter å finne pekeren til Direct3D devicen, vite hvilken versjon dette er, og deretter kalle GetBackBufferSurface eller hva nå en den heter, deretter hente pekeren til surfacets minnedata (eller bruke BitBlt funksjonen), og kopiere bildet over. Lett som bare det, hehe. Lenke til kommentar
Frysning Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 At jeg får det til å høre enkelt ut vil vel egentlig bare si jeg ikke har forstått det Nei, men la oss si vi har et sample program i DirectX som har den berømte cuben. Hvis jeg ønsker å printe ut tekst, oppå dette i venstre hjørne via directX. Hvordan gjør jeg dette da egentlig? Kjøre programmet igjennom Ollydbg, sjekke alle executable-modules og få base til directx dll? Offsettene til funksjonene kan jeg kanskje regne meg frem til via headeren? Eller? Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 (endret) hmmmmm nei. Funksjoner blir eksportert i biblioteker, så du må sjekke import tabellen til TheCube® etter funksjonene, samt at du må ha pekeren til Direct3D devicen, som da selvsagt mest sannsynlig ligger på samme sted hver gang. Det du gjør, er at du sjekker etter et kall til CreateDirect3D (eller hva denne funksjonen heter igjen) for når den funksjonen er kalt, vil pekeren til D3D Devicen ligge i EAX, og da er det å sjekke etter en MOV [Adresse], EAX etter det. Adressen vil da inneholde pekeren til D3D devicen. Denne må du bruke som basis for å kalle Direct3D funksjoner. Det er også mulig du må se etter en Direct3D::ctor() (vet ikke hva constructoren kalles da) OpenGL er en del enklere, for så lenge du er i samme tråd, vil alle gl funksjoner bli kalt mot OpenGL contexten som er aktiv. edit: UnDecorateSymbolName funksjonen kan være grei å bruke for å se hvorfdan funksjonene fungerer. Endret 12. august 2007 av GeirGrusom Lenke til kommentar
Frysning Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 Takk takk, laster ned DirectX Sdk. Tester meg frem på noen av samplene. Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 Jeg har kikket meg litt frem, d3d9.dll eksporterer ikke Direct3D funksjonene, så da må du regne deg frem til hvor de er, uitfra pekeren som Direct3D9Create lager. Lenke til kommentar
Frysning Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 Greit nok. Jeg har kompilert et sample program, og leker med det i Ollydbg og Ida pro. Men helt ærlig, er jeg ikke sikker på hva jeg ser etter. Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 Først må du lete etter en referanse til Direct3D9Create() Lenke til kommentar
Frysning Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 (endret) Først må du lete etter en referanse til Direct3D9Create() 9262147[/snapback] Jeg fant dette i kildekoden: DXUTInit( true, true, true ); // Parse the command line, handle the default hotkeys, and show msgboxes DXUTCreateWindow( L"SimpleSample" ); DXUTCreateDevice( D3DADAPTER_DEFAULT, true, 640, 480, IsDeviceAcceptable, ModifyDeviceSettings ); Er det den linjen med CreatveDevice jeg leiter etter i Ollydbg? Edit: Teorien er veldig grei den, men skal si det ikke er så lett i praksis. Hmm har lastet ned koden til en injector, så der får jeg litt input. Men den funksjonen over var vanskelig å spore. Endret 12. august 2007 av Frysning Lenke til kommentar
GeirGrusom Skrevet 12. august 2007 Del Skrevet 12. august 2007 hva skal du med å injecte kode hvis du har kildekoden? Uansett, jeg har aldri hørt om DXUT funksjoner, men de ser ut til å hjelpe med å hoppe over den plagsomt vanskelige initialiseringen av Direct3D. Denne kaller nok Direct3D9Create() også, men da vil jeg tro at all kode skjer i DXUT biblioteket, jeg vet ikke. 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å