Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Giúp mình hiểu đoạn code này...

  1. #1
    Ngày gia nhập
    03 2017
    Bài viết
    0

    Lightbulb Giúp mình hiểu đoạn code này...

    Trong này có bạn nào giỏi về ASM không? Có thể giúp mình hiểu đoạn ASM dưới hoặc chuyển nó thành C++ hoặc Pas hoặc Delphi được không?
    Mình xin hậu ta nếu bạn làm được.
    Vui lòng để lại email hoặc số đt để mình liên lạc nhé.
    Cảm ơn nhiều

    procedure TForm1.load_adressClick(Sender : TObject);
    begin
    (*
    0041F1D8 55 push ebp
    0041F1D9 8BEC mov ebp, esp
    0041F1DB 81C414FEFFFF add esp, $FFFFFE14
    0041F1E1 53 push ebx
    0041F1E2 56 push esi
    0041F1E3 57 push edi
    0041F1E4 33C9 xor ecx, ecx
    0041F1E6 898D14FEFFFF mov [ebp+$FFFFFE14], ecx
    0041F1EC 898D18FEFFFF mov [ebp+$FFFFFE18], ecx
    0041F1F2 898D1CFEFFFF mov [ebp+$FFFFFE1C], ecx
    0041F1F8 898D24FEFFFF mov [ebp+$FFFFFE24], ecx
    0041F1FE 898D20FEFFFF mov [ebp+$FFFFFE20], ecx
    0041F204 8945FC mov [ebp-$04], eax
    0041F207 33C0 xor eax, eax
    0041F209 55 push ebp

    * Possible String Reference to: 'éÌJùÿëè_^[‹å]Ã'
    |
    0041F20A 6827F64600 push $0041F627

    ***** TRY
    |
    0041F20F 64FF30 push dword ptr fs:[eax]
    0041F212 648920 mov fs:[eax], esp
    0041F215 8D9520FEFFFF lea edx, [ebp+$FFFFFE20]
    0041F21B 33C0 xor eax, eax

    * Reference to: System.ParamStr(Integer):String;
    |
    0041F21D E8A238F9FF call 00402AC4
    0041F222 8B8520FEFFFF mov eax, [ebp+$FFFFFE20]
    0041F228 8D9524FEFFFF lea edx, [ebp+$FFFFFE24]

    * Reference to: SysUtils.ExtractFileDir(AnsiString):AnsiString;
    |
    0041F22E E8019FF9FF call 00409134
    0041F233 8B9524FEFFFF mov edx, [ebp+$FFFFFE24]
    0041F239 B87C3C4700 mov eax, $00473C7C

    * Reference to: System.@LStrAsg(void;void;void;void);
    |
    0041F23E E80555F9FF call 00404748
    0041F243 8D851CFEFFFF lea eax, [ebp+$FFFFFE1C]

    * Possible String Reference to: '\ate.dat'
    |
    0041F249 B940F64600 mov ecx, $0041F640
    0041F24E 8B157C3C4700 mov edx, [$00473C7C]

    * Reference to: System.@LStrCat3;
    |
    0041F254 E8A757F9FF call 00404A00
    0041F259 8B951CFEFFFF mov edx, [ebp+$FFFFFE1C]
    0041F25F 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]

    * Reference to: System.@Assign(TTextRec;TTextRec;String):Integer;
    |
    0041F265 E8F23BF9FF call 00402E5C
    0041F26A 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]

    * Reference to: System.@ResetText(TTextRec;TTextRec):Integer;
    |
    0041F270 E87739F9FF call 00402BEC

    |
    0041F275 E88A36F9FF call 00402904
    0041F27A BE10270000 mov esi, $00002710
    0041F27F BB843C4700 mov ebx, $00473C84
    0041F284 8BD3 mov edx, ebx
    0041F286 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]

    * Reference to: System.@ReadLString(TTextRec;TTextRec;String;Strin g);
    |
    0041F28C E84F3FF9FF call 004031E0
    0041F291 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]

    * Reference to: System.@ReadLn(TTextRec;TTextRec);
    |
    0041F297 E8B03FF9FF call 0040324C

    |
    0041F29C E86336F9FF call 00402904
    0041F2A1 83C304 add ebx, +$04
    0041F2A4 4E dec esi
    0041F2A5 75DD jnz 0041F284
    0041F2A7 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]

    * Reference to: System.@Close(TTextRec;TTextRec):Integer;
    |
    0041F2AD E8723CF9FF call 00402F24

    |
    0041F2B2 E84D36F9FF call 00402904
    0041F2B7 C745F810270000 mov dword ptr [ebp-$08], $00002710
    0041F2BE BF843C4700 mov edi, $00473C84
    0041F2C3 C745F4E01B8600 mov dword ptr [ebp-$0C], $00861BE0
    0041F2CA BB01000000 mov ebx, $00000001
    0041F2CF 8B45F4 mov eax, [ebp-$0C]
    0041F2D2 8BF0 mov esi, eax
    0041F2D4 8D8518FEFFFF lea eax, [ebp+$FFFFFE18]
    0041F2DA 50 push eax
    0041F2DB 8B07 mov eax, [edi]
    0041F2DD B901000000 mov ecx, $00000001
    0041F2E2 8BD3 mov edx, ebx

    * Reference to: System.@LStrCopy;
    |
    0041F2E4 E82B59F9FF call 00404C14
    0041F2E9 8B8518FEFFFF mov eax, [ebp+$FFFFFE18]

    * Reference to: SysUtils.StrToInt(AnsiString):Integer;
    |
    0041F2EF E81C99F9FF call 00408C10
    0041F2F4 8906 mov [esi], eax
    0041F2F6 43 inc ebx
    0041F2F7 81C6449C0000 add esi, $00009C44
    0041F2FD 83FB65 cmp ebx, +$65
    0041F300 75D2 jnz 0041F2D4
    0041F302 8345F404 add dword ptr [ebp-$0C], +$04
    0041F306 83C704 add edi, +$04
    0041F309 FF4DF8 dec dword ptr [ebp-$08]
    0041F30C 75BC jnz 0041F2CA
    0041F30E 33C0 xor eax, eax

    * Reference to GlobalVar_00C32694
    |
    0041F310 A39426C300 mov dword ptr [$00C32694], eax
    0041F315 C745F80F270000 mov dword ptr [ebp-$08], $0000270F
    0041F31C BAE01B8600 mov edx, $00861BE0
    0041F321 BB64000000 mov ebx, $00000064
    0041F326 8BC2 mov eax, edx
    0041F328 8B08 mov ecx, [eax]
    0041F32A 010D9426C300 add [$00C32694], ecx
    0041F330 05449C0000 add eax, +$00009C44
    0041F335 4B dec ebx
    0041F336 75F0 jnz 0041F328
    0041F338 83C204 add edx, +$04
    0041F33B FF4DF8 dec dword ptr [ebp-$08]
    0041F33E 75E1 jnz 0041F321
    0041F340 BB60000000 mov ebx, $00000060
    0041F345 B81CB88600 mov eax, $0086B81C
    0041F34A 8B10 mov edx, [eax]
    0041F34C 01159426C300 add [$00C32694], edx
    0041F352 05449C0000 add eax, +$00009C44
    0041F357 4B dec ebx
    0041F358 75F0 jnz 0041F34A
    0041F35A A19426C300 mov eax, dword ptr [$00C32694]
    0041F35F B910270000 mov ecx, $00002710
    0041F364 99 cdq
    0041F365 F7F9 idiv ecx
    0041F367 89159026C300 mov [$00C32690], edx
    0041F36D 8D8514FEFFFF lea eax, [ebp+$FFFFFE14]
    0041F373 50 push eax
    0041F374 B904000000 mov ecx, $00000004
    0041F379 BA61000000 mov edx, $00000061
    0041F37E A1C0D84700 mov eax, dword ptr [$0047D8C0]

    * Reference to: System.@LStrCopy;
    |
    0041F383 E88C58F9FF call 00404C14
    0041F388 8B8514FEFFFF mov eax, [ebp+$FFFFFE14]

    * Reference to: SysUtils.StrToInt(AnsiString):Integer;
    |
    0041F38E E87D98F9FF call 00408C10

    * Reference to GlobalVar_00C32698
    |
    0041F393 A39826C300 mov dword ptr [$00C32698], eax
    0041F398 A19026C300 mov eax, dword ptr [$00C32690]
    0041F39D 3B059826C300 cmp eax, [$00C32698]
    0041F3A3 0F8560020000 jnz 0041F609
    0041F3A9 A1EC368600 mov eax, dword ptr [$008636EC]

    * Reference to GlobalVar_00C32670
    |
    0041F3AE A37026C300 mov dword ptr [$00C32670], eax
    0041F3B3 A184E08900 mov eax, dword ptr [$0089E084]

    * Reference to GlobalVar_00C32674
    |
    0041F3B8 A37426C300 mov dword ptr [$00C32674], eax
    0041F3BD A1746F8700 mov eax, dword ptr [$00876F74]

    * Reference to GlobalVar_00C32678
    |
    0041F3C2 A37826C300 mov dword ptr [$00C32678], eax
    0041F3C7 A130D38600 mov eax, dword ptr [$0086D330]

    * Reference to GlobalVar_00C3267C
    |
    0041F3CC A37C26C300 mov dword ptr [$00C3267C], eax
    0041F3D1 69057026C300E8030000 imul eax, [$00C32670], $000003E8
    0041F3DB 6B157426C30064 imul edx, [$00C32674], $64
    0041F3E2 03C2 add eax, edx
    0041F3E4 8B157826C300 mov edx, [$00C32678]
    0041F3EA 03D2 add edx, edx
    0041F3EC 8D1492 lea edx, [edx+edx*4]
    0041F3EF 03C2 add eax, edx
    0041F3F1 03057C26C300 add eax, [$00C3267C]

    * Reference to GlobalVar_00C3266C
    |
    0041F3F7 A36C26C300 mov dword ptr [$00C3266C], eax
    0041F3FC 813D6C26C300E8030000 cmp dword ptr [$00C3266C], $000003E8
    0041F406 7D0A jnl 0041F412
    0041F408 C7056C26C300AD000000 mov dword ptr [$00C3266C], $000000AD
    0041F412 813D6C26C3000B270000 cmp dword ptr [$00C3266C], $0000270B
    0041F41C 7E0A jle 0041F428
    0041F41E C7056C26C300AD000000 mov dword ptr [$00C3266C], $000000AD
    0041F428 69057026C30011270000 imul eax, [$00C32670], $00002711
    0041F432 8D0485987F8500 lea eax, [$857F98+eax*4]
    0041F439 8B156C26C300 mov edx, [$00C3266C]
    0041F43F 8B8490B4B31100 mov eax, [eax+edx*4+$11B3B4]

    * Reference to GlobalVar_00C32680
    |
    0041F446 A38026C300 mov dword ptr [$00C32680], eax
    0041F44B 69057426C30011270000 imul eax, [$00C32674], $00002711
    0041F455 8D0485987F8500 lea eax, [$857F98+eax*4]
    0041F45C 8B156C26C300 mov edx, [$00C3266C]
    0041F462 8B8490B8B31100 mov eax, [eax+edx*4+$11B3B8]

    * Reference to GlobalVar_00C32684
    |
    0041F469 A38426C300 mov dword ptr [$00C32684], eax
    0041F46E 69057826C30011270000 imul eax, [$00C32678], $00002711
    0041F478 8D0485987F8500 lea eax, [$857F98+eax*4]
    0041F47F 8B156C26C300 mov edx, [$00C3266C]
    0041F485 8B8490BCB31100 mov eax, [eax+edx*4+$11B3BC]

    * Reference to GlobalVar_00C32688
    |
    0041F48C A38826C300 mov dword ptr [$00C32688], eax
    0041F491 69057C26C30011270000 imul eax, [$00C3267C], $00002711
    0041F49B 8D0485987F8500 lea eax, [$857F98+eax*4]
    0041F4A2 8B156C26C300 mov edx, [$00C3266C]
    0041F4A8 8B8490C0B31100 mov eax, [eax+edx*4+$11B3C0]

    * Reference to GlobalVar_00C3268C
    |
    0041F4AF A38C26C300 mov dword ptr [$00C3268C], eax
    0041F4B4 69158026C300E8030000 imul edx, [$00C32680], $000003E8
    0041F4BE 6B058426C30064 imul eax, [$00C32684], $64
    0041F4C5 03D0 add edx, eax
    0041F4C7 A18826C300 mov eax, dword ptr [$00C32688]
    0041F4CC 03C0 add eax, eax
    0041F4CE 8D0480 lea eax, [eax+eax*4]
    0041F4D1 03D0 add edx, eax
    0041F4D3 03158C26C300 add edx, [$00C3268C]
    0041F4D9 8B45FC mov eax, [ebp-$04]

    * Reference to control TForm1.get : TSpinEdit
    |
    0041F4DC 8B80BC030000 mov eax, [eax+$03BC]

    * Reference to : TTimerSpeedButton._PROC_00414A50()
    |
    0041F4E2 E86955FFFF call 00414A50
    0041F4E7 8B45FC mov eax, [ebp-$04]

    * Reference to control TForm1.get : TSpinEdit
    |
    0041F4EA 8B80BC030000 mov eax, [eax+$03BC]

    * Reference to : TTimerSpeedButton._PROC_004149C8()
    |
    0041F4F0 E8D354FFFF call 004149C8
    0041F4F5 8BD0 mov edx, eax
    0041F4F7 8B45FC mov eax, [ebp-$04]

    * Reference to control TForm1.Address : TSpinEdit
    |
    0041F4FA 8B8084030000 mov eax, [eax+$0384]

    * Reference to : TTimerSpeedButton._PROC_00414A50()
    |
    0041F500 E84B55FFFF call 00414A50
    0041F505 C745F801000000 mov dword ptr [ebp-$08], $00000001
    0041F50C BB5442C300 mov ebx, $00C34254
    0041F511 8B45F8 mov eax, [ebp-$08]
    0041F514 C1E002 shl eax, $02
    0041F517 05DC020000 add eax, +$000002DC
    0041F51C 8B1485409A8B00 mov edx, [$8B9A40+eax*4]
    0041F523 89158026C300 mov [$00C32680], edx
    0041F529 8B148584368C00 mov edx, [$8C3684+eax*4]
    0041F530 89158426C300 mov [$00C32684], edx
    0041F536 8B1485C8D28C00 mov edx, [$8CD2C8+eax*4]
    0041F53D 89158826C300 mov [$00C32688], edx
    0041F543 8B04850C6F8D00 mov eax, [$8D6F0C+eax*4]

    * Reference to GlobalVar_00C3268C
    |
    0041F54A A38C26C300 mov dword ptr [$00C3268C], eax
    0041F54F 69158026C300E8030000 imul edx, [$00C32680], $000003E8
    0041F559 6B058426C30064 imul eax, [$00C32684], $64
    0041F560 03D0 add edx, eax
    0041F562 A18826C300 mov eax, dword ptr [$00C32688]
    0041F567 03C0 add eax, eax
    0041F569 8D0480 lea eax, [eax+eax*4]
    0041F56C 03D0 add edx, eax
    0041F56E 03158C26C300 add edx, [$00C3268C]
    0041F574 8B03 mov eax, [ebx]

    * Reference to : TTimerSpeedButton._PROC_00414A50()
    |
    0041F576 E8D554FFFF call 00414A50
    0041F57B FF45F8 inc dword ptr [ebp-$08]
    0041F57E 83C304 add ebx, +$04
    0041F581 837DF814 cmp dword ptr [ebp-$08], +$14
    0041F585 758A jnz 0041F511
    0041F587 C745F801000000 mov dword ptr [ebp-$08], $00000001
    0041F58E BBD042C300 mov ebx, $00C342D0
    0041F593 8B45F8 mov eax, [ebp-$08]
    0041F596 C1E002 shl eax, $02
    0041F599 0558020000 add eax, +$00000258
    0041F59E 8B1485409A8B00 mov edx, [$8B9A40+eax*4]
    0041F5A5 89158026C300 mov [$00C32680], edx
    0041F5AB 8B148584368C00 mov edx, [$8C3684+eax*4]
    0041F5B2 89158426C300 mov [$00C32684], edx
    0041F5B8 8B1485C8D28C00 mov edx, [$8CD2C8+eax*4]
    0041F5BF 89158826C300 mov [$00C32688], edx
    0041F5C5 8B04850C6F8D00 mov eax, [$8D6F0C+eax*4]

    * Reference to GlobalVar_00C3268C
    |
    0041F5CC A38C26C300 mov dword ptr [$00C3268C], eax
    0041F5D1 69158026C300E8030000 imul edx, [$00C32680], $000003E8
    0041F5DB 6B058426C30064 imul eax, [$00C32684], $64
    0041F5E2 03D0 add edx, eax
    0041F5E4 A18826C300 mov eax, dword ptr [$00C32688]
    0041F5E9 03C0 add eax, eax
    0041F5EB 8D0480 lea eax, [eax+eax*4]
    0041F5EE 03D0 add edx, eax
    0041F5F0 03158C26C300 add edx, [$00C3268C]
    0041F5F6 8B03 mov eax, [ebx]

    * Reference to : TTimerSpeedButton._PROC_00414A50()
    |
    0041F5F8 E85354FFFF call 00414A50
    0041F5FD FF45F8 inc dword ptr [ebp-$08]
    0041F600 83C304 add ebx, +$04
    0041F603 837DF814 cmp dword ptr [ebp-$08], +$14
    0041F607 758A jnz 0041F593
    0041F609 33C0 xor eax, eax
    0041F60B 5A pop edx
    0041F60C 59 pop ecx
    0041F60D 59 pop ecx
    0041F60E 648910 mov fs:[eax], edx

    ****** FINALLY
    |

    * Possible String Reference to: '_^[‹å]Ã'
    |
    0041F611 682EF64600 push $0041F62E
    0041F616 8D8514FEFFFF lea eax, [ebp+$FFFFFE14]
    0041F61C BA05000000 mov edx, $00000005

    * Reference to: System.@LStrArrayClr(void;void;Integer);
    |
    0041F621 E8F250F9FF call 00404718
    0041F626 C3 ret


    * Reference to: System.@HandleFinally;
    |
    0041F627 E9CC4AF9FF jmp 004040F8
    0041F62C EBE8 jmp 0041F616

    ****** END
    |
    0041F62E 5F pop edi
    0041F62F 5E pop esi
    0041F630 5B pop ebx
    0041F631 8BE5 mov esp, ebp
    0041F633 5D pop ebp
    0041F634 C3 ret

    *)
    end;

  2. #2
    Ngày gia nhập
    09 2016
    Bài viết
    1,032

    chương trình này được viết bằng delphi hoặc c builder
    xem :
    https://www.embarcadero.com/products/cbuilder/starter

    nó còn dùng AnsiString - là phiên bản trước XE (tầm delphi 2006)

    Phọt mô xa 2017

  3. #3
    Ngày gia nhập
    03 2017
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    chương trình này được viết bằng delphi hoặc c builder
    xem :
    https://www.embarcadero.com/products/cbuilder/starter

    nó còn dùng AnsiString - là phiên bản trước XE (tầm delphi 2006)

    Phọt mô xa 2017
    Bạn có hiểu được nó không? giúp mình với

  4. #4
    Ngày gia nhập
    09 2016
    Bài viết
    1,032

    Giúp là sao ?
    Hậu trong hậu tạ có nghĩa gì ? Bạn muốn dùng theo nghĩa nào :
    Từ điển Hán Nôm

    Phọt mô xa 2017

  5. #5
    Ngày gia nhập
    03 2017
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Giúp là sao ?
    Hậu trong hậu tạ có nghĩa gì ? Bạn muốn dùng theo nghĩa nào :
    Từ điển Hán Nôm

    Phọt mô xa 2017
    Giúp mình có nghĩa là viết cho mình đoạn code bằng C hoặc C++ để đọc được file "\ate.dat" của
    Hậu tạ tức là gởi tiền cảm ơn bạn đã giúp mình. Mình sẽ chuyển khoản bạn 1 trieu cho đoạn code này nếu bạn đọc hiểu được nó.
    Hãy để lại số đt mình sẽ gọi cho bạn
    Thanks nhé

  6. #6
    Ngày gia nhập
    09 2016
    Bài viết
    1,032

    Mặc định Giúp mình hiểu đoạn code này...

    Lẽ nào chương trình ứng dụng chỉ có 1 form, form đó chỉ có 1 hàm ?

    Có nhiều cách để thực hiện, mang nó chạy debug cũng có thể lấy được file bạn cần ate.dat

    Ngồi mà lọc, mà dịch sang delphi
    ASM Code:
    1. procedure TForm1.load_adressClick(Sender : TObject);
    2. //begin
    3. asm
    4.     push ebp
    5.     mov ebp, esp
    6.     add esp, $FFFFFE14
    7.     push ebx
    8.     push esi
    9.     push edi
    10.     xor ecx, ecx
    11.     mov [ebp+$FFFFFE14], ecx
    12.     mov [ebp+$FFFFFE18], ecx
    13.     mov [ebp+$FFFFFE1C], ecx
    14.     mov [ebp+$FFFFFE24], ecx
    15.     mov [ebp+$FFFFFE20], ecx
    16.     mov [ebp-$04], eax
    17.     xor eax, eax
    18.     push ebp
    19.     //....
    20.     pop edi
    21.     pop esi
    22.     pop ebx
    23.     mov esp, ebp
    24.     pop ebp
    25.     ret
    26. end;
    không phải dễ nuốt trôi

    Nó có hàng đống biến, control, method khác.

    Bạn cứ share ứng dụng, báo giá, ai muốn làm họ sẽ báo cho bạn biết. Biết đâu có cách đọc asm tốt hơn cách bạn lấy ra ở đây

    Phọt mô xa 2017

  7. #7
    Ngày gia nhập
    03 2017
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi fms17 Xem bài viết
    Lẽ nào chương trình ứng dụng chỉ có 1 form, form đó chỉ có 1 hàm ?

    Có nhiều cách để thực hiện, mang nó chạy debug cũng có thể lấy được file bạn cần ate.dat

    Ngồi mà lọc, mà dịch sang delphi


    Phọt mô xa 2017
    Bạn nào làm để lại email mình sẽ gởi nguyên file cho, nhưng đoạn code trên là đoạn đọc file ate.dat, mấy đoạn kia là đoạn xử lý file này.
    Bạn cứ để lại email, mình chuyển nguyên file cho bạn

  8. #8
    Ngày gia nhập
    09 2016
    Bài viết
    1,032

    Bạn đếm thử xem đoạn code trên có mấy từ call - nó gọi method mấy lần ?

    Bạn có thể gửi mail vào:
    vn8hien62@yahoo.com

    Phọt mô xa 2017

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn