| Сейчас на форуме: Adler, asfa, bartolomeo (+8 невидимых) | 
| eXeL@B —› Вопросы новичков —› Изменение строк в дизасемблированной программе | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 15 июня 2012 17:08  · Личное сообщение · #1 Привет всем ![]() Распаковал программу, снял все защиты, перепаковал ресурсы. Теперь нужно изменить строки в программе. Есть некоторые строки, которые сохраняются в ресурсах файла и их изменить не есть проблемой. А есть строки, которые задаются непосредственно в коде. В функции onCreate формы прорисовываются кнопки - это не особо важно. А вот в onPaint прорисовывается весь текст, мало того, объекты, на которые выводится текст, создаются также динамически. Зашел в IDA Pro и начал искать. Нашел вот это: Code: 
 Это находится в функции, которая вызывается с onPaint. Эта функция одна и я так понимаю, что это и есть эти строки. Как их можно изменить и как вообще высчитать их местоположение по данной информации? Заранее благодарю  
![]()  | 
| 
 | 
Создано: 15 июня 2012 17:11  · Личное сообщение · #2  | 
| 
 | 
Создано: 15 июня 2012 17:21  · Личное сообщение · #3 OKOB, так значит эти строки уже загружены в стек? Тогда как отследить, где он загружает их туда? Мне нужно изменить текст, который выводится при открытии окна. Вот видимо сам вывод текста: Code: 
 ![]()  | 
| 
 | 
Создано: 15 июня 2012 17:39  · Личное сообщение · #4  | 
| 
 | 
Создано: 15 июня 2012 17:42 · Поправил: ghaiklor  · Личное сообщение · #5  | 
| 
 | 
Создано: 15 июня 2012 18:29  · Личное сообщение · #6 Вроде нашел нужную секцию данных: Code: 
 И список продолжается. Но так как текст на русском, он конечно же "игнорирует" его. Каким образом можно заставить вывести мне эти строки на русском с нормальной кодировкой? ![]()  | 
| 
 | 
Создано: 15 июня 2012 18:50  · Личное сообщение · #7  | 
| 
 | 
Создано: 15 июня 2012 18:56  · Личное сообщение · #8  | 
| 
 | 
Создано: 15 июня 2012 19:24 · Поправил: -=AkaBOSS=-  · Личное сообщение · #9 ghaiklor пишет: Как я могу ее найти в коде, если нет представления этих самых русских букв? 1. Отрываешь нужный модуль в хекс-редакторе (например, WinHex) 2. Ищешь нужный текст (там есть два режима: ANSI и Unicode, попробуй оба) 3. Берёшь тулзу типа PeEditor из PETools и преобразуешь смещение в файле в виртуальный адрес Скачал, посмотрел Большой блок русских строк начинается на вирт. адресе 83D4F6 (в файле - 43C4F6). Не оно случаем? ![]()  | 
| 
 | 
Создано: 15 июня 2012 20:02  · Личное сообщение · #10  | 
| 
 | 
Создано: 15 июня 2012 20:12  · Личное сообщение · #11  | 
| 
 | 
Создано: 15 июня 2012 20:14  · Личное сообщение · #12  | 
| 
 | 
Создано: 15 июня 2012 20:16  · Личное сообщение · #13  | 
| 
 | 
Создано: 15 июня 2012 20:16  · Личное сообщение · #14  | 
| 
 | 
Создано: 15 июня 2012 20:17 · Поправил: -=AkaBOSS=-  · Личное сообщение · #15 ghaiklor пишет: "Внимание! Последнюю версию программы всегда можно скачать абсолютно бесплатно с нашего официального сайта" эта строка зашифрована. лови вызов VirtualAlloc с параметром Size=0x150 в аллоцированный блок копируется код, расшифровывающий строки потом чуть ниже происходит вызов этого кода после чего movsd результат в стэковый буфер NikolayD Да в ольке-то всё нормально отображается, это в Иде кодировка долбанутая. ![]()  | 
| 
 | 
Создано: 15 июня 2012 20:28  · Личное сообщение · #16  | 
| 
 | 
Создано: 15 июня 2012 20:56  · Личное сообщение · #17  | 
| 
 | 
Создано: 17 июня 2012 15:22  · Личное сообщение · #18  | 
| 
 | 
Создано: 17 июня 2012 16:07  · Личное сообщение · #19 ghaiklor Программа непростая,видать писал её любитель кодить малварь     выделяется через VirtualAlloc участок памяти туда копирутся криптованный асм код,расшифровывается выполняется и раскриптовывает строчки     ghaiklor нехочу вас расстраивать но лучше оставить всё как есть....
----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]()  | 
| 
 | 
Создано: 17 июня 2012 18:19 · Поправил: ghaiklor  · Личное сообщение · #20 ClockMan, весь прикол в том, что самые обычные строки главного меню тоже закодированные, правда некоторые. То есть процентов 95 приложения переводит нормально, есть доступ. Но остальные 5 процентов втупую нету в ресурсах ![]() Как так?) Ради одной строчки кодировали ее? ![]() P.S. Или может есть другой способ сделать локализацию приложению?  
![]()  | 
| 
 | 
Создано: 18 июня 2012 10:48  · Личное сообщение · #21  | 
| 
 | 
Создано: 18 июня 2012 12:02  · Личное сообщение · #22  | 
| eXeL@B —› Вопросы новичков —› Изменение строк в дизасемблированной программе | 
| Эта тема закрыта. Ответы больше не принимаются. | 










 Спасибо, буду теперь разбираться с этим всем
 
 
 Для печати