Autor Téma: Mám DLL 32b. Potrebujem 64b, ale zdroj nemám  (Přečteno 885 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5279
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #30 kdy: 14-07-2020, 14:13:15 »
Ja nespomínam. Celý včerajšok a dnes som na tom pracoval, aby som nakoniec zistil dané.
Je v príspevku #19. Dokonca tam sú dve stiahnutia.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2914
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #31 kdy: 14-07-2020, 19:32:05 »
Je v príspevku #19. Dokonca tam sú dve stiahnutia.
Zkousel jsem to prohnat IDR a jeho podpora bohuzel konci u XE4, pro XE7 neumi spravne vyresit crossreference do rady standardnich Delphi unit. Ono i kdyby je vsechny vyresil, tak by byla pakarna rekonstruovat jenom ty tvoje funkce alespon do urovne, ze by ti to pripomelo, jak jsi to pred tim naprgal.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5279
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #32 kdy: 14-07-2020, 20:10:01 »
Ďakujem za snahu.
Hm, pozrel som sa na dátum poslednej úpravy. Našiel som súbory o 6 rokov staršie (16.10.2014). Tak ho tu prikladám. Neviem akú verziu kompilátora oznámi. Robil som to v D7. Ale vôbec netuším či som to potom upravoval.
Moje pokusy, pri rôznych dll, ukazujú stále rovnaký výsledok.
« Poslední změna: 14-07-2020, 20:29:53 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2914
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #33 kdy: 15-07-2020, 09:27:15 »
Hm, pozrel som sa na dátum poslednej úpravy. Našiel som súbory o 6 rokov staršie (16.10.2014).
Vysledek v IDR je na prvni pohled stejny: hafo xrefs do Delphi unit to neumi vyresit. PE Explorer o tom rika XE2-XE6. Urcite to bude uz unicodifikovana verze Delphi tj. D2009+

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5279
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #34 kdy: 15-07-2020, 12:25:29 »
Ja som tam dokázal prečítať dve veci:
  • Textové reťazce. V mojom prípade tabuľky. Tie mám
  • Názvy iba zverejnených funkcií. Tie samozrejme poznám
Trochu málo.Ak sa rozhodnem na tom zapracovať, tak si urobím analýzu volania funkcií z dll a podľa toho si urobím komplet nové riešenie.
Tým túto tému považujem za uzatvorenú.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2914
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #35 kdy: 16-07-2020, 20:09:48 »
Dokázal som mu podhodiť správny bin súbor. Všetko mi zobrazuje v assembleri. Source Code je prázdne.
Jeste se k tomu jednou vratim: do Source Code ti IDR neco prida po stisknuti tlacitka source code za predpokladu, ze ho umi vytvorit tj. ze jsi zeditoval prototypy (singatury) funkci aj. Jinak tam strci jen nejaky paskvil. Proto je to I = Interactive

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5279
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #36 kdy: 16-07-2020, 21:03:06 »
Citace
ze jsi zeditoval prototypy (singatury) funkci aj.
Samozrejme, že
  • som nič needitoval
  • a v podstate neviem o čom píšeš :)
Ja som tu záložku Source Code mal vždy prázdnu.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2914
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
« Odpověď #37 kdy: 17-07-2020, 09:06:27 »
       
    • som nič needitoval
    • a v podstate neviem o čom píšeš :)
    Ja som tu záložku Source Code mal vždy prázdnu.
    No jasne, kdyz jsi nic needitoval a nic jsi tam nevygeneroval. Ten IDR vypada dost nehotove, ale princip interaktivni prace je, ze ctes disassemblovany kod a snazis se mu porozumet. Cemu rozumis, tak si postupne pojmenovavas - to je tady hooodne omezene. Ale napr. 
    1. Vyberes si unit Pobes
    2. Vyperes si subroutinu napr. sub_00445E78, pravym mysakem das Edit Prototype, v dialogu znovu Edit a definujes signaturu te subroutiny (musis vedet, co chce za argumenty a co vraci), napr.
    [/list]
    Kód: Delphi [Vybrat]
    1. MyFunction1(
    2. AX:double
    3. ):integer;
    a das Apply+OK
    3. v CodeVieweru stisknes tlacitko Src a to vygeneruje zdrojovy kod v Pascalu, tj. neco takoveho:
    Kód: Delphi [Vybrat]
    1. function MyFunction1(AX:double):integer;
    2. var
    3.   lvar_1:byte;
    4. begin//0
    5.   //00445E78
    6.   //push ECX
    7.   if (0,3 >= AX) then
    8.   begin//1
    9.     //00445E8B
    10.     lvar_1 := 0;
    11.     Exit;
    12.   end;//1
    13.   if (0,4 > AX) then
    14.   begin//1
    15.     //00445EA3
    16.     lvar_1 := 1;
    17.     Exit;
    18.   end;//1
    19.   if (AX < 0,5) then
    20.   begin//1
    21.     //00445EBB
    22.     lvar_1 := 2;
    23.     Exit;
    24.   end;//1
    25.   if (0,6 > AX) then
    26.   begin//1
    27.     //00445ED3
    28.     lvar_1 := 3;
    29.     Exit;
    30.   end;//1
    31.   if (0,7 > AX) then
    32.   begin//1
    33.     //00445EEB
    34.     lvar_1 := 4;
    35.     Exit;
    36.   end;//1
    37.   if (0,8 > AX) then
    38.   begin//1
    39.     //00445F00
    40.     lvar_1 := 5;
    41.     Exit;
    42.   end;//1
    43.   if (0,9 > AX) then
    44.   begin//1
    45.     //00445F15
    46.     lvar_1 := 6;
    47.     Exit;
    48.   end;//1
    49.   if (AX < 1) then
    50.   begin//1
    51.     //00445F2A
    52.     lvar_1 := 7;
    53.     Exit;
    54.   end;//1
    55.   if (1,1 > AX) then
    56.   begin//1
    57.     //00445F3F
    58.     lvar_1 := 8;
    59.     Exit;
    60.   end;//1
    61.   if (1,2 > AX) then
    62.   begin//1
    63.     //00445F54
    64.     lvar_1 := 9;
    65.     Exit;
    66.   end;//1
    67.   lvar_1 := 10;
    68.   EAX := lvar_1;
    69. end;//0
    Kdyz to nemas vsechno spravne definovane, tak ten pokus vygenerovat SRC bud oznami chybu nebo suse skonci na vyjimku. V SrcCode je pak nejaky nehotovy kus buhvi ceho.
    Jak je videt, i ten vygenerovany kod neni dobre, protoze tam zrejme bylo if - else if - else if - , coz preklada pomoci exit, ale vysledek nema v Result, ale v lvar_1, takze jak jsem psal jenom jako pomocne voditko pri vzpominani na ty funkce.
    4. V SourceCode muzes jeste definovat typ lokalni promenne, ale jestli jsem neco neprehlid, tak to je vsechno.
    5. Obsah okna SourceCode odpovida zhruba subrutine, se kterou pracujes, takze dalsi stisk tlacitka Src obsah prepise => je treba si vygenerovany kod pres schranku prekopirovat nekam do Delphi projektu.
    6. Kdyz definujes spravne signatury (prototypy) zelenych funkci ve tvych unit, tak by nakonec mohl jit vygenerovat i SourceCode pro ty exportovane funkce, co jsi sem posilal.

    Ale pracna onanie to bude bud jak bud, i kdybys byl schopen cist a rozumet tomu disassemblovanemu kodu.





    « Poslední změna: 17-07-2020, 09:15:29 od pf1957 »

    Offline Stanislav Hruška

    • Padawan
    • ******
    • Příspěvků: 5279
    • Karma: 41
      • Verze Delphi: W10 + Delphi 10.4 professional
    Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
    « Odpověď #38 kdy: 17-07-2020, 09:33:35 »
    Skúsim to. Tých funkcií nie je tak veľa 35(?) So známymi parametrami 24. Viď #24. A aj niečo také mi pomôže.
    Ďakujem.
    W10 64b, Delphi 10.4, FireBird 3.05
    Expert na kladenie nejasne formulovaných otázok.

    Offline pf1957

    • Padawan
    • ******
    • Příspěvků: 2914
    • Karma: 135
      • Verze Delphi: D2007, XE3, DX10
    Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
    « Odpověď #39 kdy: 17-07-2020, 10:02:39 »
    Skúsim to. Tých funkcií nie je tak veľa 35(?) So známymi parametrami 24. Viď #24. A aj niečo také mi pomôže.
    Nooo, nejdriv budes muset vyresit ty funkce, kde to zname neni, coz jsou nejake tvoje pomocne funkce. Jednu takovou jsem posilal v tom predchozim prispevku. Pak mozna pujdou vygenerovat ty exportovane (zname).

    Offline Stanislav Hruška

    • Padawan
    • ******
    • Příspěvků: 5279
    • Karma: 41
      • Verze Delphi: W10 + Delphi 10.4 professional
    Re:Mám DLL 32b. Potrebujem 64b, ale zdroj nemám
    « Odpověď #40 kdy: 17-07-2020, 10:03:43 »
    Už som to zistil :(
    W10 64b, Delphi 10.4, FireBird 3.05
    Expert na kladenie nejasne formulovaných otázok.