ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.08.2008, 14:06
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме: 1013791
Репутация:
711
|
|
Проблема с BinDiff
Запускаю IDA, запускаю плагин, выбираю вторую базу. Запускается скрыто второй процесс IDA и начинает потихоньку кушать память. Доедает до 2 с лихим Гб
Потом выдает abnormal program termination и как результат - отсутствие какого либо результата 
Самое что печальное что об этом прямо сказано в readme - мол большие базы сравнивать не буду. Как быть? Чем пользоваться в такой ситуации
|
|
|

19.08.2008, 14:39
|
|
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме: 171210
Репутация:
3
|
|
Скачал последний 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". Это привело меня к мысли что в проге стоит проверка контрольной суммы.
Хотелось бы в краткой форме понять как с этим бороться. Дайте краткую инструкцию к действию как находить проверки в коде. Какие инструменты подойдут, как их применить. Поскольку я только начинающий, хочется разобраться в вопросе и научиться преодолевать подобные трудности в дальнейшем. Заранее спасибо!
|
|
|

19.08.2008, 15:13
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме: 1013791
Репутация:
711
|
|
Если программа сообщает что она повреждена, то это одно, а Runtime error это уже другое, а именно - указывает на то что русификация прошла криво и какая-то из функций по работе с памятью или строками дает сбой, пытаясь прочитать или как-то обработать поврежденные ресурсы. Такой вариант кажется самым правдоподобным.
В любом случае, отладчик никто не отменял - запускаешь под ним программу и ждешь появления Exception'a
Delphi help
101 Disk write error Reported by CloseFile, Write, WriteIn, or Flush if the disk becomes full.
Последний раз редактировалось neprovad; 19.08.2008 в 15:16..
|
|
|

19.08.2008, 16:16
|
|
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме: 171210
Репутация:
3
|
|
Нет точно проверка CRC! Засунул EXE в Restorator все ресурсы видны, их можно править и сохранить (для эксперемента исправил всего одну букву в Меню). Но при запуске прога снова ругается: "Runtime error 101 at 001B9496". Это привело меня к мысли что в проге стоит проверка контрольной суммы.
Пробывал подняться назад по коду от сообщения об ошибке, но почемуто не получается подняться более чем на 4-5 уровня. Скорее всего проверок несколько! Как можно узнать сразу все адреса предпологаемых проверок? Спасибо.
|
|
|

19.08.2008, 16:19
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме: 1013791
Репутация:
711
|
|
4-5 уровня это уже далековато занесло. Выложи свой модифицированный файл, гляну что там.
|
|
|

19.08.2008, 16:47
|
|
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме: 171210
Репутация:
3
|
|
Вот несколько ссылок:
http://soft.softodrom.ru/scr/get.php?id=3013
http://www.newestsoft.com/cat42_532.html
|
|
|

19.08.2008, 19:22
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме: 1013791
Репутация:
711
|
|
Код:
CODE:00562F13 call sub_49D52C
CODE:00562F18 test al, al
CODE:00562F1A jnz short loc_562F53
....
....
CODE:00562F33 jnz short loc_562F53
....
CODE:00562F4C call @@LStrCmp
CODE:00562F51 jz short loc_562F66
loc_562F53:
CODE:00562F53 xor ecx, ecx
CODE:00562F55 mov dl, 1
CODE:00562F57 mov eax, off_406468
CODE:00562F5C call sub_409F44
CODE:00562F61 call @@RaiseExcept
Проверка цифровой подписи файла. RaiseExcept - как раз сообщение то самое. Запатчить не составит труда.
|
|
|

19.08.2008, 22:26
|
|
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме: 171210
Репутация:
3
|
|
Спасибо neprovad ! Исправил код [QUOTE=neprovad]
Код:
CODE:00562F13 call sub_49D52C
CODE:00562F18 test al, al
CODE:00562F1A jnz short loc_562F53 <<<<<<<<<<<< занопил
....
....
CODE:00562F33 jnz short loc_562F53 <<<<<<<<<<<< занопил
....
CODE:00562F4C call @@LStrCmp
CODE:00562F51 jz short loc_562F66 <<<<<<<<<<<< Поменял на JMP
loc_562F53:
CODE:00562F53 xor ecx, ecx
CODE:00562F55 mov dl, 1
CODE:00562F57 mov eax, off_406468
CODE:00562F5C call sub_409F44
CODE:00562F61 call @@RaiseExcept
Правильно?
Но вот что интересно: Теперь можно править и переводить String Table, изменения сохраняются, прога после этого запускается, но остаётся на инглише! В чём может быть дело? Раскажи пожалуйста в двух словах чем отличается Проверка цифровой подписи файла от проверки контрольной суммы?
|
|
|

19.08.2008, 22:51
|
|
Познающий
Регистрация: 29.06.2008
Сообщений: 32
Провел на форуме: 22365
Репутация:
24
|
|
Контрольная сумма-это простой способ проверки целостности данных,суть которого состоит в том , что контрольная сумма- это некоторое значение,рассчитанное путем сложения всех входных данных.
Sum=Data % ([MAX_VAL]+1)
Data-итоговая сумма, рассчитанная по входным данным, и MaxVal - максимально допустимое значение контрольной суммы, заданное заранее.
Если использовать алгоритмы хэширования вместе с криптосистемами, с ключом общего пользования, то можно создать цифровую подпись, практически как человеческая подпись.Криптосистема и ключ общего пользования-составляют в сумме, метод позволяющий кодировать и декодировать данные с помощью двух ключей:общего использования и личного.
|
|
|

19.08.2008, 23:13
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме: 1013791
Репутация:
711
|
|
В данном случае различия нет. Идет проверка на то изменен ли файл или нет, а что используется - цифровая подпись или контрольная сумма не столь важно.
- Обычную контрольную сумму можно посчитать самостоятельно и подменить
- Цифровая подпись сложнее и банальной подделке не поддается (насколько я знаю)
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|