Seite 1 von 4 1234 LetzteLetzte
Ergebnis 1 bis 15 von 50

Thema: eJay Dll Reversing

  1. #1
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Question eJay Dll Reversing

    Hallo zusammen,
    vorweg ich hoffe ich bin hier richtig.
    Bin aber ehrlich gesagt nicht sicher, da meine Fragen sich auf das nutzen von Funktionen einer DLL beziehen.
    Sollte ich nicht richtig sein, wäre es echt nett wenn man mir einen Anlaufpunkt zeigen könnte, danke!

    Vorgeschichte:
    Ich habe mir bei eBay einen Stapel Sample CD´s der Firma eJay gekauft.
    Kann mit diesen eigentlich nun nichts anfangen, da die Samples im PXD Format vorliegen.
    Kurzerhand das Web abgesucht nach einem Konverter, ausser 2 Steinalten Beiträgen hierzu nun keine großen Infos gefunden.

    Auf dieser Seite:
    http://www.reversing.be/forum/viewto...1757ea30972caa
    zum einen C++ Quelltext mit dem ich aber nichts anfangen kann und zum anderen der Hinweis das diese Dll die Funktion W2P enthällt: pxd32d5.dll

    Mit dem PE Explorer in diese Dll geschaut, versteh den ASM Code nun nicht wirklich und hab in den Strings gesehen das diese Funktion sowohl Wav2PXD als auch Pxd2Wav enthällt, die Funktion W2P.
    Kurzerhand mit Autoit nun einen Aufruf an diese Dll erstellt, erstes Erfolgserlebniss: eine PXD Datei wird aus einer Wav Datei erstellt.
    Wandel ich die PXD Datei wieder zurück zu einer Wav Datei hab ich nur Rauschen.

    Durch den zweiten Hinweis im Web hab ich dann noch gesehen das diese Datei: eJ_Tool.dll die Funktion ap2w enthällt, mit der man aus einer PXD wieder eine Wav macht.
    Das ganze dann wieder probiert, die Wav ist aber leider auch nicht zu gebrauchen.

    Dazu kommt, die PXD Dateien von eJay sind alle ein paar hundert MB groß.
    Dazu gibt es dann eine INF Datei wo ich sagen würde, dort steht drin an welcher Stelle in der PXD Datei ein Sample ist.

    Nach diesem Roman nun zu meiner eigentlichen Frage:
    Sieht einer von euch das ganze als Herausforderung das mit mir vieleicht gemeinsam zu lösen ?
    Wie kann ich die Funktionen nutzen, das ein brauchbares Ergebniss rauskommt ?

    Ich denke für euch wird es nicht schwer sein den Code im PE Explorer zu verstehen und vieleicht den richtigen Aufruf an die Funktionen zu finden.
    Ebenso wird sicher der C++ Quelltext hilfreich sein das ganze zu verstehen.
    In diesem Beispiel wird soweit ich das verstehe auch die INF Datei mit einbezogen um die Samples zu konvertieren.

    Ich bin da absoluter Neuling, aber ich denke man sieht ich geb so schnell nicht auf und würde da gern eine Lösung für haben.
    Wäre auch der einzigste PXD Konverter der dann im Web zu finden ist

    So, ich danke fürs lesen und hoffe auf Hilfe,Tipps und Anregungen.

    ps: Anbei die dll´s und eine Beschreibung der Funktionen sowie einen Link zu einer kostenlosen Demo Version von eJay.
    Angehängte Dateien Angehängte Dateien

  2. #2
    Administrator
    Registriert seit
    Jul 2002
    Beiträge
    2.552
    Renommee
    903

    Re: eJay Dll Reversing

    OffTopic:

    Kurzerhand das Web abgesucht nach einem Konverter, ausser 2 Steinalten Beiträgen hierzu nun keine großen Infos gefunden.
    Seit ner ganzen Zeit kursiert ein pxd2wav.exe im Netz. Eventuell wirst fuendig und das Tool funktioniert bei dir?

    Davon abgesehen meine ich mich zu erinnern, dass du die Files irgendwie mit Wavelab oeffnen kannst, allerdings Sample und Bit Rate erraten musst.
    Die Nacht ist die schönste Zeit des Tages,
    alle Bälger sind im Bett und die scheiß Sonne scheint auch nicht!

  3. #3
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    hey danke für deine antwort
    also die tools hab ich gefunden, bei der ersten seite existiert die download seite nicht mehr und die mail des authors.
    http://www.madtracker.org/forum/viewtopic.php?t=2160

    bei der zweiten muss ich wohl für den download bezahlen, mein google übersetzes russisch ist da nur teilweise hilfreich.
    http://dj-mc.mylivepage.ru/file/216/1584?last_page=go

    mehr gibt es nicht zu finden zu pxd2wav oder pxd converter, pxd extractor.
    mit letzterem hab ich zumindest ne beta version eines pxd extractors gefunden, der aus den hundert mb files die samples im pxd format extrahiert.
    email des authors leider auch nimmer aktuell

    noch eine idee ?

  4. #4
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    so hab mir auf der kostenpflichtigen russischen seite mal die pxd2wav besorgt.
    auf 2 rechnern stürzt das programm im normalen windows modus ab.
    funktioniert lediglich im abgesicherten modus.

    kann sich bitte einer von euch mal die exe ansehen und mir sagen welcher code teil für die umwandlung nach wav zuständig ist ?
    wird wohl ein aufruf an die dll sein, die frage ist nur wie dieser aufruf gemacht wird.

    in der dll steht auch die funktion inkl. aufruf, aber wenn man die dll mit der funktion startet und input.pxd output.wav nimmt...rauscht das wav.

    mit der pxd2wav.exe funktioniert die konvertieren aber einwandfrei.
    muss also ein trick bei sein wie man die dll aufruft.

    pxd2wav.exe, dll und test.pxd:
    http://www.megaupload.com/?d=4E792AUG

  5. #5
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    edit:
    denke das wird die funktion sein:
    Code:
     SUB_L00401710:
      		push	esi
      		mov	esi,ecx
      		push	SSZ004210D8_pxd32d5_dll
      		call	[KERNEL32.dll!LoadLibraryA]
      		test	eax,eax
      		jnz	L00401735
      		push	eax
      		push	eax
      		push	SSZ004210C0_can_t_find_pxd32d5_dll
      		call	SUB_L00418367
      		push	00000000h
      		call	SUB_L00402D33
     L00401735:
      		mov	eax,10022624h
      		mov	dword ptr [esi+60h],10022624h
      		mov	dword ptr [esi+64h],10022645h
      		mov	dword ptr [esi+5Ch],1001A2DAh
      		call	eax
      		mov	dword ptr [10099D08h],00000004h
      		mov	eax,00000001h
      		pop	esi
      		retn
    dll wird geladen
    wenn gefunden springe zum aufruf der dll
    wenn nicht gefunden:error
    aufruf der dll mit funktionsübergabe

    call dll(eax), funktion, infile, outfile

    nur was kommt an die dll noch hier mit bei: mov eax,10022624h

    hier wird ja auch mit den dateinamen was gemacht:
    mov dword ptr [esi+64h],10022645h
    mov dword ptr [esi+5Ch],1001A2DAh

    kann mir das bitte einer erklären ?

  6. #6
    Registered User
    Registriert seit
    Sep 2008
    Beiträge
    402
    Renommee
    270

    Re: eJay Dll Reversing

    Die Datei, auf die Sie zugreifen möchten, ist derzeit leider nicht verfügbar. Bitte versuchen Sie es später erneut.

  7. #7
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    hm bei mir geht der download, hab die dateien nun hier im forum angehangen:
    Angehängte Dateien Angehängte Dateien

  8. #8
    Registered User
    Registriert seit
    Sep 2008
    Beiträge
    402
    Renommee
    270

    Re: eJay Dll Reversing

    hab dir mal W2P decompiled...

    Code:
    int __cdecl W2P(int numberGreaterEqualThree, char **fromTo)
    {
      return W2P_0(numberGreaterEqualThree, fromTo);
    }
    
    int __cdecl W2P_0(int numberGreaterEqualThree, char **stringTable)
    {
      int result; // eax@4
      int v3; // [sp+0h] [bp-1Ch]@1
      int *v4; // [sp+Ch] [bp-10h]@1
      int v5; // [sp+18h] [bp-4h]@5
    
      v4 = &v3;
      if ( numberGreaterEqualThree >= 3 && **(stringTable + 1) && **(stringTable + 2) )
      {
        printf("PXD2Wav Konvertierung: %s -> %s", *(stringTable + 1), *(stringTable + 2));
        v5 = 0;
        strcpy(globalStringArray, *(stringTable + 1));
        strcpyOffset260(globalStringArray, *(stringTable + 2));
        result = convertPxdToWave_1000F8C5(globalStringArray);
      }
      else
      {
        result = printf("PXD2Wav Konvertierung: pxd -> wav");
      }
      return result;
    }
    Ein Aufruf an die W2P scheint also irgendwie so auszusehen:

    Code:
    char *stringTable[]
    {
            NULL,
            "some.wav",
            "some.pxd"
    }
    
    W2P(3, stringTable);
    Die Funktion, die nach LoadLibrary() ausgeführt wird:
    Code:
    int __cdecl PInit()
    {
      ADevice(0);
      AInit(0);
      RWaveParam(60, 32000);
      return 0;
    }

  9. #9
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    oh das ist ja echt cool, vielen dank !
    das werd ich mir in ruhe ansehen und testen.

    auf alle fälle ist schon mal sicher das man durch die 3 der funktion sagt, was zu tun ist.
    den diese funktion konvertiert auch eine wav zu einer pxd, was einwandfrei funktioniert:
    call dll, w2p, input.wav, output.pxd

    also vermutlich die 3 senden (zur auswahl pxd2wav), dazu ein array mit beiden filenamen und die 0
    wobei die 0 sicher der rückgabewert der __cdecl PInit ist *grübel*

    echt super hilfreich die infos von dir und ich seh die lösung schon zum greifen nahe *freu*
    könnte die pxd2wav.exe ja im abgesicherten modus nutzen, aber das macht langsam echt fun das "rätsel" zu lösen und ich will das hinbekommen

  10. #10
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    hm *auf die uhr sieht* wieder ne nacht ohne resultat.
    meine nick ist ja echt programm...zu blöd dafür.

    versuche nun seit ein paar std. die werte als array zu übergeben.
    mir dazu ne delphi test dll erstellt, um zu sehen ob von autoit der pointer richtig ankommt = crash, crash und crash

    mein wissen reicht da auf keinen fall aus, was zu coden.
    sollte lieber bei webdesign und php bleiben...

    zwar voll enttäuschend, aber bleibt mir wohl nix anderes übrig als im abgesicherten modus die pxd2wav.exe zu verwenden.

    voll ätzend *seifenblase platzt*

    danke dir aber noch mal für die zeit die du investiert hast um mir zu helfen
    selten geworden heutzutage.

  11. #11
    Registered User
    Registriert seit
    Sep 2008
    Beiträge
    402
    Renommee
    270

    Re: eJay Dll Reversing

    kannste denn per auto-it ohne abgesicherten modus eine pxd nach wav konvertieren? mehr brauchste doch eigentlich nicht?

    hm, kannst du vielleicht c/c++?

    - dann kannste die .dll einfach mit LoadLibrary() laden...
    - mit GetProcAddress() die adresse jeder funktion bekommen (die du dann richtig castest mit aufrufkonvention, rückgabewert, parameter) und...
    - dann wie ne normale funktion aufrufen

  12. #12
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    ne c/c++ leider nicht.
    hab mal 6 jahre asm (2000-2006) programmiert und ne ganze menge guter sachen.
    aber das ist nun auch 5 jahre her und ich hab gemerkt: meiste vergessen

    autoit ist so ne simple baukasten sprache, hab damit ein paar bots für ein mmorpg geschrieben.
    oder ein wav2ogg konverter, imageshack uploader, zeitschaltuhr für windows und so mini zeug.
    halt tools die man hin und wieder mal braucht und hilfreich sind.
    hab das nun genutzt, weil ich davon ausging: dll laden, funktion aufrufen und werte übergeben = fertig

    was ich machen könnte wäre die fertige pxd2wav.exe zu nehmen.
    die schmiert halt auf 2 rechnern ab und kann ich nur im abgesicherten modus nutzen.
    ollydbg meint da ist ein fehler beim aufruf eines handles drin und darum schmiert sie im normalen windows ab.

    fand das mit dem abgesicherten modus aber lame und dachte ich schreib mir fix selber ein tool dafür.
    wie man sieht, so einfach ist das wohl nicht oder ich seh den wald vor lauter bäumen nicht.

    hab ja verbissen nun 4 tage dran rumgehangen und dank dir zum ersten mal nun raus, wie die funktion genau aufgerufen wird.

    dazu in ein paar boards um hilfe gefragt, muss aber sagen: du bist der einzigste.
    erinner mich noch an die zeiten wo im web gern geholfen wurde, heute scheint mehr die devise "will haben" zu sein.
    wobei ich ja nun auch was will, klingt sehr doof...

    wie auch immer, kein plan ob ich nun masm wirklich wieder anfange.
    mich in c++ reinfuchse oder das ganze vergesse.
    wurmt auf alle fälle extrem.

    werd nun erstmal wieder arbeiten, zum teil meine kunden gut vernachläsigt.
    man kann nit alles sein: webdesigner, php knecht oder coder

    sollte mal ne webseite ähnlich wie myhammer.de nur für coder eröffnen.
    suche code lösung, biete webdesign

  13. #13
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    lässt mir natürlich keine ruhe
    probier das nun mit delphi nach deinem vorschlag.

    erstes ergebniss schon da, eine wav datei mit richtigem header wird erstellt.
    zwar nur 1kb groß und nicht zu gebrauchen, aber ein anfang

    mal schauen wieso er nun nicht die pxd datei nimmt.
    glaub fast die muss darüber:
    Code:
    ADevice(0);
    AInit(0);
    RWaveParam(60, 32000);
    return 0;
    geladen werden.

    werd berichten wenn es was neues gibt

  14. #14
    Registered User
    Registriert seit
    Sep 2008
    Beiträge
    402
    Renommee
    270

    Re: eJay Dll Reversing

    harrr, php-knecht :>

    wie sieht denn dein delphi-code aus? rufste auch PInit() vorher auf? die heißt wohl nicht umsonst "PInit".

  15. #15
    Registered User
    Registriert seit
    Feb 2011
    Beiträge
    26
    Renommee
    28

    Re: eJay Dll Reversing

    so sieht der delphi code bisher aus:
    Code:
    unit test;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      PXD2WAV_Func    = function (input: integer; ArrChar: array of String): Integer; stdcall;
      PInit_Func      = function (Data1: string): Integer; stdcall;
    
    
    
    type
      TForm1 = class(TForm)
      Button2: TButton;
      procedure Button2Click(Sender: TObject);
    
    
    
    
      private
        { Private-Deklarationen }
      public
        { Public-Deklarationen }
      end;
    
    var
      Form1: TForm1;
      PXDFile:String;
      WAVFile:String;
      TestText:String;
      outtext:String;
      ergebnis:integer;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button2Click(Sender: TObject);
    var
    Handle: THandle;
    PXD2WAV: PXD2WAV_Func;
    PInit: PInit_Func;
    
    begin
    Handle := LoadLibrary('pxd2wav.dll');
    try
    
    PXDFile:='1test.pxd';
    WAVFile:='test.wav';
    TestText:='kein plan was hier rein soll';
    
    PInit := GetProcAddress(Handle, 'PInit');
    PInit(PXDFile);
    
    @PXD2WAV := GetProcAddress(Handle, 'W2P');
    ergebnis:=PXD2WAV(3, [PXDFile,TestText,WAVFile]);
    outtext :=inttostr(ergebnis);//IntTOString
    showmessage(outtext);
    
    finally
    FreeLibrary(Handle);
    
    {ShowMessage('WAV erstellt'); }
    Application.Terminate;
    end;
    end;
    
    
    end.
    durch Pinit gibts ne pause im programm, denke mal der initalisiert irgendwas.
    dann erstellt er ne 1kb große wav datei mit richtigem header und name.

    du hast geschrieben die stringtable sollte so aussehen:
    Code:
    char *stringTable[]
    {
            NULL,
            "some.wav",
            "some.pxd"
    }
    also denk ich mal in delphi:
    Code:
    ergebnis:=PXD2WAV(3, ['vermutlich ausgabe pinit',PXDFile,WAVFile]);
    eine ausgabe von pinit konnte ich noch nicht finden, da kommt 0 zurück.

    und speichern tut er die wav mit richtigem namen nur wenn ich das in der reihenfolge setze:
    Code:
    ergebnis:=PXD2WAV(3, [PXDFile,TestText,WAVFile]);
    also noch ein stück arbeit bis das geht, wobei ich derzeit nicht wirklich weiss was zu tun ist

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. NEWBIEZ - Deutsches Reversing Forum
    Von Codecave im Forum Good Sites & Services
    Antworten: 7
    Letzter Beitrag: 25.10.2009, 02:05
  2. Suche Forum mit Hauptthema Reversing/Patching
    Von gruena im Forum Board Lounge
    Antworten: 6
    Letzter Beitrag: 06.08.2009, 17:08
  3. [Reversing algorithms] Well known numbers.
    Von nait im Forum Reverse Engineering
    Antworten: 3
    Letzter Beitrag: 11.02.2008, 21:53
  4. Reversing: Secrets of Reverse Engineering
    Von Boardleitung im Forum Buch Tipp
    Antworten: 2
    Letzter Beitrag: 14.04.2006, 22:20
  5. Keygen oder Patch für Dance eJay 2
    Von barnedarke im Forum Reverse Engineering
    Antworten: 2
    Letzter Beitrag: 03.07.2002, 19:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •