|
|
|
Декомпиляция Clipper
|
|||
|---|---|---|---|
|
#18+
Такой вопрос. Есть прога под DOS написанная на Clipper. В файле встречаются строки: авторCopyright 1988,1989 by Gregory A. Martin Version 1.83 - May 23, 1989 CLIPPER 87 Non-Demo Version В своей работе программа шифрует некоторые текстовые строки. Интересует разбор метода шифрования. На глаз видно что строки шифруются блоками по 8 байт. Возможно используется какойто стандартный метод шифрования. При изменении одного бита в исходной строке изменяется кардинально весь блок результата. Попробовал декомпильнуть с помощью Valkirya/Rescue. Нашёл следующую функцию внутри. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Судя из текста всё упёрлось в функцию с именем E091125 , которой передаётся два указателя?(я делфист :)) на параметры. Дальше по файлу .MOD нашёл смещение функции: Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Не понятно ничего с CALL... куда они идут? Помогите плиз намёком каким... с клипером не знаком :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2010, 20:19:27 |
|
||
|
Декомпиляция Clipper
|
|||
|---|---|---|---|
|
#18+
Надо кроме .ASM получить еще .LST файл. Там будут проставлены адреса памяти. Или интерактивным дизассембером типа IDA можно вроде посмотреть. Километр текста будет, но другого выхода нет. Возможно, понадобится мощный и быстрый редактор текста типа Multiedit, чтобы быстро передвигаться по текстовому файлу. Можно еще отладчиком попытаться дойти до этой функции (типа CV.EXE). Вообще если нет больших секретов, то можешь .EXE как-нибудь передать (или на zvvzvv@list.ru), попробую посмотреть тоже. Ну а если военная тайна - то сам пробуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2010, 10:13:41 |
|
||
|
Декомпиляция Clipper
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо. Дело продвинулось с помощью IDA :) Исполняемый модуль бросать не очень хочу так как могу получить по бошке :) В коде присутствует и функция криптования и функция декриптования. Сложность в том что функция декриптования достаточно разветвлённая и громадная. Проанализировать на ассемблере что она делает сложно. Но судя из того что данные шифруются именно блоками по 8 байт я склоняюсь к тому что это один из стандартных методов. Вот какой... не знаю :) Сам код вроде не использует никаких внешних вызовов и никаких прерываний DOS. Есть только JMP и CALL инструкции внутри модуля. Отсюда вопрос: Если я просто загружу модуль целиком в буффер скажем в прогу на Делфи, передам через стек параметры и сделаю CALL-вызов по смещению входа в процедуру дешифровки, такой ход может пройти? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2010, 18:59:21 |
|
||
|
Декомпиляция Clipper
|
|||
|---|---|---|---|
|
#18+
xneo, нет. нельзя из 32 разрядного кода просто так вызывать 16-ти разрядный. Инструкции типо call 1A42:07E0 под виндой с ее flat моделью памяти никчему хорошему не приведут. ЗЫ. для IDA есть плагин HexRays - это декомпилятор в C. Не то чтобы очень хороший код на выходе получается... но понимать всеже будет легче, чем асм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2010, 01:26:15 |
|
||
|
Декомпиляция Clipper
|
|||
|---|---|---|---|
|
#18+
clihltxneo, нет. нельзя из 32 разрядного кода просто так вызывать 16-ти разрядный. Инструкции типо call 1A42:07E0 под виндой с ее flat моделью памяти никчему хорошему не приведут. ЗЫ. для IDA есть плагин HexRays - это декомпилятор в C. Не то чтобы очень хороший код на выходе получается... но понимать всеже будет легче, чем асм. вам поможет SoftICE и возможно "Григорьев...", неужели до сих пор "хитроганные" живут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2010, 00:59:19 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36397125&tid=1343969]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
219ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 508ms |

| 0 / 0 |
