Комментарии 17
Ну просто же.
Подменяем стандартную виндовую библиотеку своим враппером, который все вызовы кроме записи и чтения из реестра тупо транслирует в виндовую либу.
А запись в реестр блокирует, ведя её в оперативную память. ТО есть по сути виндовый реестр даже не узнает, что в него хотели писать.
Плюс решения очевиден — универсальность, компактность, простота использования.
Минус — не вижу.
Подменяем стандартную виндовую библиотеку своим враппером, который все вызовы кроме записи и чтения из реестра тупо транслирует в виндовую либу.
А запись в реестр блокирует, ведя её в оперативную память. ТО есть по сути виндовый реестр даже не узнает, что в него хотели писать.
Плюс решения очевиден — универсальность, компактность, простота использования.
Минус — не вижу.
+3
1. Винда может быть разной.
2. Винда может быть х32 и х64.
3. С файлами в профиле как быть?
2. Винда может быть х32 и х64.
3. С файлами в профиле как быть?
0
А какая нам разница какая винда?
IDA хочет конкретные методы, эти конкретные методы есть в нашей фейковой либе, она их использует.
А уж фейковая либа стандартным способом обращается к виндовым функциям, как обычное приложение.
Третий вопрос не понял. Чуть подробнее пожалуйста о каких файлах и профилях речь.
IDA хочет конкретные методы, эти конкретные методы есть в нашей фейковой либе, она их использует.
А уж фейковая либа стандартным способом обращается к виндовым функциям, как обычное приложение.
Третий вопрос не понял. Чуть подробнее пожалуйста о каких файлах и профилях речь.
+1
Вы уверены что х32 либа будет корректно подменять вызовы к реестру в среде х64?
Плюс нужно будет осуществлять сброс фейкового реестра из памяти в файл и его загрузку из файла перед запуском иды. Это кто будет делать — та же либа?
По третьему вопросу:
Плюс нужно будет осуществлять сброс фейкового реестра из памяти в файл и его загрузку из файла перед запуском иды. Это кто будет делать — та же либа?
По третьему вопросу:
"%appdata%\zynamics"
"%appdata%\Hex-Rays"
"%appdata%\IDA Pro"
0
Вы уверены что х32 либа будет корректно подменять вызовы к реестру в среде х64?
Конечно.
IDA 32 битная как по вашему работает в 64 битной ОС?
Плюс нужно будет осуществлять сброс фейкового реестра из памяти в файл и его загрузку из файла перед запуском иды. Это кто будет делать — та же либа?
По третьему вопросу:
Второй и третий вопросы по сути одно и тоде.
Такая либа делает практически ровно тоже самое что и ваш батник, просто чуть более чисто. Например, если вырубится электричество — в реестре не будет ничего лишнего. Ну и в целом — один раз решение сделал и забыл, годится для любой проги. Раз вы любите портативность — такая фейковая либа мастхэв.
+1
Речь не о работе иды х32 в винде х64.
Речь о работе либы х32 в иде х64.
Впрочем, признаю: идея интересная. Реализуйте!
Речь о работе либы х32 в иде х64.
Впрочем, признаю: идея интересная. Реализуйте!
-2
Да в общем-то, всё уже придумано до нас. Sandboxie и иже с ними.
0
Не получится. Тогда все Ваши правки файлов останутся в той же песочнице.
Кстати, размер моего файла (exe) — 140 кб. Инсталлятор Sandboxie — 6 мб.
И мы ушли от основной идеи: чтобы не захламлять систему остатками работы иды — мы захламим её песочницей )))
И кстати я тут подумал о Вашем доводе со сбоем питания. Извините, а как либа спасёт в этом случае? Она поможет сбросить кеш записи на диск? Или в ней встроенный ИБП? Потому как при «удачном» сбое питания у пользователя возникнут куда более серьёзные проблемы, чем грязь в реестре, которая, кстати, легко чистится двойным кликом по файлу backup.reg.
Кстати, размер моего файла (exe) — 140 кб. Инсталлятор Sandboxie — 6 мб.
И мы ушли от основной идеи: чтобы не захламлять систему остатками работы иды — мы захламим её песочницей )))
И кстати я тут подумал о Вашем доводе со сбоем питания. Извините, а как либа спасёт в этом случае? Она поможет сбросить кеш записи на диск? Или в ней встроенный ИБП? Потому как при «удачном» сбое питания у пользователя возникнут куда более серьёзные проблемы, чем грязь в реестре, которая, кстати, легко чистится двойным кликом по файлу backup.reg.
0
Чёт вы какой-то агрессивный.
Безусловно реализую, если мне вдруг понадобится портабельный софт таскать.
Впрочем на 99% уверен, что уже реализовано сборщиками портативный версий. Уж больно простая и универсальная идея.
Безусловно реализую, если мне вдруг понадобится портабельный софт таскать.
Впрочем на 99% уверен, что уже реализовано сборщиками портативный версий. Уж больно простая и универсальная идея.
+1
Вам показалось :)
Просто Вы пишите концепты, которые не подходят к задаче.
Если портабелизовать через Sandboxie (а с ней — уж поверьте! — я давно разобрался), то там это реализовано не на уровне инжекта библиотек, а на уровне драйвера.
Исходно идея была сделать нечто универсальное, небольшое по размеру и сохраняющее доступ к исходным файлам IDA. Я это реализовал по-своему. Не берусь утверждать, что это — лучший способ, но если кто-то сделает что-то универсальное, небольшое по размеру и с сохранением доступа к файлам — я сниму шляпу.
А рассуждать в теории можно долго. Только до практики редко дело доходит.
Просто Вы пишите концепты, которые не подходят к задаче.
Если портабелизовать через Sandboxie (а с ней — уж поверьте! — я давно разобрался), то там это реализовано не на уровне инжекта библиотек, а на уровне драйвера.
Исходно идея была сделать нечто универсальное, небольшое по размеру и сохраняющее доступ к исходным файлам IDA. Я это реализовал по-своему. Не берусь утверждать, что это — лучший способ, но если кто-то сделает что-то универсальное, небольшое по размеру и с сохранением доступа к файлам — я сниму шляпу.
А рассуждать в теории можно долго. Только до практики редко дело доходит.
0
Неплохой подход к снаряду, но принцип, описанный AllexIn мне кажется более надежным и универсальным.
Более того — наверняка в системе уже существуют аналогичные возможности, т.к. задача подмены вызовов вызвана (простите за тавтологию) необходимостью обеспечения слоя совместимости для legacy приложений. Теоретически его можно было подхакнуть именно для реализации своих задач.
Более того — наверняка в системе уже существуют аналогичные возможности, т.к. задача подмены вызовов вызвана (простите за тавтологию) необходимостью обеспечения слоя совместимости для legacy приложений. Теоретически его можно было подхакнуть именно для реализации своих задач.
0
Век живи — век учись!
Снимаю шапку перед этой конструкцией вызова процедур в Batch файлах! Спасибо, буду пользоваться.
call :removedir "%appdata%\zynamics"
:removedir
del /F /Q /S %1 > nul
rmdir /s /q %1
exit /b
Снимаю шапку перед этой конструкцией вызова процедур в Batch файлах! Спасибо, буду пользоваться.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Портабелизация IDA