RCE.SU - реверсинг, кодинг, выделенные сервера, ICQ, proxy

Поиск и отруб ограничений в SLS Склад Супер DEMO при помощи DeDe by +DaFixer
(на примере ограничения количества строк при экспорте в HTML и Excel)

[Исследование]

Subject: Demo Limitations removing
Target: SLS Склад Супер DEMO
URL:www.sls.ru.
Author: aSL!
Date: 10.07.2001

Before starting!
Все ниже изложенное предназначено только для образовательных целей.

I. Вступление

Здравствуйте мои маленькие любители прекрасного! :)

Недавно GoKs поставил передо мною такую задачу: убрать два из туевой хучи демо ограничений в SLS Склад Супер Demo, а именно:

  1. Ограничение по количеству строк при экспорте в HTML
  2. Аналогичное ограничение, но для Excel.

А потом еще и попросил рассказать, как я это сумел сделать :) Вот я и пишу.

II. Постановка задачи
  1. Необходимо убрать описанные выше демо ограничения.
III. Исследование

Необходимые инструменты:

  1. DeDe 2.x (я пользовал 2.50)
  2. Драйвера hands.sys и bright_brain.vxd последних версий.
  3. W32Dasm 8.9x (я пользовал 8.93)
  4. Hiew x.x (я пользовал 6.70)

Итак, приступим...

Загружаем жертву в DeDe... Ах! не хочет, ну так Caspr'ом его :) Все распаковали... Ну теперь в DeDe и давим на "Process". Получаем следующую гадость:

Теперь ищем TView_Form (Это юнит WPrint1). Как я об этом узнал? Вспомним, что нам нужно нажать на пункт меню "Экспорт в Excel", его-то я и нашел на вкладке "Forms" того же DeDe у TView_Form. Дальше, ищем нужный нам эвент: Видим, что и aExcelExecute, и aHTMLExecute находятся здесь. Начнем с aExcelExecute.

I. Исследование ограничения количества строк при экспорте в Excel.

Для дальнейшего извращения нам понадобится отладчик. Но я человек ленивый, а поскольку TRW или SoftIce юзать было лень :), то я взял отладчик от W32Dasm'а, тем более, что мне дизассембленный листинг вскоре был нужен. Вы можете выбирать все, что угодно, по вкусу. Значит, запускаем, ставим бряк и неспешно трейсим. Практика показывает, что вся гадость происходит в
call 5059C4:


Ну что ж... Начинаем его трейсить. HINT: посмотрите в $WINDOWS\Temp. Там мы видим, что SLS Склад создал уже готовый отчет только в своем внутреннем формате, и он полный :) Значит, где-то рядом он парсится, и там на него и накладываются ограничения. Теперь стратегия действий: нам нужно трейсить call 005059С4 НЕ ЗАХОДЯ ни в один из call'ов, которые там, одновременно внимательно смотря за темпом.
НЕОБХОДИМО: отловить тот call, где происходит запись в файл, а значит и ограничения количества строк. Таким образом натыкаемся на интересный call по адресу 0050616B:

Заходим в него и смотрим его внимательно! Но что это?:

Узнаете? Да-да, это то самое место, где и происходит проверка ограничений. Все! Правим jnl на jmps и все! В Excel он уже экспортирует все :).

II. Исследование ограничения количества строк при экспорте в HTML.

В принципе, тут писать нечего, уж больно код по адресу 00503974 специфичный (я, в принципе, так и сделал). Но представим себе такую ситуацию, что таких участков кода множество. Что же мы будем делать? Правильно! Исследовать aHTMLExecute! При просмотре самой HTML'ки мы видим, что вся бякость, которую он вставляет написана в Unicode и выделена тэгами <PRE>. Вот тут-то ему и погибель! Стратегия действий такая же, как и в случае с Excel. Я сразу приведу необходимый путь действия!

1 шаг:

Почему именно здесь? Да потому что вставка идет как раз перед тэгом </BODY>

2-й шаг (Ищем <PRE>....):

Нашли? Хорошо! А теперь

3-й шаг (чуть-чуть выше, нам надо найти переход):

Нашли? Дальнейшие действия понятны и без меня. :)

IV. Подводим итоги:

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

Вот собственно и все! :)

Endnote:
© 2001 aSL! (asl@aslsoftl.com )
This essay can be freely distributed/ published/ printed etc... as long as no modifications are made in any way.
Greets to: Everyone in UOFG www.uofg.com.ua; +DaFixer for DeDE.


<= Вернуться к статьям

Rambler's Top100