Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Дневники и блоги —› engines |
. 1 . 2 . 3 . 4 . >> |
Посл.ответ | Сообщение |
|
Создано: 19 марта 2010 15:55 · Поправил: HandMill · Личное сообщение · #1 Добро пожаловать. Здесь будут выкладываться различные движки/библиотеки для программирования (в основном с тематическим уклоном), кратким описанием и ссылками. Формат описаний для движков: 0. Группа(Указываем в квадратных скобках жирным шрифтом). 1. Название.(Указываем жирным шрифтом) 2. Краткое описание/возможности/фичи. 3. Язык программирования/языки программирования, поддерживаемые SDK данной библиотеки/движка(или на чём он написан). 4. Лицензия. (Если не знаете на верняка - не указывайте) 5. Ссылки на официальные сайты / неофициальные сайты / документацию / закачку. 6. Какая-либо информация о проекте, дата последнего обновления / жив ли вообще проект. 1. 2. 3. ... Пунктов (цифер) не ставим, поскольку это на мой взгляд затрудняет чтение, пункты просто отделяем новыми абзацами. Группа - это обобщённое название анонсируемых вами движков, например "Дизассемблерные движки" или "Движки для работы с РЕ файлами". Краткое описание начинать со слов "%n движок" / "Движок для работы с %n" (например "Движок для работы с PE-файлами"). Предлагаю здесь не только сообщать о новых движках, но и обсуждать их работу (с). ----- все багрепорты - в личные сообщения |
|
Создано: 19 марта 2010 16:59 · Поправил: Модератор · Личное сообщение · #2 [Дизассемблерные движки] --- diStorm Дизассемблерный движок. Предназначен для разбора наборов инструкций 80x86 на 64 битных платформах (AMD64, X86-64) а также 16 и 32 битных. Дизассемблирует FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow! (w/ extensions), новые x86-64 наборы инструкций, VMX, AMD SVM и AVX! Написан на c. SDK поддерживает c/c++/python. Лицензия BSD. Последнее обновление 17th, Sep 2008. Сообщений о том что проект умер не встречал. --- BeaEngine Дизассемблерный движок. Мультиплатформенная библиотека x86 и x64, поддерживает FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, VMX, CLMUL, AES technologies наборы инструкций. Библиотека снабжена множеством примеров на различных языках программирования. Написан на c. SDK поддерживает: C/C++ (Visual Studio, GCC, MinGW, DigitalMars, BorlandC, WatcomC, SunForte, Pelles C). Assembler (usable with masm32 and masm64, nasm, fasm, GoAsm), Python, Delphi, PureBasic и WinDev. Лицензия LGPL3. Последнее обновление от 16 January 2010. Проект жив. --- udis86 Дизассемблерный движок. udis86 это маленькая и простая в использовании библиотека для дизассемблирования для архитектур x86 и x86-64. Основной целью разработки и развития udis86 является оказание помощи программных проектов, предназначенных для анализа бинарного кода. Написан на c. SDK поддерживает: C/C++ Лицензия BSD. Последний релиз от 2008-06-06. Весьма долго не было обновлений. Возможно проект сдох, но явных утверждений не встречал. --- X86IME, x86 instruction manipulator Дизассемблерный/ассемблерный движок для наборов инструкций x86 и x86_64 (32/64bits). Написан на c. SDK поддерживает: C/C++ --- Hacker Disassembler Engine Дизассемблерный движок для наборов x86 и x86_64 (32/64bits) инструкций. Отличительными особенностями можно считать маленький размер и поддержку FPU, MMX, SSE-SSE3, 3DNow! наборов инструкций. Написан на ассемблере, но затем автор переписал на c. SDK поддерживает: C/C++/паскаль/ассемблер Последние версии: hde32-0.28, hde64c-0.04. Проект автором более не поддерживается. ----- все багрепорты - в личные сообщения |
|
Создано: 20 марта 2010 05:04 · Поправил: Gideon Vi · Личное сообщение · #3 Kiev78 пишет: Здесь - Gideon Vi пишет: не плох, на его основе FullDisasm под ольгу делается Kiev78 пишет: Я это знаю, так же как и то, что он жутко тормозной (в прямом смысле). и фиг ли? Нам же не синтез в реальном времени высчитывать. За-то в активе много вкусных плюшек и проект жив. зы. Предлагаю здесь не только сообщать о новых движках, но и обсуждать их работу |
|
Создано: 20 марта 2010 22:38 · Поправил: Isaev · Личное сообщение · #4 |
|
Создано: 20 марта 2010 23:10 · Личное сообщение · #5 |
|
Создано: 21 марта 2010 03:03 · Поправил: Gideon Vi · Личное сообщение · #6 |
|
Создано: 26 марта 2010 15:13 · Поправил: HandMill · Личное сообщение · #7 [Дизассемблерные движки] --- Mediana Дизассемблерный движок. Дизассемблер работает в 16/32/64битных режимах, поддерживаются общий набор инструкций Intel и AMD, наборы инструкций FPU, SSE1, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SMX, Intel-VT. Ожидается поддержка 3DNow! и AMD VMX. Дизассемблер определяет принадлежность инструкции к какой-либо группе инструкций, ID инструкции, тестируемые, изменяемые, устанавливаемые, сбрасываемые флаги регистра EFLAGS, а также флаги, значение которых не определено. Отлавливаются все избыточные префиксы, поддерживаются полудокументированные и недокументированные инструкции, UNICODE, многопоточность, работа в Linux и Windows. Написан на c Последнее обновление 26.03.2010. Автор Русский, проект поддерживает, принимает багрепорты и обещает оказать помощь при возникновении вопросов. ----- все багрепорты - в личные сообщения |
|
Создано: 26 марта 2010 19:26 · Личное сообщение · #8 |
|
Создано: 26 марта 2010 21:06 · Поправил: Модератор · Личное сообщение · #9 [Отладчики] --- CodeF00 EDB Features Intuitive GUI interface The usual debugging operations (step-into/step-over/run/break) Conditional breakpoints Debugging core is implemented as a plugin so people can have drop in replacements. Of course if a given platform has several debugging APIs available, then you may have a plugin that implements any of them. Basic instruction analysis View/Dump memory regions Effective address inspection The data dump view is tabbed, allowing you to have several views of memory open at the same time and quickly switch between them. Importing of symbol maps Plugins * Search for binary strings * Code Bookmarks * Breakpoint management * Check for updates * Environment variable viewer * Heap block enumeration * Opcode search engine plugin has basic functionality (similar to msfelfscan/msfpescan) * Open file enumeration * Reference finder * String searching (like strings command in *nix) * Hardware Breakpoints Написан на Си++ с использованием библиотек Qt (не ниже 4.5) и boost (не ниже 1.35) Лицензия GPL-2 Clerk пишет: А зачем дизасм нужен, ну кроме вывода мнемоник ? Странный вопрос. Очень странный для такого опытного человека. Зачем мне мнемоники для статического анализа? Мне на них по барабану порой. Интересуют идентификаторы, разбиение инструкций по группам, флаги которые изменяет/может изменять/влияют на результат/могут влиять на результат. Также это относится к проблемам деобфускации и обфускации кода. Мнемокод - это только для человека. Программа должна работать на более низком уровне. |
|
Создано: 26 марта 2010 21:22 · Поправил: Модератор · Личное сообщение · #10 Mediana by Mikae Isaev пишет: А отпишитесь кратко, кто что использовал в каких проектах и почему именно его, а не другой? Потому что знаю немного автора, знаю что работа была проделана огромная (учтены ошибки документации, учтена не 100% совместимость наборов инструкций процессоров разных производителей, отлажены сложные случаи). Использовать [s]можно[s] нужно и по другим причинам: поддержка x64, разбиение на группы, определение флагов с которыми связано действие инструкции, возможность получить идентификатор инструкции (есть и в UDIS), возможность получить полную информацию об операндах, само собой длина инструкции и префиксы. |
|
Создано: 26 марта 2010 23:26 · Личное сообщение · #11 |
|
Создано: 27 марта 2010 00:20 · Личное сообщение · #12 |
|
Создано: 27 марта 2010 02:18 · Личное сообщение · #13 progopis Мнемоника это символическое обозначение, некоторые движки выводят его и используется при компиляции и дизассемблирования кода, например в отладчиках. Просто хотел узнать для чего вам дизасма двиг нужен. Мне то понятно - создание, перестройка и сборка графа. Вот для этой цели подходящих движков нет. |
|
Создано: 27 марта 2010 08:24 · Личное сообщение · #14 Если под графом имеется в виду разбиение кода на дерево, то эту задачу надо решать связкой дизассемблер+анализатор (который в частности содержит эмулятор). Задача обработки даже элементарных switch-таблиц не является очень уж тривиальной. Даже в IDA 5.5 можно скормить пример, когда IDA будет дизассемблировать данные, а начало таблицы будет указано на код. И что самое смешное, никакой обфускации, просто оптимизация компилятора MS VC++. Термин "дизассемблер" лично для меня означает лишь получение информации об инструкции, желательно как можно более полной. Анализ группы инструкций производит "анализатор". Эмулятор в данном случае это не тупая виртуальная машина, ведь не будешь же перебирать весь диапазон значений регистров, на это просто уйдёт огромное кол-во времени, надо ловить контроль диапазонов, работу с виртуальными функциями ООП языков и т.д. Вот как раз анализатор для медианы я сейчас и пишу. Это основное над чем я работаю в последнее время. И если проблема стоит именно в неполноте получения информации об инструкциях, то существует отличная возможность написать об этом автору. Если же проблема в навязывании дизассемблеру функций, какими он обладать не должен (во всяком случае в моём понимании), то тут уж не знаю. |
|
Создано: 30 марта 2010 16:12 · Поправил: HandMill · Личное сообщение · #15 [Движки для установки перехватов] --- 0x48k-apihook Движок для установки перехватов. Написана на c Увы, покаместь описание с хэллкнайц не доступно(хотя по сорцам и так всё понятно), как будет доступно - исправлю пост. --- advApiHook Движок для установки перехватов. Код может быть скомпилирован для приложений режима уровня пользователя и уровня ядра. Написана на c и delphi --- EasyHook This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment like C# using Windows 2000 SP4 and later, including Windows XP x64, Windows Vista x64 and Windows Server 2008 x64. Also 32- and 64-bit kernel mode hooking is supported as well as an unmanaged user-mode API which allows you to hook targets without requiring a NET Framework on the customers PC. An experimental stealth injection hides hooking from most of the current AV software. Написана на c++. SDK поддерживает c++, c# Лицензия LGPL Последнее обновление EasyHook 2.6 Stable Mar 8 2009. Судя по всему проект жив. --- MinHook As people who are interested in Windows API hooking know, there is an excellent library for it by Microsoft named 'Detours'. It's really useful, but its free edition (called 'Express') doesn't support x64. Its commercial edition (called 'Professional') supports x64, but it's too expensive for me. It costs US$ 10,000, Microsoft says. Написана на c SDK поддерживает c/c++ Лицензия BSD --- NCodeHook N-CodeHook is a small template based C++ library which allows you to hook into functions via inline patching. Написана на c++ SDK поддерживает c++ Проект судя по всему жив - автор применяет эту библиотеку в IDA Stealth. --- Ultimate Hooking Engine This engine is very simple to use and is designed to be used by everyone that need to hook something, all that is required to hook certain target is carfully crafted hooking dll with certain exports, actually exports are used to locate API that you want to hook. Написана на ассемблере(tasm32) SDK поддерживает ассемблер, c/c++ Врядли будут какие-то обновления. --- Trappola/Nektra’s hook engine for Windows Движок для установки перехватов. Написана на c++ Лицензия GNU LGPL Думаю автор обновит сабж если ему предоставить багрепорт. --- DLL Injection Framework Движок для установки перехватов и внедрения библиотек. Написана на c++ Лицензия GNU GPL Врядли будут какие-то обновления. --- NtHookEngine NtHookEngine is a powerful x86/x64 mini hook-engine Написана на с Лицензия GNU GPL Думаю автор обновит сабж если ему предоставить багрепорт. ----- все багрепорты - в личные сообщения |
|
Создано: 31 марта 2010 17:02 · Поправил: BoRoV · Личное сообщение · #16 [Движки для установки перехватов] --- yzHookLib Движок для установки перехватов. Написан на асме Врядли будут какие-то обновления. ----- Лучше быть одиноким, но свободным © $me |
|
Создано: 16 июня 2010 01:25 · Личное сообщение · #17 [Api hook & Dll Inject] Magic Api Hook Engine v1.0 - This is a simple all around process Api hooker and Dll Injector. UserMode(Ring3) just for WinNT family Написан на delphi Date: 2006.04.24 |
|
Создано: 29 июня 2010 17:28 · Личное сообщение · #18 |
|
Создано: 10 сентября 2010 11:18 · Личное сообщение · #19 |
|
Создано: 19 сентября 2010 17:48 · Поправил: Clerk · Личное сообщение · #20 |
|
Создано: 08 декабря 2010 17:02 · Личное сообщение · #21 dsmhelp.narod.ru/ Disassemble Help Library Здесь вы можете скачать библиотеку Disassemble Help Library с дизассемблером, и примерами использования. Одинаково хорошо дизассемблируется 16-битный,32-битный и 64-битный код. В примерах использования есть простой файловый дизассемблер и небольшая программка в которой можно одинаково дизассемблировать и ассемблировать отдельные инструкции. В данное время поддерживает практически все документированые наборы инструкций Intel64/AMD64, Basic,System,SSE,SSE2,SSE3,SSSE3,SSE4,SSE4A,MMX,FPU,3DNOW,VMX,SVM,AVX,FMA3,FMA4 и XOP. Дизассемблер довольно надёжный, проверялся при создании гигантских листингов более 100 Мб. К библиотеке прилагается очень подробная HTML справка. Пожалуй единственный минус это то, что работа возможна только под управлением Win64, это не разрешимая проблема для большей части компьютеров купленных 5 лет назад и более старых. Самые первые компьютеры с 64-битными процессорами AMD64, появились в продаже в 2003 году, и пентиумы с Intel64 в 2004 году. Но пожалуй если говорить о назначении программы, то она конечно далеко не для рядовых пользователей, которые обычно считают, что если к Интернету компьютер можно подключить то и обновка не нужна. PS По словам автора , есть ассемблер комманд и примеры все на асме , сам автор фанат ассемблера , по его же словам исходники не распостраняются. Хотя может через личку. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 09 декабря 2010 05:11 · Личное сообщение · #22 |
|
Создано: 09 декабря 2010 14:45 · Личное сообщение · #23 |
|
Создано: 10 декабря 2010 01:23 · Личное сообщение · #24 Предлагаете стать путеводителем на чужом празднике жизни, то бишь свалке... Проще ссылку удалить, если не в радость оказалась.. Вот там углядел, если интересно www.hacker-soft.net/Soft/Soft_15144.htm WinAppDbg module for Python The WinAppDbg python module allows developers to quickly add Windows application debugging facilities to your Python scripts. What is WinAppDbg? The WinAppDbg python module allows developers to quickly code instrumentation scripts in Python under a Windows environment. It uses ctypes to wrap many Win32 API calls related to debugging, and provides an object-oriented abstraction layer to manipulate threads, libraries and processes, attach your script as a debugger, trace execution, hook API calls, handle events in your debugee and set breakpoints of different kinds (code, hardware and memory). Additionally it has no native code at all, making it easier to maintain or modify than other debuggers on Windows. The intended audience are QA engineers and software security auditors wishing to test / fuzz Windows applications with quickly coded Python scripts. Several ready to use utilities are shipped and can be used for this purposes. Current features also include disassembling x86 native code (using the open source diStorm project, see ragestorm.net/distorm/), debugging multiple processes simultaneously and produce a detailed log of application crashes, useful for fuzzing and automated testing. winappdbg.sourceforge.net/ winappdbg.sourceforge.net/Tools.html winappdbg.sourceforge.net/GettingStarted.html#download sourceforge.net/projects/winappdbg/ sourceforge.net/projects/winappdbg/files/WinAppDbg/1.4/ |
|
Создано: 24 января 2011 03:13 · Личное сообщение · #25 |
|
Создано: 07 февраля 2011 01:12 · Личное сообщение · #26 Было не было, мож пригодится www.codenet.ru/progr/cpp/fluke.php Что такое Fluke? Среди общего множества статей и библиотек в интернете я еще не встречал ни одного удобного и наглядного средства, которое бы позволяло перехватывать, и управлять входными и выходными параметрами, любого типа функций, как импортируемые функции в приложение, так и функции находящиеся внутри исполняемого процесса. Проект Fluke как раз заполняет собой это упущение. Его исполнение разбито на три части, и каждая строго отвечает за свой функционал. Оригинал: gzproject.ru/wiki/index.php/HOWTO-Fluke gzproject.sourceforge.net/wiki/Fluke gzproject.sourceforge.net/wiki/IOFluke https://gzproject.svn.sourceforge.net/svnroot/gzproject/trunk/library/ https://gzproject.svn.sourceforge.net/svnroot/gzproject/tags/library-1 .0.0 https://gzproject.svn.sourceforge.net/svnroot/gzproject/tags/ConsoleDi ablo2-20020630 эти из текста www.codeproject.com/dll/apihijack.asp rsdn.ru/article/baseserv/apicallsintercepting.xml rsdn.ru/article/baseserv/IntercetionAPI.xml www.securitylab.ru/contest/212085.php |
|
Создано: 28 февраля 2011 02:23 · Личное сообщение · #27 |
|
Создано: 28 февраля 2011 07:34 · Личное сообщение · #28 Ожил старый проект - мож для чего в помощь StraceNT v0.9 January 30, 2011 www.intellectualheaven.com/default.asp?BH=StraceNT https://github.com/ipankajg/ihpublic download https://github.com/ipankajg/ihpublic/zipball/master |
|
Создано: 28 марта 2011 20:53 · Поправил: GoldFinch · Личное сообщение · #29 |
|
Создано: 05 апреля 2011 14:43 · Поправил: Vol4ok · Личное сообщение · #30 Еще одна либо для установки перехватов. 1. libsplice 2. Краткое описание/возможности/фичи. - поддержка х86 и х64 - поддкржка и user и kernel mode - подмена с инструкций с относительными переходами на расстояние до 2ГБ - поддержка повторного перехвата - отслежвивает наличие int3 и ret перехватываемом коде - легкий и написан на чистом С 3. Язык программирования: С 4. GPL3 5. http://code.google.com/p/libsplice/ 6. Какая-либо информация о проекте: писался для проекта opendbg дата последнего обновления: 2009 жив ли вообще проект: В принципе жив, но мне нет времни его вести. ЗЫ: по просьбе HandMill — сделать сравнение с библиотекой easyhook: Я не использовал easyhook, поэтому я не тот человек который должен сравнивать. Я оочень бегло глянул easyhook, на предмет интересующих меня в ней вопросов, а именно дизасм, с способ установки хуков, особенно в х64. По дизасму libsplice: у меня используется, допиленный мною до х64, ldasm от ms-rem easyhook: я был удивлен, от уведенного Code:
а дальше идет грмоздкий код выдранный из иды O_o способ установки хуков: libsplice: в х64 использует jump [mem64], в сумме занимает 14 байт, для x86 — 5 байтный клаасический джамп. easyhook: использует mov[imm64] + jump[reg] (если я конеш правильно правильно задизасмил в уме эту строку — 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0), заменяет 12 байт, единственное что мне не понятно как он сохраняет значение регистра делая mov... Также я не совсем понял, но походу для х86 там тоже хук 12 байт занимает. Прочие вещи которые я заметил: Еще они не поддерживают подмену инструкций с относительными адресами Code:
libsplice поддерживает, но не факт что всегда правильно. Еще в easyhook какие то хитрые мутки с синхронизацией я не вникал, тогда как в libsplice серьезной синхронизации не используется, используются лишь приемы которые позволяют минимизировать вероятность выполнения подменяеймого кода, т. е. всегда существует вероятность крэша, хоть и крайне низкая. easyhook весьма громоздок, использует какието дополнительные стркутуры для хранения данных о перехвате. в libsplice намного легче и никаких дополнительных структур он не создает, кроме, конечно, небольшого буфера памяти куда перемещаются подменяемые инструкции. В easyhook есть снятие хуков, на сколько я поняд (LhUninstallHook), не вникал правда каких. libsplice не умеет снимать хуки. Хотя безопасно снять хуки в ядре — я считаю что это даже теорестически невозможно, даже имея целый арсенал синхропримитив, причем снятие имеет куда большую вероятность креша нежели установка. Еще я полагаю что easyhook более стабильный, т к libsplice тестировался очень малым числом людей. | Сообщение посчитали полезным: HandMill |
. 1 . 2 . 3 . 4 . >> |
eXeL@B —› Дневники и блоги —› engines |