eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: sim_19, tihiy_grom (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Как найти в ексешнике строку на кириллице в юникоде?
Посл.ответ Сообщение

Ранг: 2.8 (гость)
Статус: Участник

Создано: 17 марта 2014 20:13 · Поправил: VBA New!
Цитата · Личное сообщение · #1

Помогите, пожалуйста, разобраться.

Вот я сейчас написал сам для себя небольшую экспериментальную прогу на VB. Прога, разумеется, очень простая. Просто кнопка на форме. Когда щелкаем по кнопке, выскакивает MessageBox с текстом "Привет!".

Вот исходник:

Code:
  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "Form1"
  4.    ClientHeight    =   3195
  5.    ClientLeft      =   60
  6.    ClientTop       =   345
  7.    ClientWidth     =   4680
  8.    LinkTopic       =   "Form1"
  9.    ScaleHeight     =   3195
  10.    ScaleWidth      =   4680
  11.    StartUpPosition =   3  'Windows Default
  12.    Begin VB.CommandButton Command1 
  13.       Caption         =   "Command1"
  14.       Height          =   1575
  15.       Left            =   600
  16.       TabIndex        =   0
  17.       Top             =   480
  18.       Width           =   1935
  19.    End
  20. End
  21. Attribute VB_Name = "Form1"
  22. Attribute VB_GlobalNameSpace = False
  23. Attribute VB_Creatable = False
  24. Attribute VB_PredeclaredId = True
  25. Attribute VB_Exposed = False
  26. Option Explicit
  27.  
  28. Private Sub Command1_Click()
  29.     MsgBox "Привет!"
  30. End Sub


Насколько я знаю, VB компиллирует строки в формате Юникод. Но в любом случае, должен быть какой-то инструмент для того, чтобы отыскать этот текст в файле. Разумеется, мне эта программа не нужна сама по себе, меня интересует способ нахождения текстов на кириллице в юникоде с целью крэкинга чужих программ. Но как же я буду искать такие тексты в чужих прогах, если даже в своей собственной отыскать не могу?! Пробовал найти с помощью OllyDbg, не смог. И даже когда на MessageBox повесил брекпойнт, все равно не смог понять, что именно он передает в эту фунцию в качестве параметров.



Вот, например, в исследуемой проге при проверке серийника выскочит сообщение на русском "Вы ввели неправильный номер". Если на английском будет сообщение, тогда все понятно, ищется легко, конечно, если нет дополнительных искусственных препятствий. А вот когда на русском сообщение, как его искать?


P.S. Непонятно... Прикреплял к посту файл Project1.rar, а прикрепился какой-то 0d06_17.03.2014_EXELAB.rU.tgz, который даже я сам не смог открыть в Тотал Коммандере. Это какой-то сверхкомпактный архив автоматически создается, так что ли?

{ Атач доступен только для участников форума } - Project1.rar


Ранг: 523.8 (!)
Статус: Участник
_Вечный_Студент_

Создано: 17 марта 2014 20:30 New!
Цитата · Личное сообщение · #2

041f 0440 0438 0432 0435 0442 - Привет

| Сообщение посчитали полезным: VBA


Ранг: 379.7 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 17 марта 2014 20:50 New!
Цитата · Личное сообщение · #3

Есть плагин (говорят тут, аналогично http://exelab.ru/f/index.php?action=vthread&forum=5&topic=17556). Вроде даже сам видел в F0FF Olly (не уверен на 100%).

Ранг: 2.8 (гость)
Статус: Участник

Создано: 17 марта 2014 21:59 · Поправил: VBA New!
Цитата · Личное сообщение · #4

plutos пишет:
041f 0440 0438 0432 0435 0442 - Привет


plutos , намек понял
Одним словом, ищем не string, а паттерн 1f0440043804320435044204.




ELF_7719116 пишет:
Есть плагин (говорят тут, аналогично http://exelab.ru/f/index.php?action=vthread&forum=5&topic=17556). Вроде даже сам видел в F0FF Olly (не уверен на 100%).


Исправно прочитал ту тему (по ссылке) с самого начала до самого конца, но так и не понял, где можно взять этот чудесный плагин. Что такое "F0FF Olly" мне, честно говоря, не понятно.

Ранг: 617.3 (!)
Статус: Участник

Создано: 17 марта 2014 22:17 New!
Цитата · Личное сообщение · #5

наверно имелся ввиду плагин Ultra String Reference.
"F0FF Olly" одна из мильёна сборок олли

| Сообщение посчитали полезным: TLN


Ранг: 2.8 (гость)
Статус: Участник

Создано: 17 марта 2014 22:51 New!
Цитата · Личное сообщение · #6

Vovan666 пишет:
наверно имелся ввиду плагин Ultra String Reference."F0FF Olly" одна из мильёна сборок олли


Понял. Спасибо за разъяснение.

Попробовал установить. Версия Олле 1.10. Какая сборка, хрен ее знает



Результат неутешительный



Одним словом, самый надежный способ - поиск по паттернам, как посоветовал plutos.

Ранг: 509.2 (!)
Статус: Модератор

Создано: 17 марта 2014 23:02 New!
Цитата · Личное сообщение · #7

Hiew все ище
http://prntscr.com/31ovxy

| Сообщение посчитали полезным: VBA


Ранг: 2.8 (гость)
Статус: Участник

Создано: 17 марта 2014 23:23 · Поправил: VBA New!
Цитата · Личное сообщение · #8

sendersu пишет:
Hiew все ище
http://prntscr.com/31ovxy


Ну ты прям телепатишь!
Я вот тоже сижу тут и вспоминаю, что когда-то давным-давно (точнее, лет 10 тому назад) я уже собирался серьезно заняться крэкингом (да так и не собрался ), и вот тогда открыл для себя замечательный способ "расправы" с кириллическим юникодом. А именно, ищем с помощью сусликовского хиева строку, которая нам нужна, потом там же прям на месте патчим ее каким-нибудь английским текстом, а уже потом в софтайсе или в ольке ищем этот самый английский текст.

А сейчас вот тоже попытался найти в хиеве, но не смог. Нет там такой опции. Это HIEW 8.15_W32.



Или может быть это только в ранних версиях хиева было, а потом он по каким-то причинам эту опцию убрал? У тебя какая версия?

А, всё, нашел, вспомнил, как это делается!



Ранг: 263.1 (наставник)
Статус: Участник
RBC

Создано: 17 марта 2014 23:31 · Поправил: Kindly New!
Цитата · Личное сообщение · #9

VBA, FLEXHEX рулит.


Простенький HxD находит, но в силу своей простоты не отображает дополнительную кодировку. WinHEX в обломе (хотя там несколько Unicode кодировок можно выставить, но по дефолту не находит точно).

| Сообщение посчитали полезным: unknownproject


Ранг: 2.8 (гость)
Статус: Участник

Создано: 17 марта 2014 23:44 · Поправил: VBA New!
Цитата · Личное сообщение · #10

Kindly, спасибо за подсказку, но мне, наверно, уже будет пока достаточно этих двух вариантов:
1. поиск по паттернам,
2. патч в хиеве и поиск своей же собственной латинской строки в ольке.

Ранг: 2.8 (гость)
Статус: Участник

Создано: 18 марта 2014 00:47 · Поправил: VBA New!
Цитата · Личное сообщение · #11

Если кому интересно, сейчас обнаружил способ, как сразу в нескольких файлах искать русский юникод.

Значит так,

1. Запускаем Тотал Коммандер, Инструменты > Поиск файлов...
Место поиска: та папка, в которой будем просматривать файлы.
Отмечаем чекбоксы "С текстом" и "UTF-16".
Вписываем текст, который будем искать.
Жмем "Начать поиск".




2. Выделяем по очереди каждый найденный файл и жмем "Просмотр".





3. Видим что-то такое.



4. Выбираем в меню Вид > UTF16.



5. Правка > Поиск... Вводим искомый текст.



Этот файл маленький, поэтому искомый текст сразу бросается в глаза безо всякого поиска Но если файл большой, тогда без поиска будет сложновато.

Ну а дальше искомый текст благополучно находится, вот только пропатчить прямо здесь же, увы, не получится.



Короче говоря, таким образом определяем, в каких файлах встречается нужный нам текст, запоминаем имена, а потом поочередно открываем их в хиеве и безжалостно патчим!

| Сообщение посчитали полезным: zds


Ранг: 85.5 (постоянный)
Статус: Участник

Создано: 18 марта 2014 01:04 · Поправил: LinXP New!
Цитата · Личное сообщение · #12





--> Link <--

| Сообщение посчитали полезным: zds, bizdon, VBA


Ранг: 2.8 (гость)
Статус: Участник

Создано: 18 марта 2014 01:41 · Поправил: VBA New!
Цитата · Личное сообщение · #13

LinXP, хорошие проги, полезные. Буду их иметь в виду для работы с юникодом.

Hex Workshop я давно уже видел среди прочих шестнадцатеричных редакторов, выложенных на сайте, но их там так много, что глаза разбегаются. Ну раз ты его рекомендуешь для работы с русским юникодом, то сейчас его скачаю (http://exelab.ru/download.php?action=get&n=ODc1) и буду использовать. Все-таки работать с ним наверняка удобнее, чем с хиевом

И вторая прога тоже выглядит очень вкусно. Сейчас скачал ее по твоей ссылке, буду использовать. Спасибо!
Плюс за мной. Сейчас пока не разрешают. Говорят, потерпи 24 часа

Ранг: 379.7 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 18 марта 2014 07:38 New!
Цитата · Личное сообщение · #14

Между прочим, если знаешь саму строку точно, то найти ее можно и в оле 2 без плагинов. В карте памяти, перед образом Ctrl+B (Search в меню) и в Unicode вводишь(на русском языке).

| Сообщение посчитали полезным: VBA



Ранг: 538.5 (!)
Статус: Участник
оптимист

Создано: 18 марта 2014 08:30 New!
Цитата · Личное сообщение · #15

Вы все забываете о том что русские буквы будут отображаться олькой в том случае если шрифт стоит с поддержкой кириллиц ну и не забываем в опция ольки ставить галочку Stringd>Allow Diacritical Symbols

| Сообщение посчитали полезным: unknownproject



Ранг: 263.1 (наставник)
Статус: Участник
RBC

Создано: 18 марта 2014 17:34 · Поправил: Kindly New!
Цитата · Личное сообщение · #16

Мне уже больше интересно про "разделитель" юникода 04. По каким критериям он именно 04, а не 00 (как я понял у WinHEX ищется по маске 00, а в других по 0? или ??). Есть ли еще особенности подобных "разделителей" строки? От чего зависит формат?


Статус: Пришелец

Создано: 18 марта 2014 17:40 New!
Цитата #17

010 Editor нормально работает с юникодом.

Ранг: 66.0 (постоянный)
Статус: Участник

Создано: 18 марта 2014 19:36 · Поправил: kunix New!
Цитата · Личное сообщение · #18

Kindly, "разделитель" - это старший байт двухбайтного целого числа, кодирующего символ.
Так вышло, что русские буквы кодируются числами 0x04YY.

| Сообщение посчитали полезным: Kindly



Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 18 марта 2014 23:26 New!
Цитата · Личное сообщение · #19

VBA
Конечно программа коммерческая но всеже, на всякий случай, в VB Decompiler начиная с одной из предыдущих версий реализовано несколько видов поиска в HEX (включая UTF-8) а также редактирование Unicode строк в стринг референсах без ручного конвертирования в байты юникода.

PS: Напомню, что декомпилятор не обязательно покупать за деньги. Лицензию можно получить написав нужный сообществу плагин или сделав перевод интерфейса или документации на отсутствующий язык (в данный момент требуется итальянский и документация на французском).

{ Атач доступен только для участников форума } - utf16_search.png

Ранг: 2.8 (гость)
Статус: Участник

Создано: 19 марта 2014 01:33 · Поправил: VBA New!
Цитата · Личное сообщение · #20

GPcH
Я бы не хотел, чтобы у коллег по форуму сложилось ошибочное впечатление, что меня интересует только крэкинг программ, написанных на VB. Совсем наоборот! Меня в основном интересуют программы, написанные на других языках. Просто штука в том, что когда начинаешь читать какое-нибудь руководство для новичков, то там всегда в самом начале одно и то же, а именно приблизительно следующее: вот мы нажимаем на кнопку "OK", вот выскакивает сообщение "Invalid serial number", вот мы идем в отладчик, находим эту строку, ставим на ней бряк и золотой ключик у нас в кармане Но вся проблема в том, что очень часто софт, в котором реально хочется поковыряться, русифицирован, и выскакивает сообщение на русском. Ну вот и возникла проблема научиться отыскивать ту самую строку на кириллице, которая выскочит. А поскольку она (эта строка) может быть в любой кодировке (от языка программирования зависит, насколько я понимаю), то надо научиться "отлавливать" эту строку при любом раскладе, ну вот я и учусь. Когда я эту ветку открывал два дня назад, я реально не мог найти строку "Привет" даже в своей собственной программе, а теперь, благодаря советам коллег, мне кажется, что я теперь любую строку на кириллице смогу найти в любой программе, ну конечно если эта строка не будет как-нибудь хитро замаскирована, например, картинка вместо строки текста или какое-нибудь побайтовое считывание этой строки из разных мест в памяти с последующим выводом в самодельном окошке, или еще какой-нибудь хитрый фокус, который мне сейчас даже не приходит в голову.

А почему я все-таки именно на VB написал ту самую пробную программу, с которой начал эту ветку? Да просто я других языков не знаю


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 19 марта 2014 11:57 New!
Цитата · Личное сообщение · #21

VBA
Тут еще такой момент. Юникод в строках в чистом виде чаще всего есть именно в VB5/6 если брать в рассчет нативные программы. В Delphi юникод стал использоваться для хранения строк как основной стандарт сравнительно недавно. В Visual C++ только версия студии 2003 стала считать DBCS как deprecated.
Также Ultra String Reference о котором тут писалось выше - вполне себе хороший плагин!

Насчет же VB - очень не советую его изучать и на нем что-то писать сейчас. Язык слишком устарел. Обрати внимание на Delphi последних версий или QT. Эти две среды активно развиваются и постоянно расширяют возможности си и паскаля.

| Сообщение посчитали полезным: VBA


Ранг: 574.3 (!)
Статус: Модератор

Создано: 19 марта 2014 13:23 New!
Цитата · Личное сообщение · #22

Надо же сколько приблуд для поиска. Подкину еще один метод
Far - Alt+F7 (Search) - Containing text: привет - Using code page: all standard code pages - OK

Ранг: 2.8 (гость)
Статус: Участник

Создано: 19 марта 2014 15:17 · Поправил: VBA New!
Цитата · Личное сообщение · #23

GPcH пишет:
Также Ultra String Reference о котором тут писалось выше - вполне себе хороший плагин!


Не, ну так вроде, мы в той ветке выяснили, что OllyDbg 2.01 безо всяких плагинов кириллицу находит. Тогда зачем мне этот плагин для первой версии? А кроме того, я с его помощью так и не смог отыскать свой привет Хотя, конечно, не исключено, что у меня руки не из того места растут или с головой какие-то проблемы


GPcH пишет:
Насчет же VB - очень не советую его изучать и на нем что-то писать сейчас. Язык слишком устарел. Обрати внимание на Delphi последних версий или QT. Эти две среды активно развиваются и постоянно расширяют возможности си и паскаля.


А вот за это большое реальное спасибо!
Я сейчас как раз стою на перекрестке и не знаю, какую дорогу выбрать. Ну то что VB изучать глубже не имеет смысла, это понятно. У него большой минус, что нельзя делать ассемблерные вставки без дополнительных шаманских танцев с бубном.
Переходить на си или паскаль? Но это значит начинать с полного нуля. Трудновато...

Слушай, а ты мне посоветуй, пожалуйста, как специалист в этой области. Вот я тут совершенно случайно наткнулся на язык Power Basic. Самое интересное, что я когда-то на нем даже немного пробовал писать еще под MS-DOS. А потом перешел на VB, VBA и совершенно забыл про существование этого языка, был абсолютно уверен, что он так и умер в досе, как и все прочие многочисленные диалекты бэйсика.
Но не тут-то было! Оказывается он выжил благодаря тому, что его автор Bob Zale оказался, как я понимаю, трудоголиком, фанатиком своего дела, ну приблизительно, как Стив Джобс. И тоже как Джобс "сгорел на работе", умер 3 года тому назад. Как я понимаю, он поставил перед собой задачу реабилитировать бэйсик в глазах программистского сообщества. Ну типа, все говорят, что бэйсик очень медленный, а я вам докажу, что на нем можно писать очень быстрые программы, все говорят, что программы на бэйсике получаются очень большими по размеру, а я вам докажу, что они могут быть очень компактными. Ну и в принципе, доказал (хотя, конечно, сейчас это уже большим достоинством не считается, как я понимаю):

http://ru.wikipedia.org/wiki/PowerBASIC

Я на этом языке (в его современном виде) уже попробовал немного писать. Главное, приятно удивило то, что можно очень легко делать ассемблерные вставки.
Ну так может быть мне на этом языке и сосредоточиться, а не начинать с нуля в си или паскале, что посоветуешь?


r_e пишет:
Надо же сколько приблуд для поиска. Подкину еще один методFar - Alt+F7 (Search) - Containing text: привет - Using code page: all standard code pages - OK


Это Far менеджер? Но я уже вроде привык к Тотал Коммандеру, да и кириллический юникод в файлах Тотал Коммандер, как мы выяснили в этой ветке, вполне сносно находит.


Ранг: 523.8 (!)
Статус: Участник
_Вечный_Студент_

Создано: 19 марта 2014 18:03 New!
Цитата · Личное сообщение · #24

VBA пишет:
не знаю, какую дорогу выбрать

Дорогу КУДА? Какая цель? Цель определит дорогу.

Ранг: 2.8 (гость)
Статус: Участник

Создано: 19 марта 2014 18:47 · Поправил: VBA New!
Цитата · Личное сообщение · #25

plutos пишет:
Какая цель?


Цель какая?
Цель святая

Не стоять на месте, учиться, развиваться, совершенствовать свое мастерство и как программиста, и как крэкера.
 eXeL@B —› Вопросы новичков —› Как найти в ексешнике строку на кириллице в юникоде?

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS