ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > Реверсинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #161  
Старый 18.08.2008, 14:06
neprovad
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме:
1013791

Репутация: 711


По умолчанию

Проблема с BinDiff
Запускаю IDA, запускаю плагин, выбираю вторую базу. Запускается скрыто второй процесс IDA и начинает потихоньку кушать память. Доедает до 2 с лихим Гб
Потом выдает abnormal program termination и как результат - отсутствие какого либо результата
Самое что печальное что об этом прямо сказано в readme - мол большие базы сравнивать не буду. Как быть? Чем пользоваться в такой ситуации
 

  #162  
Старый 19.08.2008, 14:39
tekton
Познающий
Регистрация: 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". Это привело меня к мысли что в проге стоит проверка контрольной суммы.

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

  #163  
Старый 19.08.2008, 15:13
neprovad
Постоянный
Регистрация: 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..
 

  #164  
Старый 19.08.2008, 16:16
tekton
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме:
171210

Репутация: 3
По умолчанию

Нет точно проверка CRC! Засунул EXE в Restorator все ресурсы видны, их можно править и сохранить (для эксперемента исправил всего одну букву в Меню). Но при запуске прога снова ругается: "Runtime error 101 at 001B9496". Это привело меня к мысли что в проге стоит проверка контрольной суммы.

Пробывал подняться назад по коду от сообщения об ошибке, но почемуто не получается подняться более чем на 4-5 уровня. Скорее всего проверок несколько! Как можно узнать сразу все адреса предпологаемых проверок? Спасибо.
 

  #165  
Старый 19.08.2008, 16:19
neprovad
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме:
1013791

Репутация: 711


По умолчанию

4-5 уровня это уже далековато занесло. Выложи свой модифицированный файл, гляну что там.
 

  #166  
Старый 19.08.2008, 16:47
tekton
Познающий
Регистрация: 02.06.2008
Сообщений: 59
Провел на форуме:
171210

Репутация: 3
По умолчанию

Вот несколько ссылок:

http://soft.softodrom.ru/scr/get.php?id=3013
http://www.newestsoft.com/cat42_532.html
 

  #167  
Старый 19.08.2008, 19:22
neprovad
Постоянный
Регистрация: 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 - как раз сообщение то самое. Запатчить не составит труда.
 

  #168  
Старый 19.08.2008, 22:26
tekton
Познающий
Регистрация: 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, изменения сохраняются, прога после этого запускается, но остаётся на инглише! В чём может быть дело? Раскажи пожалуйста в двух словах чем отличается Проверка цифровой подписи файла от проверки контрольной суммы?
 

  #169  
Старый 19.08.2008, 22:51
Martyr
Познающий
Регистрация: 29.06.2008
Сообщений: 32
Провел на форуме:
22365

Репутация: 24
По умолчанию

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

  #170  
Старый 19.08.2008, 23:13
neprovad
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме:
1013791

Репутация: 711


По умолчанию

В данном случае различия нет. Идет проверка на то изменен ли файл или нет, а что используется - цифровая подпись или контрольная сумма не столь важно.

- Обычную контрольную сумму можно посчитать самостоятельно и подменить
- Цифровая подпись сложнее и банальной подделке не поддается (насколько я знаю)
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ