Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 302  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

sdlj8051

½ð³æ (ÖøÃûдÊÖ)

[½»Á÷] [תÌù]OD¸´ÖÆBUG·ÖÎöºÍÐÞÕý

ʹÓÃOD£¬´ÓÄÚ´æÇø¸´ÖÆÄÚ´æÊý¾ÝµÄʱºò£¬ÓÐʱºòÎÞ·¨½«ËùÓеÄÊý¾Ý¶¼¸´ÖƵ½¼ôÌù°å£¬Ó¦¸ÃÊÇodÒ»¸öbug£¬±¾ÎÄ˵ÒÔϸÃbugµÄ²úÉúÔ­ÒòºÍ½â¾ö·½·¨¡£×îºó¸ø³öÒ»¸ö´¦Àí²¹¶¡¡£
ÎÒÕâÀï´¦ÀíµÄÊÇ OllyDbg v1.0 2005.3 ÐÞÕý°æ¡£

ÓÃÒ»¸öOD1¸½¼ÓÁíÍâÒ»¸öOD2£¬ÔÚOD2ÀïÃæ¸´ÖÆÄÚ´æÇøÄÚÈÝ¡£

À¹½Ø¼ôÌù°å²Ù×÷º¯Êý£¬µ½£º

0044AE96         |.  53                push ebx                                      ; /hData
0044AE97         |.  6A 0D             push 0D                                       ; |Format = CF_UNICODETEXT
0044AE99         |.  E8 E4460600       call            ; \SetClipboardData

ÆäÖÐ push ebx´«ÈëÊý¾Ý»º³åÇøÖ¸Õë¡£
ÉÏÃæÓк¯Êý´¦Àí×îÖÕÊäÈë¼ôÌù°åµÄÊý¾Ý£º
0044AE6B         |.  52                push edx                                      ; /Arg3
0044AE6C         |.  50                push eax                                      ; |Arg2
0044AE6D         |.  8B45 0C           mov eax,dword ptr ss:[ebp+C]                  ; |
0044AE70         |.  50                push eax                                      ; |Arg1
0044AE71         |.  E8 A2B7FFFF       call OLLYDBG.00446618                         ; \OLLYDBG.00446618

ÉÏÃæµÄcall OLLYDBG.00446618½«Óû§ÐèÒª¸´ÖƵÄÊý¾Ýת»»³ÉUnicode±àÂ룬ȻºóÌîÈëÊä³ö»º³åÇø£¬ÕâÊǸöÑ­»·£¬²»ÄÜÒ»´ÎÐÔת»»Íê±Ï£¬ÐèÒªÒ»¿éÒ»¿é½øÐС£¹Ø¼üµØ·½ÈçÏ£º
½«¸´ÖƵÄÊý¾Ýת»»ÎªUNICODE±àÂ룺

00446A1C         |> \68 00020000   ||push 200                                   ; /WideBufSize = 200 (512.)
00446A21         |.  8D95 78FAFFFF ||lea edx,dword ptr ss:[ebp-588]             ; |
00446A27         |.  52            ||push edx                                   ; |WideCharBuf
00446A28         |.  53            ||push ebx                                   ; |StringSize
00446A29         |.  8D8D 78FDFFFF ||lea ecx,dword ptr ss:[ebp-288]             ; |
00446A2F         |.  51            ||push ecx                                   ; |StringToMap
00446A30         |.  6A 01         ||push 1                                     ; |Options = MB_PRECOMPOSED
00446A32         |.  6A 00         ||push 0                                     ; |CodePage = CP_ACP
00446A34         |.  E8 1D870600   ||call    ; \MultiByteToWideChar

Íù»º³åÇøÌî³äת»»³öÀ´µÄUNICODEÊý¾Ý£º

00446CA7         |.  50            ||push eax                                   ; /Êý¾Ý³¤¶È
00446CA8         |.  52            ||push edx                                   ; |ԭʼÊý¾ÝµØÖ·
00446CA9         |.  8B4D D8       ||mov ecx,dword ptr ss:[ebp-28]              ; |
00446CAC         |.  03C9          ||add ecx,ecx                                ; |
00446CAE         |.  034D CC       ||add ecx,dword ptr ss:[ebp-34]              ; |
00446CB1         |.  51            ||push ecx                                   ; |»º³åÇøµØÖ·
00446CB2         |.  E8 79C80500   ||call OLLYDBG.004A3530                      ; \Ìî³äÊý¾Ý

ÌîдÿÐкóÃæµÄ»Ø³µ»»ÐзûºÅ£º
00446CFE         |.  66:C70441 0D0>|mov word ptr ds:[ecx+eax*2],0D              ;  Ìî³ä»»ÐзûºÅ
00446D04         |.  FF45 D8       |inc dword ptr ss:[ebp-28]
00446D07         |.  8B55 CC       |mov edx,dword ptr ss:[ebp-34]
00446D0A         |.  8B4D D8       |mov ecx,dword ptr ss:[ebp-28]
00446D0D         |.  66:C7044A 0A0>|mov word ptr ds:[edx+ecx*2],0A              ;  Ìîд»Ø³µ·ûºÅ

ÉÏÃæµÄ MultiByteToWideChar ÊǹؼüµØ·½¡£Õâ¸öº¯ÊýÓÐʱºòת»»³öÀ´µÄÊý¾ÝÖÐ»á´æÔÚÁ¬Ðø2¸ö×Ö½ÚµÄ00¡£

±ÈÈçÏÖÔÚÒª´ÓÄÚ´æÄ£¿é¸´ÖÆÒÔÏÂ2ÐÐÊý¾Ý£º

004029F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CC  ...............
00402A00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

ÒÔÉÏÊý¾Ýת»»³ÉµÄunicode±àÂëÈçÏ£º

005F2320   30 00 30 00 34 00 30 00 32 00 39 00 46 00 30 00  0.0.4.0.2.9.F.0.
005F2330   20 00 20 00 30 00 30 00 20 00 30 00 30 00 20 00   . .0.0. .0.0. .
005F2340   30 00 30 00 20 00 30 00 30 00 20 00 30 00 30 00  0.0. .0.0. .0.0.
005F2350   20 00 30 00 30 00 20 00 30 00 30 00 20 00 30 00   .0.0. .0.0. .0.
005F2360   30 00 20 00 30 00 30 00 20 00 30 00 30 00 20 00  0. .0.0. .0.0. .
005F2370   30 00 30 00 20 00 30 00 30 00 20 00 30 00 30 00  0.0. .0.0. .0.0.
005F2380   20 00 30 00 30 00 20 00 30 00 30 00 20 00 43 00   .0.0. .0.0. .C.
005F2390   43 00 20 00 20 00 2E 00 2E 00 2E 00 2E 00 2E 00  C. . ...........
005F23A0   2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00  ................
005F23B0   2E 00 2E 00 00 00 0D 00 0A 00 30 00 30 00 34 00  ..........0.0.4.
005F23C0   30 00 32 00 41 00 30 00 30 00 20 00 20 00 30 00  0.2.A.0.0. . .0.
005F23D0   30 00 20 00 30 00 30 00 20 00 30 00 30 00 20 00  0. .0.0. .0.0. .
005F23E0   30 00 30 00 20 00 30 00 30 00 20 00 30 00 30 00  0.0. .0.0. .0.0.
005F23F0   20 00 30 00 30 00 20 00 30 00 30 00 20 00 30 00   .0.0. .0.0. .0.
005F2400   30 00 20 00 30 00 30 00 20 00 30 00 30 00 20 00  0. .0.0. .0.0. .
005F2410   30 00 30 00 20 00 30 00 30 00 20 00 30 00 30 00  0.0. .0.0. .0.0.
005F2420   20 00 30 00 30 00 20 00 30 00 30 00 20 00 20 00   .0.0. .0.0. . .
005F2430   2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00  ................
005F2440   2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00 2E 00  ................
005F2450   0D 00 0A 00 0D 00 0A 00 00 00 00 00 00 00 00 00  ................

¿ÉÒÔ¿´µ½005F23B0ÄÇÐУº
005F23B0   2E 00 2E 00 00 00 0D 00 0A 00 30 00 30 00 34 00  ..........0.0.4.

Ç°ÃæµÄ 2E 00 2E 00 ÊǵÚÒ»Ðе¹ÊýµÚ2¸öºÍµ¹ÊýµÚ3¸öÊý¾Ý£¬Ò²¾ÍÊDZ»004029F0ÄÇÐÐ×îºóµÄ2¸öСÊýµã£¬¶ø2E 00ºóÃæµÄÁ¬Ðø2¸ö00¾ÍÊÇÒòΪҪ¸´ÖƵÄÊý¾ÝCC±»ODת»»³ÉµÄ×Ö·ûÎÞ·¨±»×ª»»³ÉUnicode¶øÁôÏÂÀ´µÄ£¬ÔÙÍùºó0D 00 0A 00 Êǻسµ»»ÐС£
¿´ÆðÀ´Óеã»ìÂÒ£¬Ö÷ÒªÊÇÎÒ±í´ï²»Ì«Çå³þ¡£
»»¾ä»°Ëµ£¬Òª¸´ÖƵÄÊý¾Ý£º
004029F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CC  ...............@
×ó±ßµÄÊý¾Ý±»ODÔÚÓÒ±ßÏÔʾ³ÉÏàÓ¦µÄASCIIÂ룬CC±»ÏÔʾ³ÉÒ»¸ö×Ö·û¶ø²»ÊÇСÊýµã£¬¼Ù¶¨ÊÇ @ £¬µ±È»Êµ¼ÊÉϲ»ÊÇ£¬Äã¿ÉÒÔÈ¥OD¿´Ò»Ï¡£È»ºó¸´ÖƵÄʱºò£¬ÄǸö@Ò²±»°üº¬Á˽øÈ¥£¬µ«ÊÇת»»unicodeÂëµÄʱºò±»×ª»»³ÉÁËÁ¬ÐøµÄ2¸ö00¡£

ÒòΪ¼ôÌù°å²Ù×÷Êý¾Ý½ö½ö¸ù¾ÝµÄ»º³åÇø¾ä±ú£¬ÊÇÊý¾ÝÖмä³öÏÖÁË2¸ö00£¬´Ó¶øµ¼ÖÂʹ00ºóÃæµÄÊý¾Ý±»ÊÓ¶ø²»¼û¡£
Óкܶà°ì·¨¿ÉÒÔ´¦ÀíÕâ¸öÎÊÌ⣬ÎÒÕâÀïÐÞÕýMultiByteToWideCharµÄÊä³öÊý¾Ý¡£


ÐÞÕýMultiByteToWideCharº¯Êý

¸Ãº¯Êý½«ÊäÈëµÄ×Ö·û´®×ª»»ÎªUnicode±àÂë¡£Èç¹ûÊäÈëµÄÊý¾ÝÖк¬ÓдóÓÚ0x80µÄ×Ö½Ú£¬¿ÉÄܻᵼÖÂÊä³öÊý¾ÝµÄ×îºó2¸ö×Ö½Ú¶¼Îª00£¬´Ó¶ø½Ø¶ÏÐèÒª¸´ÖƵÄÊý¾Ý¡£

·ÖÎö£º

    Ãû³Æ     RVA     OA        ³ß´çD   ¿Éд·ñ
   .text  000b0000  000af600  -2048      ·ñ
   .data  0010b000  00109e00  -253440      ¿É
    .tls  0010c000  000cd000  -3584      ¿É
  .rdata  0010d000  000cd200  -3584      ·ñ
  .idata  0010f000  000ce400   -512      ·ñ
  .edata  00111000  000d0200  -3072      ·ñ
   .rsrc  00145934  00103f34    212      ·ñ
  .reloc  00152000  00110200   -512      ·ñ
ÓÐЧʣÓà¿Õ¼ä(×Ö½ÚD)Ϊ: 212

Ñ¡¶¨  .rsrc ¶Î 00145954 ´¦
¼´£º
00545954   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00545964   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

º¯Êýµ÷ÓÃÈçÏÂ:

;ecx -> ÊäÈ뻺³åÇø
;edx -> Êä³ö»º³åÇø
;ebx -> Êý¾Ý³¤¶È

00446A1C         |> \68 00020000       ||push 200                                    ; /WideBufSize = 200 (512.)
00446A21         |.  8D95 78FAFFFF     ||lea edx,dword ptr ss:[ebp-588]              ; |
00446A27         |.  52                ||push edx                                    ; |WideCharBuf
00446A28         |.  53                ||push ebx                                    ; |StringSize
00446A29         |.  8D8D 78FDFFFF     ||lea ecx,dword ptr ss:[ebp-288]              ; |
00446A2F         |.  51                ||push ecx                                    ; |StringToMap
00446A30         |.  6A 01             ||push 1                                      ; |Options = MB_PRECOMPOSED
00446A32         |.  6A 00             ||push 0                                      ; |CodePage = CP_ACP
00446A34         |.  E8 1D870600       ||call     ; \MultiByteToWideChar
                                                                                     ;:00446A34 E81D870600      Call 004AF156
00446A39         |.  8BD8              ||mov ebx,eax

ÏÂÃæ½øÐÐÐÞÕý£º

00446A1C         |> \68 00020000       ||push 200
ÐÞ¸ÄΪ jmp 00545954

ÔÚ00545954´¦Ìí¼Ó´úÂ룺

    lea edx,dword ptr ss:[ebp-588]              ; |
    lea ecx,dword ptr ss:[ebp-288]              ; |
    push ecx                                    ;±£´æÊäÈ뻺³åÇøµØÖ·
    push edx                                    ;±£´æÊä³ö»º³åÇøµØÖ·

    push 200                                    ; /WideBufSize = 200 (512.)
    push edx                                    ; |WideCharBuf
    push ebx                                    ; |StringSize
    push ecx                                    ; |StringToMap
    push 1                                      ; |Options = MB_PRECOMPOSED
    push 0                                      ; |CodePage = CP_ACP
    call     ; \MultiByteToWideChar

    pop edx                                     ;Êä³ö»º³åÇø
    pop ecx                                     ;ÊäÈ뻺³åÇø
    mov ebx, eax                                ;»ñÈ¡Êä³ö»º³åÇø³¤¶È£¬ÕâÀï²ÉÓÃÉÏÃæAPIº¯Êý·µ»ØÖµ²»²ÉÓÃÔ­À´µÄÊäÈ볤¶È£¬ÒòΪÓÐʱºò²»Ò»Ñù

    add   ebx, ebx
    add   edx, ebx
    sub   edx, 2                                ;¶¨Î»µ½Êä³ö»º³åÇøµ¹ÊýµÚ2¸ö×Ö½Ú
    movzx ebx, word ptr [edx]
    cmp   ebx , 0
    je    @F
    jmp   00446A39                              ;·µ»Ø
@@:
    mov   byte ptr[edx], 01                     ;Èç¹û×îºóÊÇÁ¬Ðø2¸ö00×Ö½Ú£¬ÄÇôдÈë01£¬ÕýÈ·ÐÔ²»¹ÜÁË£¬Èç¹ûÔ¸ÒâÄã¿ÉÒÔ×Ô¼ºÐÞÕý £º£©
    jmp   00446A39


¹ØÓÚMultiByteToWideChar²úÉúÁ¬Ðø2¸ö×Ö½ÚµÄ00Çé¿ö£¬ÊÇÒòΪ¸Ãº¯Êý¼ÆËãÊý¾ÝµÄunicodeÂëÖ÷ÒªÊǸù¾Ý²é±í£¬Èç¹ûÊý¾ÝСÓÚ0x80£¬ÄÇô¾Í²»»á²úÉúÁ¬Ðø2¸ö×Ö½ÚµÄ00£¬Èç¹û´óÓÚ0x80£¬»áµ¼ÖÂÊý¾ÝÇ°ÒÆ£¬Ê¹µÃ×îºó2¸ö×Ö½ÚÊÇ00£¬Èç¹ûÔٴ󣨾ßÌå¶àÉÙûÑо¿£©£¬¾Í²»»áÓÐ00ÁË£¬²»¹ý²úÉúµÄÊý¾ÝÓ¦¸Ã²»¶Ô¡£ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔ¿´¿´Õâ¸öº¯Êý£¬²¢²»¸´ÔÓ¡£
°´µÀÀíÍøÉÏ»òÕßʲôµØ·½Ó¦¸ÃÓйØÓÚÕâ¸öÇé¿öµÄ½âÊÍ£¬ÄÄλÏþµÃ²»·Á¸øÎÒ˵ÒÔÏ¡£

ÐÞ¸ÄÍê±Ï£¬¶Ôͬһ¶ÎÄڴ棬²âÊÔÒÔÏ¡£

ÐÞ¸ÄǰµÄ¿ÉÒÔ¸´ÖÆ£º
00402230  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56  ...............V
00402240  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 66  ...............f
00402250  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78  ...............x
00402260  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88  ...............

Ð޸ĺóµÄ°æ±¾¿ÉÒÔ¸´ÖÆ£º
00402250  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56  ...............V
00402260  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 66  ...............f
00402270  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78  ...............x
00402280  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88  ...............
00402290  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 98  ...............
004022A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8  ...............
004022B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

ÎÒ²»Ì«¸Ò¸Äµ÷ÊÔÆ÷Ö®ÀàµÄ¶«Î÷£¬Å³öÁËÎÊÌâÓ°Ïì´ó¼Ò¹¤×÷£¬ËùÒÔÈç¹û·¢ÏÖÎÊÌâÇë¸øÎÒ˵ÒÔÏ£¬ÎҺøÄÕý¡£

¶àл£¡

[ Last edited by sdlj8051 on 2006-10-6 at 11:27 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁϹ¤³Ì281»¹Óе÷¼Á»ú»áÂð +32 xaw. 2026-04-11 33/1650 2026-04-13 15:21 by ÕÅzhihao
[¿¼ÑÐ] Çóµ÷¼Á +9 ³Ô¿Ú±ù¼¤Áè 2026-04-07 9/450 2026-04-13 08:46 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] 22408 352·ÖÇóµ÷¼Á +5 ŬÁ¦µÄÏÄÄ© 2026-04-09 5/250 2026-04-12 19:17 by wj165256
[¿¼ÑÐ] µçÆø×¨Ë¶320Çóµ÷¼Á +6 СÂé×Ó111 2026-04-10 6/300 2026-04-12 10:54 by lemon6009
[¿¼ÑÐ] ÇóÖúµ÷¼Á£¬¿çµ÷ +12 XÊ®¸¦´çY 2026-04-11 12/600 2026-04-12 10:20 by zhouyuwinner
[¿¼ÑÐ] µ÷¼Á +10 ÔÂ@163.com 2026-04-11 10/500 2026-04-12 09:14 by zhouyuwinner
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£ÖÝ´óѧ 22408 305·ÖÇóµ÷¼Á +5 °²Ð¡Âúzzz 2026-04-08 5/250 2026-04-12 00:41 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +18 MAXâê㯠2026-04-09 20/1000 2026-04-11 23:31 by zhen¡«
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +19 ¹þ¹þ¹þ^_^ 2026-04-08 20/1000 2026-04-11 20:43 by stoner78
[¿¼ÑÐ] ũҵ¹ÜÀí302·ÖÇóµ÷¼Á +3 xuening1 2026-04-10 3/150 2026-04-11 10:18 by zhq0425
[¿¼ÑÐ] 282£¬Çóµ÷¼Á +12 jggshjkkm 2026-04-09 14/700 2026-04-11 09:39 by Öí»á·É
[¿¼ÑÐ] 085402ͨÐŹ¤³Ìµ÷¼Á£¬ÓÐ4Ïîѧ¿Æ¾ºÈü¹ú½±£¨µçÈü¹ú¶þ£©£¬Ë¶Ê¿Ñо¿Éúµ÷¼Á×Ô¼öÐÅ¡£ +5 mÓÀo²»vÑÔoÆúm 2026-04-09 5/250 2026-04-11 09:33 by zhq0425
[¿¼ÑÐ] ÉúÎïѧ308Çóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +6 ÏàÐűػá¹ââÍòÕ 2026-04-10 6/300 2026-04-11 05:23 by zhuwenxu
[¿¼ÑÐ] 289 ·Ö105500ҩѧר˶Çóµ÷¼Á(ÕÒBÇøÑ§Ð£) +6 °×ÔÆ123456789 2026-04-09 8/400 2026-04-10 21:13 by zhouxiaoyu
[¿¼ÑÐ] 284Çóµ÷¼Á +9 ÈÃÎÒÉϰ¶°É°¢Î÷ 2026-04-09 11/550 2026-04-10 19:18 by ¾¸jing
[¿¼ÑÐ] 293µ÷¼Á +25 yj1221 2026-04-08 26/1300 2026-04-10 15:02 by ²ñС°×
[¿¼ÑÐ] ³õÊÔ·Ö332£¬Ò»Ö¾Ô¸±¨¿¼Î÷±±¹¤Òµ´óѧ£¬ +11 ¹ÊÈË?? 2026-04-09 11/550 2026-04-09 21:54 by JineShine
[¿¼ÑÐ] 278Çóµ÷¼Á +27 ·¶æÃÄÈ 2026-04-07 31/1550 2026-04-09 20:49 by zhouxiaoyu
[¿¼ÑÐ] Çóµ÷¼Á²ÄÁÏ¿ÆÑ§Ó빤³ÌÒ»Ö¾Ô¸985³õÊÔ365·Ö +5 ²Ä»¯Àî¿É 2026-04-08 5/250 2026-04-09 17:00 by Lilly_Li
[¿¼ÑÐ] ¿¼ÑÐÇóµ÷¼Á +4 ö©??? 2026-04-08 4/200 2026-04-08 21:44 by ÍÁľ˶ʿÕÐÉú
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û