Сейчас на форуме: Lohmaty, tyns777 (+8 невидимых)

 eXeL@B —› Вопросы новичков —› file seems to be corrupt после изменения
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 января 2018 01:15
· Личное сообщение · #1

Здравствуйте.
Экспериментирую с одной программкой, но она ничего не дает менять. Один байт поменяешь - выводит сообщение 'file' такой-то 'seems to be corrupt'. Сама программка на вид ничем не запакована. Сначала думал, что это windows как-то определяет, ан нет - эта строка с сообщением находится в экзешнике. Именуется строка вроде BitFaultMsg.
Собственно, вопрос: может кто подскажет - это какой-то более-менее распространенный метод защиты, или самодел автора?
P.S. Для справки - меняю операторы и/или опкодики - там один регистр на другой, ничего сверхъестественного не делаю, стек не рушу.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 15 января 2018 01:19 · Поправил: dosprog
· Личное сообщение · #2

Это делается специально, с одной стороны, чтобы файл не ковыряли hacker'ы,
а с другой, чтобы он являлся одновременно и детектором буйствования в системе вирусни.
Это бывает удобно.

Можно попробовать применить лоадер, тогда станет понятно, что проверяется
- сам файл на диске, или его загруженный образ в памяти.
А иногда делают обе проверки, дело вкуса.

Такой файл лучше не трогать, а то он перестанет запускаться.





Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 января 2018 01:20
· Личное сообщение · #3

возможно проверяется дата изменения файла или проверяется хэш файла или функции\блока данных, возможно работоспособность зависит от целостности данных, например самотрасировка и морф кода, вариантов на самом деле море.




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 15 января 2018 01:56
· Личное сообщение · #4

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

-----
Array[Login..Logout] of Life




Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 15 января 2018 06:37 · Поправил: TryAga1n
· Личное сообщение · #5

Выкладывай жертву и тогда сможем подсказать, теоретически этот вопрос решать можно бесконечно долго. Можешь попробовать поставить бряки на ReadProcessMemory, CreateFile, ReadFile, MapOfViewFile и через плагин Kanal от PEiD посмотреть, какие чиперы используются и в каких местах



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 15 января 2018 07:04 · Поправил: dosprog
· Личное сообщение · #6

Да, какое-то время это может занять.
Но зато будет весело. Подтянутся некоторые персонажи



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 15 января 2018 10:29
· Личное сообщение · #7

leobum пишет:
Сама программка на вид ничем не запакована

Результаты Protection ID в студию. Название секций. Энтропию. Точку входа. X-ref'ы на строку в IDA Pro. Что в ресурсах/таблица импорта.




Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 января 2018 14:05
· Личное сообщение · #8

Ну, единственное, что точно - так это то, что оно с датой не связано. Потому что меняю обратно - все работает. А так, да - вариантов много.

...
так, здесь много слов написали, половину из которых я не понимаю. Это к слову )
...

Программку можно выложить. Хотя хочется самому разобраться. Впрочем, можно ведь и параллельно. Доберусь до дома - выложу. А я попробую проверить на протекторы, попробую отследить - где эта проверка идет.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 15 января 2018 14:43
· Личное сообщение · #9

leobum пишет:
половину из которых я не понимаю

leobum пишет:
Хотя хочется самому разобраться

Кагбе взаимоисключающие параграфы



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 15 января 2018 16:02 · Поправил: unknownproject
· Личное сообщение · #10

leobum пишет:
А я попробую проверить на протекторы, попробую отследить - где эта проверка идет.

На стандартные функции поставить бряки для начала - GetTempPathA(W)/CreateFileA(W)/ReadFile/DeleteFileA(W)/ReadProcessMemory/WriteProcessMemory. Взять ориентир на Api, которые предназначены для работы с файлами и памятью процесса. Авось попадется что. А так только по таблице импорта смотреть, как уже подсказали выше, ну и внутримодульные вызовы.

-----
TEST YOUR MIGHT



 eXeL@B —› Вопросы новичков —› file seems to be corrupt после изменения
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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