Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› Контрольная сумма
Посл.ответ Сообщение

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

Создано: 18 августа 2008 20:39
· Личное сообщение · #1

Скачал последний PEExplorer, cкачал русификатор. После русификации в папке с прогой появился файл pexplorer.Rus. Прога не только оказалась не русифицирована, но и стала выдавать: "Runtime error 101 at 001B9496" и отказалась запускаться( после удаления pexplorer.Rus прога запускается и работает) . Тогда засунул EXE в PEiD, он сказал: "Borland Delphi 3.0 [Overlay]". Засунул EXE в Restorator все ресурсы видны, их можно править и сохранить. Но при запуске прога снова ругается: "Runtime error 101 at 001B9496". Это привело меня к мысли что в проге стоит проверка контрольной суммы.

Хотелось бы в краткой форме понять как с этим бороться. Дайте краткую инструкцию к действию как находить проверки в коде. Какие инструменты подойдут, как их применить. Поскольку я только начинающий, хочется разобраться в вопросе и научиться преодолевать подобные трудности в дальнейшем. Заранее спасибо!



Ранг: 172.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 18 августа 2008 20:46
· Личное сообщение · #2

kanal plugin for peid
или трейсить модифицированый файл с то4ки входа и пока не упадет процесс (где-то близко выше по коду будет функа сравнения 4ексумм)

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE




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

Создано: 18 августа 2008 20:58
· Личное сообщение · #3

Пробывал подняться назад по коду от сообщения об ошибке, но почемуто не получается Скорее проверок несколько! Может можно отследить как нибудь все сразу, с помощью какого нибудь API шпиона , чтобы узнать адреса этих проверок?




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 18 августа 2008 21:13
· Личное сообщение · #4

Их там несколько десятков. Помнится (для какой-то из старых версий), одних только (перекрестных) проверок CRC32 больше 20 штук + самописные сравнения областей памяти и (отложенное) самовосстановление критических кусков кода.



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

Создано: 18 августа 2008 22:03
· Личное сообщение · #5

Короче ясно, PEExplorer мне не по зубам Но всё же очень хочется разобраться в вопросе. Обьясните прядок действий при снятии контрольной суммы. Спасибо.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 19 августа 2008 01:24
· Личное сообщение · #6

Если проверок много то инлайн патчинг

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 августа 2008 18:04
· Личное сообщение · #7

Там проверка идёт целостности блоков в памяти, причём тут инлайн.




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 19 августа 2008 20:37 · Поправил: gazlan
· Личное сообщение · #8

tekton пишет:
прядок действий при снятии контрольной суммы

Контрольная сумма - это довольно размытое понятие, так что общего подхода здесь нет. Но именно для стандартной CRC32 (CCITT), обычно, годится такой алгоритм 1. Находим сам полином 0xEDB88320 (CC, KANAL etc) 2. Находим где строится таблица (либо, где она хранится) 3. Находим где, собственно, происходит подсчет CRC. Находим ссылки на эту функцию и расставляем там брэйки. (Часто удобно поставить BPM в SI и посмотреть, откуда нас вызвали). 4. Обычно, в обработчике CRCлибо сохраняется для дальнейшего использования, либо непосредственно используется в вычислениях (для вычисления адреса, пароль для дешифровки итд). Для получения неискаженного значения CRC необходимо использовать именно BPM. То место, где получено значение CRC, обычно и самое удобное для патча (например, для замены MOV adr, EAX на MOV adr, CRC32 - то есть, на константу). В любом случае, действия сводятся к подмене вычисленного значения на корректное, найденное при прогоне оригинальной (неизмененной) программы.
В некоторых случаях, когда проверяется не память, а файл на диске, достаточно пропатчить имя файла, так чтобы считывался
не проверяемый файл, а лежащий рядом оригинальный.
Многие программы проверяют MD5 (и используют части хэша в вычислениях). В этом случае, возни намного больше. Другие используют "порченную" таблицу CRC32 (как CreateInstall, например) итп, так что всегда требуется тщательно проверять алго и константы вычисления хэша - они могут быть совсем не тем, что вы о них думаете (ex: Blowfisn in w*w.zexersoft.com)]




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 августа 2008 21:10
· Личное сообщение · #9

Да самопал там какой-то, насколько я помню, причём прилично его. Задолбаешься весь вылавливать.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 22 августа 2008 10:14
· Личное сообщение · #10

tekton
Возможно, дело не в самой проге, просто когда удаляешь ресурсы в прогах, написанных на Делфи, такое бывает всегда, потому что Делфи работают с ресурсами не так, как С++, и не любят, когда их удаляют, а если подправить там какое-то значение, то может и работать.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 23 августа 2008 12:28
· Личное сообщение · #11

ARCHANGEL пишет:
не любят, когда их удаляют

Не любит, когда их удалаяют криво. А если с умом, то эти скрипты можно кроить вдоль и поперек. Небольшие правки (без перекомпиляции) удобнее всего делать в Hiew.



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

Создано: 23 августа 2008 23:04
· Личное сообщение · #12

А почему в хью? Я вот тоже сидел в нём и паталогически избегал GUI... (думал это круто)))
Как оказалось Hex WorkShop даже стабильнее, не говоря уже об удобстве.
И помимо него ещё хватает - Nano HexEd, 010 Hex Editor и возможно другие.
Хью для дос пусть. Еслиб он ещё команд строку поддерживал бы? Типа батники, тогдаб имело смысл...



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 24 августа 2008 03:37
· Личное сообщение · #13

Murder302 пишет:
Я вот тоже сидел в нём и паталогически избегал GUI... (думал это круто)))

Ты тему то читал? Hiew юзают не потому что это круто а потому что удобно и используют для реверса
А все то барахло, что ты перечислил это проги совершенно дл других задач


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


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