Помогите начинающему кодокопателю UNICODE

Тема в разделе "WASM.RESEARCH", создана пользователем artkar, 17 авг 2005.

  1. artkar

    artkar New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2005
    Сообщения:
    400
    Адрес:
    Russia
    Помогите, рассматриваю строку в дисассемблере(IDA 4.0.4.362) и дебаггере она там представлена в виде каких - то "левых" символов совсем не таких как в исходной строке (я изучаю свою прогу). Строка в исходнике на С++ объявлена как LPTSTR.

    Помогите увидеть её правильной =)



    P.S.Если вопрос глупый, посьба не прикалываться, а помочь.

    Плиз
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Возможно такая древняя ида и не понимает юникод, но все более-меннее свежие детектят автоматом. "Встань" на свои "левые" символы и нажми 'u' (undefine) - получишь байтовое представление строки.


    Код (Text):
    1. .data:00403000                 ;org 403000h
    2. .data:00403000                 db  61h ; a
    3. .data:00403001                 db  6Eh ; n
    4. .data:00403002                 db  73h ; s
    5. .data:00403003                 db  69h ; i
    6. .data:00403004                 db    0
    7. .data:00403005                 db  75h ; u
    8. .data:00403006                 db    0
    9. .data:00403007                 db  6Eh ; n
    10. .data:00403008                 db    0
    11. .data:00403009                 db  69h ; i
    12. .data:0040300A                 db    0
    13. .data:0040300B                 db  63h ; c
    14. .data:0040300C                 db    0
    15. .data:0040300D                 db  6Fh ; o
    16. .data:0040300E                 db    0
    17. .data:0040300F                 db  64h ; d
    18. .data:00403010                 db    0
    19. .data:00403011                 db  65h ; e
    20. .data:00403012                 db    0
    21. .data:00403013                 db    0
    22. .data:00403014                 db    0
    23. .data:00403015                 align 200h
    24. .data:00403015 _data           ends


    "Встань" в начало строки. Если строка ansi, жми 'a' или Edit -> Strings -> ASCII. Если строка UNICODE, жми Alt+A и выбирай Unicode или Edit -> Strings -> Unicode. Должно получиться такое:


    Код (Text):
    1. .data:00403000                 ;org 403000h
    2. .data:00403000 aAnsi           db 'ansi',0
    3. .data:00403005 aUnicode:
    4. .data:00403005                 unicode 0, <unicode>,0
    5. .data:00403015                 align 200h
    6. .data:00403015 _data           ends
     
  3. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    по моему имеется в виду перекодировка нелатинских символов



    если это однобайтовый charset, то покопайся в idagui.cfg

    там есть таблицы перкодировки



    правда мой опыт показыает , что легче плюнуть и искать строки в hiew а потом просто назвать строку как - то осмысленно
     
  4. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Если кирилица, то был плагин, кажется от redplait, но я никогда не пользовался.
     
  5. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    если
    то надо юзать cyr.plw
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
  7. artkar

    artkar New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2005
    Сообщения:
    400
    Адрес:
    Russia
    Спасибо всем за ответы, сейчас начну юзать её как вы научили. Строка действительно кирилица, а вот заменить на другую я её никак не могу.

    Ещё раз спаибо за совет, всем своим знакомым порекомендую такой доброжелательный сайт