Сейчас на форуме: YDS, _MBK_, user99 (+10 невидимых)

 eXeL@B —› Основной форум —› Взлом Resman 5.0 pro от jack7277
Посл.ответ Сообщение

Ранг: 1.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 24 декабря 2005 09:46
· Личное сообщение · #1

Взлом Resman 5.0 pro от jack7277

Можно выложить как статью

Скажу сразу, мне до этого ресмана нет никакого дела, до разборок нет никакого дела,
меня попросили просто.

Инструменты:
Apispy32
OllyDbg
w32dasm

Помощь получена с форума www.exelab.ru, но оттуда я взял только адреса функций
открытия файла и соединения с телефоном.
Просто так эти адреса не получить, так как они берутся из памяти и при неправильном
ключе там нули.
Листинг этого куска приведу ниже.
Начал копать я от генерации ключа, но быстро в этом закопался. Уж больно там куча привязок.
Программа генерирует код для посылки автору исходя из конфигурации железа и виндов,
затем ответный ключ вводится в поле регистрация.
При успешной регистрации вылезает MessageBoxA с надписью
0046A173 MessageBoxA "Спасибо за регистрацию:\r\n"
Генерация пароля на основе следующих данных:
HKLM \ SOFTWARE\Microsoft\Windows NT\CurrentVersion
ключи RegisteredOwner, RegisteredOrganization, BuildLab, ProductId, SourcePath, InstallDate

HKLM \ SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
ключ ComputerName

HKLM \ HARDWARE\DESCRIPTION\System\CentralProcessor\0
ключи: ~MHz, ProcessorNameString

+ количество ОЗУ
+ разрешение экрана
+ Серийный номер диска С:
+ 2 константы ( "5.0" - это версия и "29/10/2005" - это дата официального релиза проги)
+ еще одна переменная, генерируемая от пути проги
у меня на основе инфы от компа генерировалась такая строка:
AMD Athlon XP(t|AMD Athlon XP(t|2099|512|JACK7277|jack|jack||Windows XP v5.1 b2600
|1152x864|2600.xpsp_sp2_rtm.040803-2158|55683-640-2239822-23982|C :\|436B6DA2|436B765B|5.0|29/10/2005|958464
После успешной регистрации ключ пишется в файл resman.ini секция [Global] значение Key=1234567890
По пути нахождения ключа я не пошел, там много всего...
Пошел по пути наименьшего сопротивления, метод битхака, некрасиво, зато быстро можно добиться
нужного варианта, устраивающего всех.

Для начала файл упакован UPX. Распаковал автоматом.
При запуске программы все меню серые, доступно только введение ключа.
Поначалу это вообще было похоже на всякие генераторы номеров для билайна или для вебмани,
думал очередная пустышка.
Начал копать по активации меня через EnableMenuItem, но у меня ничего конечно не вышло,
потом подсказали что надо смотреть SetMenuItemInfoA
Перед вызовом этой функции идет 3 push'a первый который в виде push 0 или push 1
0 - меню серое, 1 - меню активно.

0040AB2D PUSH 0
0040AB2F MOV EAX, DWORD PTR SS:[EBP+1C]
0040AB32 PUSH EAX
0040AB33 PUSH ESI
0040AB34 CALL <JMP.&user32.SetMenuItemInfoA>

После активации меню ни один пукнт неактивен, там стоит проверка на каждый пункт.

Встал вопрос как отследить нажатие на каждый пункт меню.
Программа написана на делфи с использованием KOL.
DeDe ничем не помог.
Потыкал в пункты меню, при нажатии Файл - Сохранить разницу в S3 выпал messagebox
с надписью что мол сохранять изменения можно только после изменения прошивки.
Прицепился к messagebox, протрассировал по коды все выходы и смотрел что выше. и наткнулся
на такое место:

0040A8C2 MOV ECX, DWORD PTR SS:[ESP+4]
0040A8C6 MOV EDX, EBP
0040A8C8 MOV EAX, DWORD PTR DS:[ESI+3B]
0040A8CB CALL DWORD PTR DS:[ESI+37]

Волшебное место, так как этот CALL - это как раз раздатчик адресов.
Нажимаешь на каждый пункт меню и смотришь какой адрес является обработчиком
каждого пункта меню.
Почти все проверки там однотипные, сразу же на входе стоит проверка одного бита,
и если он равен нулю, то выход. Я эти проверки просто nop'ами забил.

Единственная проблема оказалась с такими пунктами как:
1. Открыть файл прошивки
2. Соединиться с телефоном и настройки соединения ( у этих двух оказался один адрес)

при нажатии на эти пункты меню, происходит переход на такую часть:
(маркер1)
00479C24 MOV EAX, DWORD PTR DS:[4B56D8]
00479C29 CMP EAX, 1.00400000 ; ASCII "MZP"
00479C2E JBE SHORT 1.00479C49
00479C30 CMP EAX, 500000
00479C35 JNB SHORT 1.00479C49
00479C37 MOV EAX, DWORD PTR DS:[4B56D8]
00479C3C CMP WORD PTR DS:[EAX], 0C033
00479C41 JNZ SHORT 1.00479C49
00479C43 CALL DWORD PTR DS:[4B56D8]
00479C49 RET

Берем адрес функции, он должен лежать в области между 400000...500000 и
первые байты функции должны быть 33С0, то есть XOR EAX, EAX
И как получить я не знал, пока форум не перечитал, а там был пост от Balthasar_magus

10)
004AF904 CALL resman.0046A0CC
004AF909 CMP DWORD PTR SS:[EBP-4],3 попадем сюда
004AF90D JNZ SHORT resman.004AF914 меняем Flag для того чтобы попасть на открытие файла
004AF90F CALL resman.00479C1C
004AF914 CMP DWORD PTR SS:[EBP-4],4
004AF918 JNZ SHORT resman.004AF91F меняем Flag для того чтобы соединиться с телефоном
004AF91A CALL resman.004AA40C

вот они эти 2 адреса: 479C1C для открыть файл и 4AA40C для соединения с телефоном.
Самое смешное что если посмотреть на несколько строчек вверх от (маркер1), то вот
они под боком лежат нужные нам адреса, а именно:

00479C1C XOR EAX, EAX
00479C1E CALL 1.004799E0
00479C23 RET
00479C24 MOV EAX, DWORD PTR DS:[4B56D8]
00479C29 CMP EAX, 1.00400000 ; ASCII "MZP"
00479C2E JBE SHORT 1.00479C49
00479C30 CMP EAX, 500000

Вот и всё. Остается одна небольшая проблема. Её я исправлю как только выкачаю файлы прошивок.
Проблема в том, что в программу нельзя добавлять неизвестные прошивки.
Мой крак со всеми активированными пунктами меню, кроме "История открытия" лежит
на http://namser.narod.ru

Там же лежит кривой крак жадного товарища bkslash.

Кривой, потому что там не работали пункты меню:
история открытия
обновление патчей(центр синхронизации)
снять скриншот
информация о телефоне
не работала кнопка сохранить файл

У меня всё работает кроме истории открытия.

Есть еще несколько мелких косметических недоделок:
- если нажать инфо о телефоне когда он не подключон то ресман просто виснет,
хотя должен написать что телефон не подключен.
решение проблемы - не нажимать инфу о телефоне при неподключенном теле

- При нажатии снять скриншот при неподключонном телефоне пишет что тело не подключено.
а потом просто в форме ничего нажать нельзя.токо в таскбаре закрыть можно
Решение проблемы - не нажимать снять скриншот при неподключенном теле

- не работает ассоциация программы с файлами прошивок.
Решение - открывать файлы через программу.




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 24 декабря 2005 11:31 · Поправил: OLEGator
· Личное сообщение · #2

Класс!
Нужно скачать...
Хоть у меня и нет самсунга, но вдруг кто принесёт прошивать. Пригодится.

надеюсь в скором времени все оставшиеся глюки устранятся!
Хотя в принципе того, что есть вполне достаточно для работы...

-----
AutoIt




Ранг: 120.2 (ветеран), 8thx
Активность: 0.120
Статус: Участник

Создано: 25 декабря 2005 14:03
· Личное сообщение · #3

Молодец! Может больше классных прошивок станен, а то застой какой-то наблюдается.


 eXeL@B —› Основной форум —› Взлом Resman 5.0 pro от jack7277
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати