Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Установить плагин keypatch в IDA
Посл.ответ Сообщение

Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 05 марта 2017 18:19
· Личное сообщение · #1

В 4-й главе сериала для IDA Нарваха рассматривает работу плагина keypatch.py
для патчинга кода. Этот плагин использует питоновский пакет keystone-engine,
который для этого требуется установить в систему Python, что оказалось совсем
не простой задачей.
Нарваха прикрепляет этот пакет в формате *.msi, но не указывает как его
установить. На сайте разработчиков этого пакета по сути не детализируют
установку. Там озабочены лишь рекламированием его всеядности.
Может кто-то сможет скаать как установить этот пакет?!




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 05 марта 2017 19:53
· Личное сообщение · #2

По-английски понимаешь?

Описание установки со страницы keypatch @GitHub

2. Install

Install Keystone core & Python binding for Python 2.7 from keystone-engine.org/download. Or follow the steps in the appendix section.

Copy file keypatch.py to IDA Plugin folder, then restart IDA Pro to use Keypatch.

On Windows, the folder is at C:\Program Files (x86)\IDA 6.9\plugins
On MacOS, the folder is at /Applications/IDA\ Pro\ 6.9/idaq.app/Contents/MacOS/plugins
On Linux, the folder may be at /opt/IDA/plugins/

NOTE

On Windows, if you get an error message from IDA about "fail to load the dynamic library", then your machine may miss the VC++ runtime library. Fix that by downloading & installing it from Microsoft

Как пользоваться:
keystone-engine.org/keypatch/tutorial


Итого, пошаговая установка:
1. Ставишь Python 2.7.13
2. Ставишь Keystone Python module for Windows - Binaries: keystone-0.9.1-python-win32.msi.
3. Копируешь keypatch.py в папку C:\Program Files (x86)\IDA 6.9\Plugins
4. Запускаешь IDA Pro и пользуешься Keypatch в соответствии с инструкцией

-----
EnJoy!




Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 05 марта 2017 20:39
· Личное сообщение · #3

Jupiter - такой текст я уже видел. Требуется конкретика установки пакета keystone-engine.
Указанный там способ python setup.py install начинает запрашивать к исходному дистрибутиву
неизвестное какое число дополнений типа byteyears.py, checkpyc.py, copytime.py,... Причём,
ладно бы сразу все, а то по-одному! Дашь ему один - он при следующем запуске просит другой!




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 05 марта 2017 21:07
· Личное сообщение · #4

ksol пишет:
такой текст я уже видел


Его должно быть достаточно.


ksol пишет:
Требуется конкретика установки пакета keystone-engine.


Ой, это прекрасно! Ты пришёл с "очень конкретным" вопросом, а теперь тебе снова чего-то не хватает.

Чтобы тебе можно было помочь, опиши проблему более конкретно.
Какая версия питона у тебя установлена, какая у тебя система (Win32/Win64/Mac), какой дистриб ты ставишь.
При установке какого конкретно модуля возникает ошибка.

Я специально проверил по тем шагам, которые тебе описал - всё работает.

-----
EnJoy!




Ранг: 35.8 (посетитель), 23thx
Активность: 0.030
Статус: Участник

Создано: 05 марта 2017 21:52 · Поправил: Psalmopoeus Pulcher
· Личное сообщение · #5

Похоже эта хрень тащит за собой пакет, которого нет в официальной коробке (конкретно cpython). Доставь сам или установи сборку anaconda, там полно всякой хрени к питону, наверняка и эта есть.



Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 06 марта 2017 10:18
· Личное сообщение · #6

у меня он не работает на чистой системе, нужны dll из vcredist_x86.exe (на х64 аналогично)
К python-2.7 подходит только keystone-0.9.1-python-win32.msi (или keystone-0.9.1-python-win64.msi). То есть, ставишь python-2.7, затем keystone-0.9.1 (который не встанет, если нет vcredist), копируешь плаг в соответствующую папку IDA.



Ранг: 33.4 (посетитель), 24thx
Активность: 0.020
Статус: Участник

Создано: 06 марта 2017 10:35
· Личное сообщение · #7

ksol
http://www.keystone-engine.org/download/
внизу есть еще один инсталлятор
Python module for Windows
NOTE: since this installer is self-contain, no need to install the core engine above.

This will install Keystone module into your corresponding Python edition.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 06 марта 2017 10:52
· Личное сообщение · #8

parfetka, redlord
Обо всём этом уже написано в первом же ответе в этой теме.
И про "VC++ runtime library", и про тип инсталлятора (Keystone Python module for Windows - Binaries: keystone-0.9.1-python-win32.msi).
Но, как я вижу, лёгких путей тут никто не ищет ))

-----
EnJoy!




Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 06 марта 2017 18:40
· Личное сообщение · #9

parfetka, redlord - python27 у меня установился автоматом при установке IDA, а
пакет keystone-0.9.1-python-win32.msi я взял из 4-й главы Нарвахи. На сайте разработчиков взял
то что они называют ядром фреймворка: keystone-0.9.1-win32.zip. И как они предлагают, запустил из
командной строки setup.py install. Результат один и тот же что для пакета .msi, что для .zip,
о котором я писал выше. У команды install есть ещё, так называемый, префикс инсталляции (--prefix),
которым может быть можно указать директорию для дополнительных файлов.
А есть ещё более новые питоновские установщики: easy_install и pip !




Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 06 марта 2017 19:00
· Личное сообщение · #10

Все действительно описано в первом ответе по пунктам.
Помимо инсталлятора Python и MSI инсталлятора keystone в систему уставнавливать ничего не нужно.

-----
DREAMS CALL US





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 06 марта 2017 19:06
· Личное сообщение · #11

ksol
1. Питон лучше поставить тот, который актуальный на офсайте, а не тот, который с идой шёл.
2. Инсталлятор Keystone Python module for Windows тоже нужно ставить с офсайта, а не "из 4-й главы Нарвахи".
3. Отдельно "ядро" ставить не нужно, поскольку Keystone Python module for Windows уже включает всё необходимое.

Вывод? Если бы ты просто сделал, как я тебе посоветовал, то избежал бы всех этих сложностей.

Ну и ещё раз повторю то, что я тебе уже писал в первом ответе, ссылки кликабельны:
1. Ставишь Python 2.7.13
2. Ставишь Keystone Python module for Windows - Binaries: keystone-0.9.1-python-win32.msi.

-----
EnJoy!




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

Создано: 06 марта 2017 22:05
· Личное сообщение · #12

ksol пишет: А есть ещё более новые питоновские установщики: easy_install и pip

К которым внезапно еще нужны компиляторы, поскольку многие пакеты идут в исходном коде. Если есть возможность установить собранную версию, лучше так и сделать, поскольку сборка некоторых пакетов далеко не тривиальная задача из за сложности настройки окружения. keypatch устанавливается без каких либо проблем из инсталятора, как и большинство плагинов для IDA, проблемы могут возникнуть лишь с установкой Qt пятой версии на python 2.7, других проблем за все время использования ни разу не встречал.



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 07 марта 2017 18:36
· Личное сообщение · #13

Jupiter - Спасибо! Скачал по вашим ссылкам, буду проверять.

Добавлено спустя 21 минуту
Посмотрел. Файл keystone-0.9.1-python-win32.msi - тот же, а питон - v2.7.6.
shellstorm - вы устанавливали keystone-0.9.1 питоновским или виндовским установщиком?



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

Создано: 08 марта 2017 10:23 · Поправил: shellstorm
· Личное сообщение · #14

ksol пишет: shellstorm - вы устанавливали keystone-0.9.1 питоновским или виндовским установщиком?

себе через pip, у меня среда настроена, а вам советую через виндовс установщик, версия все равно такая же, единственная разница, что после установщика будет болтаться uninstall.exe в папке python, у меня много библиотек и поэтому стараюсь обходиться по возможности pip, а так было бы все равно через что устанавливать, лишь бы работало. Python 2.7.X это python 2.7, последней цифрой можно пренебречь, в 99,9% случаев это не критично.



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 08 марта 2017 19:02
· Личное сообщение · #15

shellstorm пишет:
вам советую через виндовс установщик

виндовс установщик у меня отказывается работать с этим пакетом. Наверно, это и понятно, т.к. он
состоит из одних питоновских файлов. А стандартная команда 'setup.py install' просит системные
файлы и упорно не видит их в соседней ситемной директории. А как ей подсказать не возможно
понять из хэлпа команды install ! Установил easy_install - он ничего не дал. Вызывает он setup.py,
а та начинает свою песню про дополнительные файлы! Хэлп у easy_install такой же!



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

Создано: 09 марта 2017 01:36
· Личное сообщение · #16

ksol пишет:А стандартная команда 'setup.py install' просит системные файлы и упорно не видит их в соседней ситемной директории

Переменные среды настроены, все пути правильно указаны? установите pip, после установки в cmd pip install %module_name% или pip install "%module_hdd_path%" но можно не писать путь, а просто кинуть архив в консоль после install пробел. архив распаковывать не нужно.

| Сообщение посчитали полезным: ksol

Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 09 марта 2017 19:47
· Личное сообщение · #17

shellstorm - спасибо! У вас keystone в IDA отображается? keypatch работает?
Я вынудил easy_install заработать! Дошла до конца, установила папку keystone в Python27,
но где-то напортачила - нет связи с Идой. Пришлось эти нужные ей файла вручную раскидать
по трём папкам, причём одна должна быть в корне диска с:\ . В дальнейшем, как видно из лога
установки, она их отуда не брала, а нашла всё же и брала из системы Python27 !
------------------------------
shellstorm, а для pip мой Python2.7.6 надо апгрейдить? И тогда старую версию надо вначале
удалять? А какая версия pip ? И, если можно, откуда?



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

Создано: 09 марта 2017 20:11
· Личное сообщение · #18

ksol пишет:нет связи с Идой

У вас python установлен в корень диска C и папка не переименованная?
Если нет, удалите установленную версию и установите по дефолтному пути на диск C, это избавит вас от множества проблем.
Раскидывания по папкам это не решение, во многих библиотеках хардкод, альтернативные пути нужно добавлять в переменные среды и добавлять пути в реестре, лучше установите по человечески.

ksol пишет: У вас keystone в IDA отображается? keypatch работает?

Конечно, иначе с чего мне советовать пути решения.




ksol пишет: А какая версия pip ?

Не принципиально, лишь бы была поддержка whl, установите последнюю и не ошибетесь.
Старую версию незачем удалять, новая удалит при установке или откатится на старую при ошибке.
Скорее всего что то напортачили при установке, снесите все и почистите реестр от упоминаний предыдущих установок\путей, начисто установите чистую, официальную версию по стандартному пути, установите pip, а после через pip устанавливайте необходимые библиотеки, советую перед этим через тот же pip установить огрызок студийного компилятора и gcc, многие пакеты идут в исходном коде, и при установке запускается сборка.



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 10 марта 2017 18:25
· Личное сообщение · #19

shellstorm - понял, спасибо!



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 24 марта 2017 17:54
· Личное сообщение · #20

Уговорил я всё-таки установщик Windows поставить питоновский пакет!
Оказалось, что для него имеет существенное значение откуда происходит установка.
Но плагин не работает, теперь ошибка идёт из загрузки DLL-ки keystone.dll из операции
типа cdll.LoadLibrary('keystone.dll') , хотя адрес библиотеки установлен правильный,
а возникает исключение.



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

Создано: 25 марта 2017 02:47
· Личное сообщение · #21

ksol пишет: Оказалось, что для него имеет существенное значение откуда происходит установка.

Естественно имеет, путь к библиотекам python прописан в переменных средах. Разрядность тоже имеет значение, 32 битные библиотеки устанавливаются на соответствующую версию python, как и 64 битные библиотеки.
--> Link <-- скачайте, распакуйте и закиньте в папку python, должно заработать. Вообще в большинстве случаев сторонние библиотеки устанавливаются %path%\python%version%\lib\site-packages



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 25 марта 2017 17:51
· Личное сообщение · #22

В данном случае работа установщика определялась длиной пути! Перекинул
устанавливаемый пакет в корневую папку диска - установщик всё сделал.
shellstorm, пожалуйста, поясните, что там у вас в файле?
shellstorm пишет:
закиньте в папку python

а почему в корень питона, а не в site-packages ?



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

Создано: 25 марта 2017 18:14
· Личное сообщение · #23

ksol пишет: пожалуйста, поясните, что там у вас в файле?

все необходимые файлы для правильной работы, версия 32 бита.

ksol пишет: а почему в корень питона, а не в site-packages ?

потому что в архиве сохранен путь \lib\site-packages\keypatch и если закинуть в таком виде в директорию python, библиотека автоматом полетит в site-packages



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 25 марта 2017 18:22
· Личное сообщение · #24

shellstorm пишет:
все необходимые файлы для правильной работы

Пытался скачать, браузер кричит - не делай! вирусы!


 eXeL@B —› Вопросы новичков —› Установить плагин keypatch в IDA
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати