![]() |
eXeL@B —› Софт, инструменты —› PhantOm plugin |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 34 . 35 . >> |
Посл.ответ | Сообщение |
|
Создано: 22 января 2007 01:43 · Поправил: Модератор · Личное сообщение · #1 |
|
Создано: 22 апреля 2007 19:26 · Поправил: Sergeylar · Личное сообщение · #2 |
|
Создано: 22 апреля 2007 19:46 · Личное сообщение · #3 |
|
Создано: 22 апреля 2007 20:06 · Личное сообщение · #4 |
|
Создано: 23 апреля 2007 01:55 · Личное сообщение · #5 |
|
Создано: 06 мая 2007 19:04 · Личное сообщение · #6 так взялзя за плаг, будет много нового. скрытие от: -NtYieldExecution (new) -NtQueryObject -NtQuerySystemInformation ещё хочу отобрать у ольги обработку исключений, но тут косяк с бряками, как узнать мы на левом int 3 или на своём бряке? Да есть функи: function Getbreakpointtype(addr: ULONG): ULONG; cdecl; function Getbreakpointtypecount(addr: ULONG; passcount: PULONG): ULONG; cdecl; тока вот и в том и в другом случае возвращают одно и тоже... ![]() Мне же в случае бряка, надо вернуть управление в ольгу... ----- [nice coder and reverser] ![]() |
|
Создано: 07 мая 2007 01:53 · Личное сообщение · #7 |
|
Создано: 07 мая 2007 03:57 · Поправил: Bronco · Личное сообщение · #8 |
|
Создано: 07 мая 2007 08:13 · Личное сообщение · #9 |
|
Создано: 07 мая 2007 14:06 · Личное сообщение · #10 Hellspawn пишет: каким способом? Не уточнял. Вот этот тест, например, ищет определённые строки в процессе (CPU в юникоде, _ADDSORTEDDATA и т.п.). Насколько я помню, в OllyICE (та, что темидой накрыта была) этот тест не срабатывал. ![]() ![]() |
|
Создано: 07 мая 2007 17:43 · Личное сообщение · #11 Hellspawn пишет: тока вот и в том и в другом случае возвращают одно и тоже... Не-не, это ты просто немного запутался ![]() push eax ;здесь кладем в стек для проверки адрес в регистре EAX на наличие бряка (int 3) call Getbreakpointtype\ эта функа жизненно необходима для отладчика, и работать должна всегда правильно!!! test ah, 2 ; TY_ACTIVE/ тут проверяем если бряк (int 3) есть и он ENABLE pop eax ;выравниваем стек и возвр… jnz @F … Исполнить это, если бряка нет или он не активен … @@: … Исполнить это, если бряк есть и он активен (юзер ведь может отключить бряк, но в “памяти” 0CCh останется!) … P. S. Если не получиться выложи код, когда время будет, посмотрю, почему не работает… Hellspawn пишет: как узнать мы на левом int 3 или на своём бряке? Отладчик создает отдельную память, где хранит всю инфу о бряках именно 0CCh Находиться указатель на эту таблицу в структуре t_sorted. data с именем Table of breakpoints Там лежат данные типа - адреса (по этим адресам и определяется наличие бряка и его состояние в функе Getbreakpointtype), оригинальные байты, которые менялись на 0CCh, состояния бряков и т. д. Но эта краткая инфа нужна, только если на самом низком уровне использовать полностью все возможности отладчика… Hellspawn А ты уже реализовал это Hellspawn пишет: отобрать у ольги обработку исключений и это Hellspawn пишет: вернуть управление в ольгу... или только собираешься кодить? ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com ![]() |
|
Создано: 07 мая 2007 19:11 · Личное сообщение · #12 Demon666 пишет: или только собираешься кодить? вообще я патчу ольгу, и делаю свой цикл обработки, без лишнего мусора... я знал что ты ответишь, ок хорошо, попробую сделать всё как ты сказал! ![]() з.ы. для железного бряка также прокатит? ну тока константа другая конечно ![]() Gideon Vi пасиб, я гляну... ----- [nice coder and reverser] ![]() |
|
Создано: 08 мая 2007 04:03 · Личное сообщение · #13 Hellspawn пишет: для железного бряка также прокатит? Не-не, это из другой оперы… ![]() Getbreakpointtype возвращает инфу только ту, которая юзается через интерфейс Breakpoints (Alt+B) В таблице информация парсится такой структурой Description of INT3 breakpoint t_bpoint STRUC addr_ dword ? ; Address of breakpoint dummy dword ? type_ dword ? ; Type of breakpoint, TY_xxx cmd byte ? ; Old value of command t_bpoint ENDS вот Getbreakpointtype сравнивает addr_ с тем адресом, что мы передаем для анализа - в случае когда совпадает, возвращает значение, которое в type_, если нет в таблице такого адреса TY_INVALID type_ - тип breakpoint`а, комбинация битов TY_xxx. !!!WARNING!!! Avoid direct modification. Please do not change flags that are not described here Flag --->;возвращаемое значение TY_SET --->;000000100h TY_ACTIVE --->;000000200h TY_DISABLED --->;000000400h TY_ONESHOT --->;000000800h TY_TEMP --->;000001000h ;------------------[низкий уровень ![]() To get breakpoint descriptor, you may use the following code: t_table *bptable; t_bpoint *bpoint; bptable=(t_table *)Plugingetvalue(VAL_BREAKPOINTS); if (bptable!=NULL) { bpoint=(t_bpoint *)Findsorteddata(&(bptable->data),addr); if (bpoint!=NULL) { ..... any necessary actions ..... } } OllyDbg Plugin API v1.10© ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com ![]() |
|
Создано: 08 мая 2007 16:19 · Личное сообщение · #14 Gideon Vi хех, мою ольку не палит... а вообще может палиться, вот почему: защита включается во время загрузки жертвы в ольгу (так надёжнее) ![]() перехватывается на уровне дрова, хотя наверное можно прикрутить, спрошу у Арчера. лана, скоро будет релиз, надо будет потестить... ----- [nice coder and reverser] ![]() |
|
Создано: 11 мая 2007 09:07 · Личное сообщение · #15 |
|
Создано: 11 мая 2007 18:00 · Личное сообщение · #16 |
|
Создано: 12 мая 2007 03:17 · Личное сообщение · #17 |
|
Создано: 12 мая 2007 11:12 · Личное сообщение · #18 сделано для большой совместимости, если бы плаг грузился при старте Ольги, и на компе какой-нить АВ похучил нужные функи, то будет БСОД без вопросов (т.к. дроф хучит тоже) и потом разбирайся почему при старте бсод, а тут хоть понятно будет, что накосячил плаг ![]() з.ы. мне кажется так удобнее ![]() ----- [nice coder and reverser] ![]() |
|
Создано: 13 мая 2007 06:03 · Личное сообщение · #19 |
|
Создано: 13 мая 2007 16:34 · Личное сообщение · #20 |
|
Создано: 14 мая 2007 20:29 · Личное сообщение · #21 |
|
Создано: 15 мая 2007 02:35 · Личное сообщение · #22 Bronco пишет: Используй лучше сборочку ShadowOllyDbg Шибко мне понравилась русифицированная от vnekrilov - теперь никуда перелазить не хочется. Да я, в принципе, не спорю - переименовать некоторые строки (типа: OLLYDBG, _ODBG_, DBGHELP, _ADDSORTEDDATA, Debugger, CPU) не трудно, так что пожелание насчёт плагина - окончательное наведение лоска на сабж ![]() ![]() |
|
Создано: 15 мая 2007 16:50 · Личное сообщение · #23 |
|
Создано: 15 мая 2007 18:08 · Личное сообщение · #24 |
|
Создано: 15 мая 2007 18:56 · Личное сообщение · #25 Gideon Vi Не боись, всё будет норм. ;) Из процессов Ольку заныкал, осталось с окошками разобраццо. С этим есть небольшие сложности, поскольку хз, какие функции в ядре хучить для этого... Но ничо, потрейсим, разберёмся. Хотя если у кого есть наработки по этому поводу, а также код на асме, который хучит прерывания на многоядерной тачке-милости прошу поделиццо. ![]() ![]() |
|
Создано: 15 мая 2007 19:14 · Поправил: Error_Log · Личное сообщение · #26 Archer пишет: С этим есть небольшие сложности, поскольку хз, какие функции в ядре хучить для этого... хучить надо функции Shadow SDT NtUserBuildHwndList NtUserFindWindowEx Установка этих хуков имеет свои особенности, поищи где-то на форуме Ms-Rem писал про них. Archer пишет: код на асме, который хучит прерывания на многоядерной тачке-милости прошу поделиццо. А это зачем? ----- Research is my purpose ![]() |
|
Создано: 15 мая 2007 20:34 · Личное сообщение · #27 Error_Log пишет: А это зачем? Дело в том, что для rdtsc юзается отдельный дров, он написан на С и там хукаются прерывания. А всё остальное написано на асме. Я бы слил эти 2 дрова в 1, но на асме лениво код переписывать для хука IDT на многопроцессорных тачках. Да и вообще, пригодился бы код. Насчёт окошек я гляну код, спасибо. ![]() ![]() |
|
Создано: 16 мая 2007 22:46 · Личное сообщение · #28 |
|
Создано: 16 мая 2007 23:13 · Поправил: Hellspawn · Личное сообщение · #29 |
|
Создано: 16 мая 2007 23:43 · Личное сообщение · #30 |
|
Создано: 17 мая 2007 00:40 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 34 . 35 . >> |
![]() |
eXeL@B —› Софт, инструменты —› PhantOm plugin |