Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Разблокировать заблокитрованный пункт меню демо программы

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Взлом программ] >> Разблокировать заблокитрованный пункт меню демо программы
Имя
Сообщение << Старые топики   Новые топики >>
Разблокировать заблокитрованный пункт меню демо программы - 2010-05-13 23:02:40.643333   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
Всех приветствую. Поскольку знания по взлому программ начал только преобретать, нужна консультация.
Есть самописная прога в демо режиме, этот демо режим заключается только в заблокировании пункта меню "Сохранить как"
У меня было 2 варианта:
- через WinAPI послать системное сообщение на разблокировку, не получилось, при этом использовал как собственный код так и InqSoft Window Scanner
- второй вариант работает, но довольно не рациональный, слить дамп памяти процесса и выбратьь нужное, благо что основной обрабатываемый массив размещается в памяти последовательно.

Кто что может еще подсказать?
Post #: 1
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-14 00:58:11.850000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Заблокировать пункт меню можно двумя способами: 1 - в ресурсах, 2 - во время выполнения программы. В первом случае всё решаемо с помощью редактора ресурсов. Во втором - ищешь все вызовы функции ModifyMenu и анализируешь их.
Post #: 2
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-14 03:40:22.663333   
KSDR

Сообщений: 142
Оценки: 0
Присоединился: 2010-01-11 14:35:55.143333
Или третий способ. Поскольку программа демо, возможно код "сохранить как" просто отсутствует и его придется дописывать самому.
Post #: 3
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-14 12:15:36.773333   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
fromRIDDER, спасибо буду пробовать. Кстати не подскажешь редактор русурсов? Я пользовался ресторатором, может что получше есть?
KSDR,Тоже об этом думал, особенно после того как с АПИ сообщениями ничего не прокатило. Слабо представляю как это можно дописать, тем более на асемблере. И к томуже как его завязать с каким-либо контролом. Если можешь подкинь идею.
Post #: 4
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-15 00:41:15.383333   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
UPD: ресторатор сказал что файл зашифрован. Чем сейчас модно шифровать и расшифровывать?
UPD2: пока реализовал вариант с дампом памяти
Post #: 5
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-15 07:09:35.226666   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Ресторатор хорош. Попробуй "PE Explorer", у них разные техники чтения ресурсов. Для начала определи протектор, программ таких много, к примеру, PEiD.
Post #: 6
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-16 22:58:01.380000   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
PEiD сказал: UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
После непродолжительного перебора и мыслей о ручной распаковке, распаковал с помощью RL!deUPX 1.x-2.x
Ресторатор все так же продолжал ругаться
PE Explorer открыл, меню заблокировано было в ресурсах, поправил, сохранил (при сохранении спрашивало об обновлении чексуммы, обновил), ОДНАКО при запуске выбивает ошибка об отсутствии ".dll" Посмотрел плагином тотала Lister на зависимости от ДЛЛ и оказалось что стоит зависимость от 3 какихто кривых либ или даже не либ а так. Где что нужно было еще поправить чтобы не сбивались зависимости?
Post #: 7
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-17 05:27:44.760000   
MaxRWS

Сообщений: 329
Оценки: 90
Присоединился: 2008-07-01 12:21:24.036666
quote:

ORIGINAL: Shyrick

PEiD сказал: UPX 0.89.6 - 1.02 / 1.05 - 2.90 -&gt; Markus &amp; Laszlo

ОДНАКО при запуске выбивает ошибка об отсутствии ".dll"

Если это действительно UPX, то и распаковывать лучше всего UPX-ом же. Раз не запускается - значит, распаковал некорректно. И не пора ли уже саму программу выложить? fromRIDDER тебе ее в 5 минут поправит (если, конечно, там есть нужный функционал, а не просто строка-пустышка в меню).

Post #: 8
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-17 07:09:03.456666   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Как было написано, лучше распаковывать самим UPX-ом. Хотя можно и PE-Explorer-ом, у него встроенный плагин-распаковщик UPX-а на базе его исходников, поэтому всегда распаковывает корректно. Для просмотра зависимости от библиотек лучше используй PE Tools или LordPE. Хотя можно все тем же PE-Explorer-ом.

Если просит какие-то библиотеки, которых до распаковки не просил (если это действительно так), то упакован протектором MoleBox или аналогичным. После упаковки шифруется под UPX или упакован MoleBox-ом, а потом UPX-ом
Post #: 9
RE: Разблокировать заблокитрованный пункт меню демо программы - 2010-05-17 16:16:33.996666   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
Итакс, отчет…
UPX сообщил CantUnpackException: file is modified/hacked/protected; take care!!
QuikUnpack как и описанный мною RL!deUPX 1.x-2.x распаковал. После распаковки запуск происходит без проблем. PEiD показывает на борландсикй компилатор, но после редактирования ресурсов, прога валится (при распаковке RL!deUPX требует длл, QuikUnpack–просто вываливаетсяв ошибку)
MoleBox результатов не дал.

quote:

И не пора ли уже саму программу выложить?
Удел слабаков =) шутка… хочется самому разобраться… Но раз просите вот ссылка http://freespace.by/download/f25c5255ae

Больше всего мне интересно почему она валитмя после редактирования ресурсов…

Post #: 10
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-17 17:48:02.750000   
MaxRWS

Сообщений: 329
Оценки: 90
Присоединился: 2008-07-01 12:21:24.036666
Shyrick
quote:

Ошибка
Услуги FreeSpace доступны только для белорусских сетей. Ваша сеть не зарегистрирована в РУП "Белтелеком" как белорусская.

Post #: 11
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-17 20:04:46.140000   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
Сорри…по привычке =) http://rapidshare.com/files/388414517/prog.zip.html
Post #: 12
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-18 01:10:37.510000   
CIH2009

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-06 18:30:21.090000
Держи корректную распаковку,остальное ты уж сам!:D
http://rapidshare.com/files/388512705/elements_editor_v.1.6.c_demo__2.rar.html
Post #: 13
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-18 01:48:46.870000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Чтобы не было ошибки после распаковки и редактирования ресурсов, сделай ребилд ресурсов. После ручной распаковки и ребилда программой "Resource Rebuilder v1.0 by Dr.Golova" ресурсы можно редактировать PE-Exporer-ом.
Post #: 14
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-18 16:29:11.966666   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
CIH2009, благодарю.
fromRIDDER, благодарю, будем знать.

Ну что же, оправдались самые страшные ожидания :D, обработчики пусты. есть только вывод мессаджбокса. Определить я это смог только через DeDe, а потом уже зная адрес начала процедуры прогнал в Olly. А посему вопрос: как можно было проверить наличие кода используя только Olly? И в оле можно редактировать непосредственно команды?
В моем методе с дампом памяти нашелся баг, сохраняются только изменения, потому как добавляемые/удаляемые записи содержатся походу в других массивах. Можно написать либу, которая бдует определять адреса массивов в памяти и сохранять их в файл, затем прикрутить либу к ехе, и заменить отображение мессаджбокса на вызов функции из либы. Фантастика??

UPD: товарищ который просил разобраться с программой нашел похожую, но (даже интересно) там вместе с прогой лежала Olly и флеш мувик с манипуляциями над прогой. Как я понял из видео, прога при запуске проверяет ключ из ini файла и при несовпадении терминируется. Однако проделать те же операции, что и в видео у меня не получилось, строка в памяти не находилась… Если кому интересно то вот архив (без оли) http://rapidshare.com/files/388735241/IceFire.zip.html
Post #: 15
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-18 23:00:18.386666   
CIH2009

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-06 18:30:21.090000
Фантастика?? Ничего особенного,уже давно применяются подобные методы.
Однако проделать те же операции, что и в видео у меня не получилось Значит чегой то не так делал.
Как альтернатива поставь бряк на DeviceIoControl,f9 затем на memcpy и смотри буфер.Для надёжности смотри мувик.Прога вроде как под вмпротом
http://rapidshare.com/files/388865191/demo.rar.html
Post #: 16
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-19 11:22:20.960000   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
CIH2009, благодарю.
quote:

Ничего особенного,уже давно применяются подобные методы.

Эт хорошо, значит я правильно мыслю :D Делать это не буду, но если бы и делал, то по такому принципу: написанную либу поключить в ImpRec (или PE Explorer), дизассемблировать прогу WDAsm'ом, заменить вызов бокса на call my_lib.my_function , ну и в конце заново собрать??

P.S. и если никого не напрягаю, то вопрос
quote:

Ну что же, оправдались самые страшные ожидания , обработчики пусты. есть только вывод мессаджбокса. Определить я это смог только через DeDe, а потом уже зная адрес начала процедуры прогнал в Olly. А посему вопрос: как можно было проверить наличие кода используя только Olly?
пока остался открыт.
Post #: 17
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-19 13:27:25.420000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
По поводу того, что это только демо. При нажатии пункта меню вызывается функция, в ней два вызова: второй - сообщение об ограничении демо-версии; первый - первый содержит много вложенных вызовов. В DeDe этого не видно, просмотр ограничивается до вызова CALL DWORD PTR DS:[EDX+94], дальше можно увидеть только в отладчике, а там куча вложенных функций. Для верности следует изучить - для чего первая функция.

Я пользуюсь только олей, DeDe очень редко - ограниченность дельфийскими проектами. В отладчике найти функцию обработки сообщений окон, как правило, легко. В данном случае последовательность действий: запускаешь из-под отладчика, нажимаешь пункт меню, появляется сообщение о демо-версии, в оле нажимаешь F12, ALT+F9 (состояние Running), нажимаешь кнопку ОК, отладчик приостановит выполнение программы на месте вызова из функции MessageBoxA, дальше думаю разберешься.
Post #: 18
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-22 00:25:48.696666   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
CIH2009, посмотрел ролик, смысл понял, строку нашел, но вот она не подходит, да и к тому же короче. Искал по все памяти, не помогло. Используется VirtualProtect. Пытался отловить terminate функцию-не получилось. Странно все вобщем.
fromRIDDER, идея поиска обработчика понятна, но все же не до конца, а если к примеру в обработчике сперва выполняется одна функция, вней другая, а уже в ней выводится сообщения, отладчик остановится на след. команде после вызова функции сообщения, я вернусь к вызову 2, затем 1, но ведь не буду знать где непосредственно начало обработчика. Я опять же воспользовался DeDe и подсмотрел адрес начала обработчика.
Что же касается самой функции, я просмотрел 4 уровня вплоть до user32.setPropA, некоторые не вызывались из-за условных переходов, менял флаги, но при запуске вылетала ошибка чтения памяти. Понять назначение этих функций не удалось. Могу лишь предположить что в исходных кодах могло быть такое if (demo!=true) f1 else { ShowMessage(); return; }
Post #: 19
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-22 14:05:22.440000   
CIH2009

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-06 18:30:21.090000
Да батенька!Нужно смотреть последний блок выделенной памяти,я показал один из вариантов и посчитал что вы сами догадаетесь.Смотрите есчо раз.И не нужно следовать шаблонам.
http://rapidshare.com/files/390275911/demo.rar.html
Post #: 20
RE: Разблокировать заблокированный пункт меню демо программы - 2010-05-23 15:39:18.720000   
Shyrick

Сообщений: 12
Оценки: 0
Присоединился: 2010-05-13 22:49:35.116666
Да конечно я понял что нужно смотреть последний блок. Затык был в другом, просмотр 2 видео (которое в принципе ничем не отличалось от 1го) результатов не дал. Строка получалась короче нужной. Возможно у меня не так настроен отладчик, но при завершении процесса, последнее состояние дампа памяти не сохранялось (в отличие от видео) и скопировать строку я мог на пердпоследнем шаге, который не содержал последней порции строки (потому она и получалась короче). Заметив это добавил кусочек к строке из стека. Один рубеж взят :) А, и еще, а какбы убрать проверку вообще?

А по поводу основной программы: нажначение первого вызова понять так и не удалось.
Post #: 21
Страниц:  [1]
Все форумы >> [Взлом программ] >> Разблокировать заблокитрованный пункт меню демо программы







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.