Forum: öppna DLL filer?

Forum huvudsida -> Mjukvara -> öppna DLL filer?

Sidor: 1

Till botten

Devilholk 12:08 - 28:e Juni 2005 | Post #1
Medlem
Inlägg: 15


Skicka PM
Hur öppnar man/editerar man en DLL-fil? vad för program använder man osv?

-------------------------
Ingen signatur!



Independence 16:14 - 28:e Juni 2005 | Post #2
Administratör
Inlägg: 1800


Skicka PM
Rätta mig om jag har fel, men såhär tror jag att det ligger till:
DLL:er är binärfiler, man editerar dem inte på vanligt vis. Du får skaffa dig en disassembler eller något annat reverse engineer-verktyg om du verkligen måste, men det är inget man brukar göra.

Vad är det du vill göra?

-------------------------

Vi är riddarna som säger fiskbulle!





Devilholk 16:26 - 28:e Juni 2005 | Post #3
Medlem
Inlägg: 15


Skicka PM
haha det där lät lite små komplicerat då varken ja eller han känner till något om assembler kanske de ej är någon idé.. men iaf jag och en kompis tänkte kolla på koden och kanske den modifera lite..

-------------------------
Ingen signatur!



void 10:14 - 29:e Juni 2005 | Post #4
Medlem
Inlägg: 63


Skicka PM
Kör DLL forwarding =) Det är det jag sysslar med.

Skapa en DLL med samma namn som den ni vill ändra, och som exporterar samma symboler (implementerar samma funktioner med samma returtyp och indata).

Byt namn på den gamla DLL:en (i mitt fall blir opengl32.dll realopengl32.dll) sedan gör du LoadLibrary på den nya DLL:en och kör GetProcAdress för att hämta funktionerna.

Nu kan du fånga alla funktionsanrop, modifiera indata och utdata samt logga ordning etc.

-------------------------
Ingen signatur!



Devilholk 18:59 - 29:e Juni 2005 | Post #5
Medlem
Inlägg: 15


Skicka PM
    Citat av void:
Kör DLL forwarding =) Det är det jag sysslar med.

Skapa en DLL med samma namn som den ni vill ändra, och som exporterar samma symboler (implementerar samma funktioner med samma returtyp och indata).

Byt namn på den gamla DLL:en (i mitt fall blir opengl32.dll realopengl32.dll) sedan gör du LoadLibrary på den nya DLL:en och kör GetProcAdress för att hämta funktionerna.

Nu kan du fånga alla funktionsanrop, modifiera indata och utdata samt logga ordning etc.



haha. det där lät väldigt smart dock förtog jag inte riktigt. Skulle vara skit shyst om du ville förklara lite mera detaljerat osv ifall du orkar/vill hehe.
Och alltså vi vet inte någon kod som finns inuti DLL filen vi vill åt.

-------------------------
Ingen signatur!



sdac 00:42 - 30:e Juni 2005 | Post #6
Medlem
Inlägg: 235


Skicka PM
    Citat av Devilholk:
Hur öppnar man/editerar man en DLL-fil? vad för program använder man osv?


Finns två möjligheter. Den första är genom att hacka assemblerkoden, vilket kräver stora erfarenheter. Den andra möjligheten är om DLL-filen är opensource, då är det bara ändra och kompilera om.




void 09:18 - 30:e Juni 2005 | Post #7
Medlem
Inlägg: 63


Skicka PM
    Citat av Devilholk:

haha. det där lät väldigt smart dock förtog jag inte riktigt. Skulle vara skit shyst om du ville förklara lite mera detaljerat osv ifall du orkar/vill hehe.
Och alltså vi vet inte någon kod som finns inuti DLL filen vi vill åt.


Alltså... I VC finns ett program som heter dumpbin. Kör "dumpbin /exports dllfil.dll" för att se alla symboler som exporteras. Sedan kollar du I DLL:ens header efter deklarationerna av funktionerna (vilken returtyp de har och vilka parametrar funktionerna tar).

Nu skapar du ett DLL-projekt och implementerar alla funktioner som den riktiga DLL:en exporterar. So far so good, nu kommer kruxet =)

I DLLMain (den metod som anropas då DLL:en öppnas) så gör du

HANDLE dll = LoadLibrary("REALdllfil.dll");

och har en "handle" att göra GetProcAddress på, så att du kan hämta funktionspekare från DLL:en och anropa dem.

Låt dina funktioner anropa funktionspekaren med samma namn. Nu kan du titta på all data som passerar mellan programmet och den riktiga DLL:en =)

-------------------------
Ingen signatur!



Devilholk 11:14 - 30:e Juni 2005 | Post #8
Medlem
Inlägg: 15


Skicka PM
letade ett tag efter dumpbin hittade den sedan haha va glad jag vart då. va jobbig jag känner mig när jag frågar en massor haha. jag förstog inte riktigt det med kolla i DLL:ens header. Jag har alltså 2 stycken DLL-filer och en txt/logg-fil som är output ifrån någon av DLL-filerna inget mer.i första filen kommer detta upp efter jag kört det i DUMPBIN /EXPORT fil1.dll
File Type: DLL
Summary

4000 .data
1000 .rdata
2000 .reloc
C000 .text

den andra

File Type: DLL

Section contains the following exports for AgeEx.dll

0 characteristics
3D9E2935 time date stamp Sat Oct 05 01:50:13 2002
0.00 version
1 ordinal base
2 number of functions
2 number of names

ordinal hint RVA name

1 0 00001210 EndAgeEx
2 1 000011E0 StartAgeEx

Summary

3000 .data
1000 .rdata
1000 .reloc
B000 .text
1000 SHARDATA

Det är det jag får ut. Vad du menade sen förstog jag inte riktigt. vad gör jag med informationen?
(ber om ursäkt för att jag är så seg och trög)


-------------------------
Ingen signatur!



void 13:34 - 30:e Juni 2005 | Post #9
Medlem
Inlägg: 63


Skicka PM
dumpbin /exports (inte export)

-------------------------
Ingen signatur!



Devilholk 13:44 - 30:e Juni 2005 | Post #10
Medlem
Inlägg: 15


Skicka PM
Oj.. men jag skrev Exports i programmet så det kan inte vara det jag gjrode fel på :/..

-------------------------
Ingen signatur!



void 14:41 - 30:e Juni 2005 | Post #11
Medlem
Inlägg: 63


Skicka PM
Då ser du att programmet exporterar EndAgeEx och StartAgeEx. Nu måste du ta reda på vad det är för funktioner
  1.  
  2. bool EndAgeEx(int i);
  3. const MegaStructure* StartAgeEx(TinyClass a);


T.ex. =)

Men med den här approachen kan du bara se in/utdata och modifiera dem. Inte se hur själva DLL:en arbetar.

-------------------------
Ingen signatur!



Devilholk 14:59 - 30:e Juni 2005 | Post #12
Medlem
Inlägg: 15


Skicka PM
okej.. du har inte msn eller något så man kan fråga lite snabbare osv?.. haha för jag förstår ändå inte ritkigt ändå haha.

-------------------------
Ingen signatur!



void 16:05 - 30:e Juni 2005 | Post #13
Medlem
Inlägg: 63


Skicka PM
,,r på IRC

-------------------------
Ingen signatur!



Devilholk 16:34 - 30:e Juni 2005 | Post #14
Medlem
Inlägg: 15


Skicka PM
hehe.. då får ja väl ta å fixa irc igen och fråga dig där. men får se om man orkar det ikväll eller om det blir imorrn.

-------------------------
Ingen signatur!



Sidor: 1

Forum huvudsida -> Mjukvara -> öppna DLL filer?
Atom feed

Du får inte posta i den här tråden | Till toppen