Проблема со взломом программы

Тема в разделе "WASM.BEGINNERS", создана пользователем neutronion, 5 июн 2010.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Привет,
    Пытаюсь понять механизм защиты одной программулины японской.
    Программа создает некий файл. Если его скопировать и удалить
    старый и затем вместо удаленного вставить сохраненный программа
    видит это дело и переустанавливается. Пробовал сохранять все даты
    Создан, Открыт, Изменен ничего не получается. Смотрел не ставит
    ли программа дров, тоже оказалось, что нет. Файл скопированный
    абсолютно идентичный удаленному.
    Можете подсказать в чем может быть дело? Прога небольшая рисовалка
    японская. Взлом интереса ради. Если надо могу выложить на slil.ru
     
  2. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    залил сюда:
    http://slil.ru/29276386
     
  3. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Кстати, говоря наличие устанавливаемых драйвером не обнаружено.
     
  4. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    neutronion

    Лог API, особливо на FindFirst/FindNext? Что она делает с ним?
     
  5. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Щас гляну, а смысл их смотреть?
     
  6. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    неа, вызывает вот это:
    xxx.exe 004231A3 0948 FindFirstFileA(26A0FC14: "C:\Documents and Settings\All Users\Application Data\SYSTEMAX Software Development\xxx\thumbnail\???...", 26A0FACC) returns: FFFFFFFF
    xxx.exe 00498D1D 097C GetAncestor(00080200, 00000002) returns: 00080230

    где ххх - название проги.
     
  7. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Ф смысле? Ну проще же понять логику видя последовательность вызовов АПИ нежели ковыряццо в дизасме / или же если прога накрыта протом то так можно определить место куда ставить бряк.
     
  8. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Полный путь и название до критичного файла и все связанные с этим АПИ-вызовы? (CreateFile/FindFirst/etc) - ?
     
  9. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    ++ Сначало лог с заведомо работающей прогой а уже потом - когда файл сделан ручонками и работать перестало. Разница. Может детектить разницу по FindFirst/Next (порядок).
     
  10. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Ладно, сделаю 2 лога. Хороший и плохой... и злой :)
     
  11. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Здесь 2 лога
    http://slil.ru/29276469
     
  12. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    +++ Возможно также лог на инсталляцию. Ну типа он делает SomeParams(файлег) ?= function(SomeParams(ОсновнойМодуль))
     
  13. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Не думаю, так как тот плохой лог, который я дал доходит до мессадж бокса, который говорит, что обнаружена старая версия и сейчас будет
    переустановка, т.е. прога уже обнаружила изменения в файле.
     
  14. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    neutronion

    Так в *bad* он не может найтить файло:

    GetFileAttributesA( ... SAI\NotRemoveMe.s...") returns: FFFFFFFF

    А в *Good* он его находит читает и перезаписывает. Вы же сказали что вы полностью восстанавливаете этот (?) файл?

    Если файл незапротекчен можно также открыть код по адресу 45E3FB и начинать его курить (можно в отлатчеге тоже).
     
  15. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Да, ты наверное прав, после вызова
    GetFileAttributesA пути хорошие разходятся с плохими существенно.
     
  16. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Восстанавливаю я файл, век воли не видать. Раз десять это сделал.
     
  17. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    не то дал, вот новый вариант.
    http://slil.ru/29276556
     
  18. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    вот у плохого
    Код (Text):
    1. sai.exe      0045F387 0AC8 ReadFile(00000370, 0012DBB8, 00001000, 0012DBAC, 00000000) returns: 00000001
    2. sai.exe      0045F815 0AC8 CreateFileA(00EA5978: "C:\Documents and Settings\All Users\Application Data\SYSTEMAX Software Development\SAI\NotRemoveMe.s...", C0000000, 00000000, 00000000, 00000003, 10000080, 00000000) returns: FFFFFFFF
    Код (Text):
    1. а это у хорошего
    2. sai.exe      0045F387 097C ReadFile(00000374, 0012DBB8, 00001000, 0012DBAC, 00000000) returns: 00000001
    3. sai.exe      00460584 097C GetSystemTime(0012EC50) returns: 0012EC50
     
  19. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Значит копать нужно между адресом 0045F387 и 00460584?
    Что посоветуете? Трейс?
     
  20. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    кстати, файл о котором идет речь
    C:\Documents and Settings\All Users\Application Data\SYSTEMAX Software Development\SAI\NotRemoveMe.ssd