2016-11-15 10 views
-2

바이너리 파일의 실제 내용을 알고 싶습니다. Deplhi (FreePascal?) 기반 응용 프로그램에서 파일을 만들었습니다.파스칼 바이너리 파일의 실제 내용 읽기

:

  • 파일 이름
  • 나는 그 (FDane.bin 단어를 포함하는 디스 어셈블 된 코드의 일부)를 참조 응용 프로그램을 분해 한 후이 응용 프로그램

의 소스 코드가없는

  • FDane.bin입니다
    procedure TFrmDroga.ReadLinesFromFile(Sender : TObject); 
    begin 
    (* 
    005F0BB0 55      push ebp 
    005F0BB1 8BEC     mov  ebp, esp 
    005F0BB3 83C4E0     add  esp, -$20 
    005F0BB6 53      push ebx 
    005F0BB7 56      push esi 
    005F0BB8 57      push edi 
    005F0BB9 8945FC     mov  [ebp-$04], eax 
    005F0BBC 8D75EF     lea  esi, [ebp-$11] 
    005F0BBF 33C0     xor  eax, eax 
    005F0BC1 55      push ebp 
    005F0BC2 681A135F00    push $005F131A 
    005F0BC7 64FF30     push dword ptr fs:[eax] 
    005F0BCA 648920     mov  fs:[eax], esp 
    
    | 
    005F0BCD E8DAC4E1FF    call 0040D0AC 
    005F0BD2 DD1D6C936000   fstp qword ptr [$0060936C] 
    005F0BD8 9B      wait 
    005F0BD9 B201     mov  dl, $01 
    
    * Reference to class TMemoryStream 
    | 
    005F0BDB A144EB4100    mov  eax, dword ptr [$0041EB44] 
    
    | 
    005F0BE0 E84735E1FF    call 0040412C 
    005F0BE5 8945F8     mov  [ebp-$08], eax 
    005F0BE8 B201     mov  dl, $01 
    
    * Reference to class TMemoryStream 
    | 
    005F0BEA A144EB4100    mov  eax, dword ptr [$0041EB44] 
    
    | 
    005F0BEF E83835E1FF    call 0040412C 
    005F0BF4 8945F4     mov  [ebp-$0C], eax 
    
    * Possible String Reference to: 'FDane.bin' 
    | 
    005F0BF7 BA30135F00    mov  edx, $005F1330 
    005F0BFC 8B45F4     mov  eax, [ebp-$0C] 
    
    | 
    005F0BFF E8C834E3FF    call 004240CC 
    005F0C04 6A00     push $00 
    005F0C06 6A00     push $00 
    005F0C08 8B45F8     mov  eax, [ebp-$08] 
    
    | 
    005F0C0B E8EC2CE3FF    call 004238FC 
    005F0C10 6A00     push $00 
    005F0C12 6A00     push $00 
    005F0C14 8B45F4     mov  eax, [ebp-$0C] 
    
    | 
    005F0C17 E8E02CE3FF    call 004238FC 
    005F0C1C 8B45F4     mov  eax, [ebp-$0C] 
    005F0C1F 8B10     mov  edx, [eax] 
    005F0C21 FF12     call dword ptr [edx] 
    005F0C23 85C0     test eax, eax 
    005F0C25 7E3B     jle  005F0C62 
    005F0C27 8945E8     mov  [ebp-$18], eax 
    005F0C2A BB01000000    mov  ebx, $00000001 
    005F0C2F 8BD6     mov  edx, esi 
    005F0C31 B901000000    mov  ecx, $00000001 
    005F0C36 8B45F4     mov  eax, [ebp-$0C] 
    005F0C39 8B38     mov  edi, [eax] 
    
    * Possible reference to virtual method TMemoryStream.OFFS_0C 
    | 
    005F0C3B FF570C     call dword ptr [edi+$0C] 
    005F0C3E 8BC3     mov  eax, ebx 
    005F0C40 B9C8000000    mov  ecx, $000000C8 
    005F0C45 99      cdq 
    005F0C46 F7F9     idiv ecx 
    005F0C48 80C220     add  dl, $20 
    005F0C4B 3016     xor  [esi], dl 
    005F0C4D 8BD6     mov  edx, esi 
    005F0C4F B901000000    mov  ecx, $00000001 
    005F0C54 8B45F8     mov  eax, [ebp-$08] 
    005F0C57 8B38     mov  edi, [eax] 
    
    * Possible reference to virtual method TMemoryStream.OFFS_10 
    | 
    005F0C59 FF5710     call dword ptr [edi+$10] 
    005F0C5C 43      inc  ebx 
    005F0C5D FF4DE8     dec  dword ptr [ebp-$18] 
    005F0C60 75CD     jnz  005F0C2F 
    005F0C62 6A00     push $00 
    005F0C64 6A00     push $00 
    005F0C66 8B45F8     mov  eax, [ebp-$08] 
    
    | 
    005F0C69 E88E2CE3FF    call 004238FC 
    005F0C6E 8B45F4     mov  eax, [ebp-$0C] 
    
    | 
    005F0C71 E80634E3FF    call 0042407C 
    005F0C76 8B45FC     mov  eax, [ebp-$04] 
    
    * Reference to control TFrmDroga.CDSBrutto : TClientDataSet 
    | 
    005F0C79 8B8098040000   mov  eax, [eax+$0498] 
    005F0C7F 8B55F8     mov  edx, [ebp-$08] 
    
    | 
    005F0C82 E8A180F0FF    call 004F8D28 
    005F0C87 8B45FC     mov  eax, [ebp-$04] 
    
    * Reference to control TFrmDroga.CDSBrutto : TClientDataSet 
    | 
    005F0C8A 8B8098040000   mov  eax, [eax+$0498] 
    

    'strings FDane.bin | 이것에

    &'(1*+,*. 
    0120456 
    82s_f\UM%27 
    6GFFHIJKLB 
    >6)5?# 
    ,8-05_^^`abcdn* 
    srrtuvwxq 
    !"#$%hg,)g 
    ./0323446789:;<[email protected] 
    BL{~sm 
    nbfeVWXZZ[\_^_`abcd;& 
    hijklmno 
    2ytDDGDD7GMEN 
    Re,' 
    2342678?:;<=>? 
    EEFGHIJK 
    EPbdchh 
    klkj[\]V_`aecdefgh) 
    lnopqrstu 
    7ryNILAC2 
    s"!"#$%&' 
    7896;<[email protected] 
    KJKLMNOP 
    ^U`aheg 
    `jlo`abndefkhijklm 
    0}qstuvwxy 
    <w~H 
    &&'()*+,-./61 
    z89:*<<>[email protected] 
    doj[\]L_aaccdefghi$+ 
    mnopqrstu([email protected]@3C 
    !"#$%& 
    Zi + 
    678/::<8>[email protected] 
    /IIJKLMNO 
    YTffgdd 
    gokn_`aucee`ghijkl 
    prstuvwx9 
    ;v}MI 
    b{&%&'()*+ 
    ;<=%?AAHCDEFGH 
    ONOPQRST 
    RYlklac 
    \WTSdef{hhj`lmnopq 
    twxyz{|} 
    !"#$e 
    **+,-./0 
    @ABcDDFHHIJKLMn 
    QSTUVWXY 
    V^fPQ^^)YWWXYjklLnnparstuvw8 
    

    (200) 후 라인 데이터 변경 : 50 '-n 머리 (이 부분이다) 얻을

    MKEUNF/:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected] 
    5797; 
    ghijklmnopqrstuvwxyz{|}~ 
    !"#$%&7cFFNF 
    ]AAF]V89:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][G 
    xyz{|}~ 
    !"#$%&'()*;gBBJZT 
    a[FO]KRS^<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_x1)3D, 
    _R  T 
    Vyz{|}~ 
    !"#$%&'()*+,-. 
    cTDDBXMHW\ 
    t/-')d 
    )-)3.$;,n 
    r)t:x8vYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcU5-7H: 
    !"#$%&'()*+,-./012-da} 
    qW\I]NJM5*666$f 
    4,!9:RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefgs, 
    Z(5856 
    !"#$%&'()*+,-./:snx 
    EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    iyi|v{123456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijkg&9$P93?1846xyz{|}~ 
    !"#$%&'()*+,-./:!f\U 
    !%;c 
    ?)3'>/k 
    VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    ibg#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnoj+"S2'7#+:2:?5^ 
    !"#$%&'()*+,-./:;<=>2 
         MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrsS& 
    !"#$%&'()*+,-./:;<=>[email protected]_ 
    *6&$'#.l 
    +#17;!!u 
    `abcdefghijklmnopqrstuvwxyz{|}~ 
    OVLJ 
    aikfh 
    456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwX# 
    !"#$%&'()*+,-./:;<=>[email protected] 
    -)7o 
    97>=6,9=y  
    55:D6H&Fijklmnopqrstuvwxyz{|}~ 
    HDOJG_HB 
    yegenk 
    456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{N6 
    !"#$%&'()*+,-./:;<=>[email protected] 
    UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    idolslr'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    !"#$%&'()*+,-./:;<=>[email protected] 
    YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 
    

    그것은 것은 일부 문자 데이터가있는 것처럼 (나는 127 ASCII를 참조 보인다 문자). 필자는 델파이 프로그래머가 아닌 파스칼입니다. 나는 파이썬과 C와 자바를 알고있다. 디코딩이 가능합니까?

  • +0

    이것은 "디코딩"5를 다시 2 + 3으로 바꾸는 것과 같습니다. – AmigoJack

    +0

    어쩌면 당신은 이것이 chars 또는 뭔가의 흐름처럼 보일 것이라고 말할 수 있습니다. 그것은 http://wiki.freepascal.org/File과 같은 사용법에서 유용 할 것입니다. – dymbol

    +2

    그 파일은 무엇이든 될 수 있습니다. 파일을 출력하고 요청하는 응용 프로그램 작성자에게 문의하십시오. 이것은 * 임의의 바이너리 파일 *의 내용을 추측하지는 않습니다. –

    답변

    0

    몇 가지 팁 :

    디스 어셈블리는 TMemoryStream이 표시 한 다음 호출있는 TClientDataset. 이것은 델파이와 델파이/bcb를 혼자서 만듭니다 (FreePascal의 동등 물은 TBufDataset입니다).

    TClientdataset .cds는 데이터 세트의 일부 독점 스트리밍 형식입니다. 델파이 버전에 따라 다를 수 있습니다. 나중에 (D2010 +? rad studio only?) 버전에는 검사 할 수있는 TClientDataset 소스가 있습니다.

    ".cds tclientdataset 파일 형식"을 검색하면 무언가를 얻을 수 있으며 암호화를 지원하지 않기를 바랍니다.