![]() |
eXeL@B —› Вопросы новичков —› IsDebuggerPresent |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 16 января 2008 19:31 · Личное сообщение · #1 Привет. Взял у знакомого диск со старой игрой-DungeonSiege.Установил,запускаю-не запускается.Нашел в чем проблема.Монитор у меня подсевший и для игрушек я поднимаю гамму с помощью проги AtitrayTool.Так из-за этой проги DungeonSiege считает,что ее взламывают.Под OllyDbg с помощью плагинов игрушка запускается,но как только я запускаю AtiTrayTool-виснет,помогает только ресет ![]() Есть еще в игрушке вызов этой хрени- SetUnhandledExceptionFilter. 1.Можно ли пропатчить сами функции в экзешнике или нужно все вызовы этих функций патчить? 2.Может есть проги для скрытия отладки?Плагины к ольке или IceExt не предлагать ![]() ![]() |
|
Создано: 16 января 2008 19:44 · Поправил: VaZeR · Личное сообщение · #2 |
|
Создано: 16 января 2008 19:55 · Личное сообщение · #3 |
|
Создано: 16 января 2008 20:12 · Личное сообщение · #4 |
|
Создано: 16 января 2008 20:53 · Личное сообщение · #5 VaZeR пишет: Лучше всего это найти в самой игре проверку и запатчить её. Ищи её на какие нибудь API которые используются для обнаружения отладчика. К примеру таже IsDebuggerPresent Я об этом тоже думал,нажал в иде x и увидел около 10 вызовов ![]() Jupiter пишет: выложи exe файл игры. если там просто идёт вызов IsDebuggerPresent - то обойти не сложно. Я бы с радостью,но у меня GPRS ![]() sniperZ пишет: добавь новою секцию, поставь еп на неё, и допеши обнуление флага и прыг на оеп. 1 минута роботы.. Я не понял,а как это повлияет на проверку на дебаг? Ведь Игрушка проверяет вроде не только в начале запуска. Мне интересно,как можно сразу после вызова IsDebuggerPresent запатчить,чтобы она всегда писала что все ОК. В скриншоте по адресу call sub_41EEBB вызывается IsDebuggerPresent.Во втором скрине сама функция.Нельзя ли в нее что-нибудь впендюрить чтобы всегда был Ок ![]() Спасибо ребята. ![]() ![]() |
|
Создано: 16 января 2008 20:54 · Личное сообщение · #6 |
|
Создано: 16 января 2008 20:54 · Личное сообщение · #7 |
|
Создано: 16 января 2008 21:02 · Личное сообщение · #8 Amok пишет: Заюзай прогу Рема. HideToolz называется. Перетаскиваешь в неё экзешник AtitrayTool. Прогу без проблем найдешь на форуме, она здесь релизилась в двух версиях 2.0 и 2.1. О,спасибо.Я ее давно качал и что-то подзабыл про нее.Позже попробую,а то вдруг глюканет. Но мне все равно интересно,можно ли подправить call sub_41EEBB, чтобы всегда возвращало 0.Я исправлял jnz short loc_41405C на jz short loc_41405C,но там таких вызовов много ![]() ![]() |
|
Создано: 16 января 2008 21:06 · Личное сообщение · #9 |
|
Создано: 16 января 2008 21:38 · Личное сообщение · #10 VaZeR пишет: Ну и подправь в самой процедуре 41EEBB, вместо того чтобы править переходы. Допиши там к конце нужный тебе код или если совсем нет места то JMP на патч и обратно. В том то и дело,что я не знаю что писать ![]() ![]() Посмотри пожалуйста скрин.Может подскажешь что вписать? ![]() |
|
Создано: 16 января 2008 21:48 · Личное сообщение · #11 serkuz пишет: Мне интересно,как можно сразу после вызова IsDebuggerPresent запатчить,чтобы она всегда писала что все ОК. нах тебе это надо. IsDP проверяед флаг в пебе. тебе надо перед оеп обнулить этод флаг и все проверке чешут лесом..[b][/b] 1. Бери PE_Tools. добавляй новую секцию. Меняй оеп на неё. 2. пиши код типо того.. push eax mov eax,dword ptr fs:[30h] mov byte ptr ds:[eax+2],0 pop eax jmp OEP можед чёто не так, писал с башки.. 3. зопускаешь гаму и радуешься.. ![]() |
|
Создано: 16 января 2008 21:57 · Личное сообщение · #12 |
|
Создано: 16 января 2008 22:25 · Личное сообщение · #13 |
|
Создано: 16 января 2008 22:29 · Личное сообщение · #14 |
|
Создано: 16 января 2008 22:30 · Личное сообщение · #15 |
|
Создано: 16 января 2008 22:53 · Личное сообщение · #16 |
|
Создано: 17 января 2008 00:40 · Личное сообщение · #17 serkuz пишет: Да там еще SetUnhandledExceptionFilter-судя по поиску тоже какая-то защита от дебага SetUnhandledExceptionFilter - это обработчик ошибок, который должна содержать любая нормальная прога ;) в принципе, может конечно использоваться не только в мирных целях, но это скорее исключение из правил. что касается большого кол-ва IsDebuggerPresent, то ты можешь просто перехватить эту ф-цию в таблице импорта (оч. простой, но действенный способ) и написать свою заглушку. ----- EnJoy! ![]() |
|
Создано: 17 января 2008 00:57 · Личное сообщение · #18 Jupiter пишет: что касается большого кол-ва IsDebuggerPresent, то ты можешь просто перехватить эту ф-цию в таблице импорта (оч. простой, но действенный способ) и написать свою заглушку. Эттто для меня уж очень сложно ![]() ![]() Я попробовал добавить секцию PeTools.Оставил Section Name по умолчанию,ввел Size of Raw Data и Virtual Data по 30 (это размер секции в байтах?) а дальше выбираю Fill with 00x0 .При этом Virtual Offset становится 1000.Чтобы получить правильный оофсет для новой секции нужно Virtual Size+Virtual Offset от предыдущей секции??? ![]() |
|
Создано: 17 января 2008 01:54 · Личное сообщение · #19 о... да те рановато пока инжект делать. есть варианты: либо ты хоть немного читаешь по формату PE файлов, либо просишь кого-то ещё пофиксить файл за тебя. просто судя по твоим вопросам, ты пока слабо разбираешься в предмете. размер секции должен быть выровненным. добавлять секцию, в принципе, совсем не обязательно, т.к. кода мало. можно найти место в существующих секциях. есть ещё вариант: написать длл, в которой будет только одна функция: патч IsDebuggerPresent (через PEB или через хук - не важно) для текущего процесса. потом просто добавляешь её в импорт твоей проги. всё. ----- EnJoy! ![]() |
|
Создано: 17 января 2008 02:03 · Личное сообщение · #20 Jupiter пишет: о... да те рановато пока инжект делать. Согласен ![]() Пойду читать,что такое PEB ![]() Поковыряюсь завтра..не уже сегодня с экзешником,попробую пропатчить.Если не получиться,может выложу экзешник,если долбанный жрпс позволит закачать 1,5мб. Все равно было интересно ковыряться ![]() ![]() |
|
Создано: 17 января 2008 19:17 · Личное сообщение · #21 Отпишусь,вдруг кому-нибудь тоже пригодится. Патчинг переходов ничего не дало,видимо еще где-то есть проверки ![]() ![]() ![]() В итоге,нашел замену AtiTrayTools-AtiTool ![]() ЗЫ. Игра оказалась фигней ![]() Завтра тему можно закрывать,вдруг кто что спросит ![]() ![]() |
|
Создано: 17 января 2008 19:31 · Личное сообщение · #22 |
|
Создано: 17 января 2008 20:24 · Личное сообщение · #23 |
|
Создано: 17 января 2008 22:30 · Личное сообщение · #24 serkuz пишет: Я попробовал добавить секцию PeTools.Оставил Section Name по умолчанию,ввел Size of Raw Data и Virtual Data по 30 (это размер секции в байтах?) а дальше выбираю Fill with 00x0 .При этом Virtual Offset становится 1000.Чтобы получить правильный оофсет для новой секции нужно Virtual Size+Virtual Offset от предыдущей секции??? нед. пишешь VirtualSize = Section Alignment (скорее всего 1000h), а FileSize = File Alignment ( скорее всего 200h).. после добавление выставляй Entry Point = Virtual Offset новой секции..тока старый запомни.. если в все получиться, отпиши, бум дальше роботать.. ![]() ![]() |
|
Создано: 18 января 2008 00:36 · Личное сообщение · #25 Jupiter пишет: ЗЫ. Игра оказалась фигней -не понравилась... аааа убил! :D Не...пока только покалечил ![]() Archer пишет: HideToolz и не должен прятать прогу от IsDebuggerPresent, так что от этой проверки он бы и не помог. А для чего галка антиотладка? sniperZ пишет: нед. пишешь VirtualSize = Section Alignment (скорее всего 1000h), а FileSize = File Alignment ( скорее всего 200h).. после добавление выставляй Entry Point = Virtual Offset новой секции..тока старый запомни.. если в все получиться, отпиши, бум дальше роботать.. Ну если бум,тогда надо игрушку ставить ![]() ![]() ![]() |
|
Создано: 18 января 2008 21:39 · Личное сообщение · #26 sniperZ пишет: пишешь VirtualSize = Section Alignment (скорее всего 1000h) судя по данным Petools Section Alignment=1000h, File Alignment=1000h поэтому Entry Point тоже изменил на 1000.Старый entry point=9D2B Экзешник написан на Visual C++6 и вроде не упакован. В аттаче на скрин секция .My -Моя ![]() ![]() ![]() ![]() |
|
Создано: 18 января 2008 22:04 · Личное сообщение · #27 serkuz ты предпочитаешь не читать того, что тебе написали выше? во-первых нет смысла постить скрин с DOS заголовком. во-вторых, у тя смещение твоей секции равно смещению первой секции - винда такой файл не загрузит. тебе несколько раз уже написали про выравнивание! давно бы уже выложил собственно оригинальный файл. не поленись, почитай про формат PE, про то, что такое выравнивание и т.п. ----- EnJoy! ![]() |
|
Создано: 18 января 2008 22:37 · Личное сообщение · #28 serkuz бляяяяяяяяяяяя я тебе что говорил менять оффсеты? перечитай мой пост или выложи файл.. serkuz пишет: судя по данным Petools Section Alignment=1000h, File Alignment=1000h поэтому пкм, Add Section, Raw Data = 1000, Virtual Data = 1000h. поставь заполнить нулями. больше ничего не трогай. жмякай ок. пе тулс поставит оффсеты сам. или исправь. у тебя Virtual Offset твоей секции = 3A3000 и еп такое же.. ![]() |
|
Создано: 18 января 2008 23:27 · Поправил: serkuz · Личное сообщение · #29 Jupiter пишет: ты предпочитаешь не читать того, что тебе написали выше? Вообще-то я все читаю! Jupiter пишет: во-первых нет смысла постить скрин с DOS заголовком. Просто хотел показать что entry point у меня равен 1000 Jupiter пишет: во-вторых, у тя смещение твоей секции равно смещению первой секции - винда такой файл не загрузит. Это я и сам понял,все делал как написал sniperZ,по крайней мере пытался.. Jupiter пишет: давно бы уже выложил собственно оригинальный файл. Какой смысл? Игрушку я уже запустил, sniperZ предложил помощь во взломе.А если я выложу экзе-за меня все сделают сами.Если бы я хотел чтобы мне взломали,я бы пошел в другой подфорум-"запросы". И почему все считают,что все новички- чукчи-писатели,но не читатели?? sniperZ пишет: я тебе что говорил менять оффсеты? перечитай мой пост или выложи файл.. Я не менял оффсет!!! При заполнении Raw Data = 1000, Virtual Data = 1000h, Virtual Offset у меня сам становится равен 1000! После этого я только выставил Entry Point= Virtual Offset, который у меня Petools выставил =1000. Так что я не виноват в этом. Ладно,на этом можно урок закончить.Спасибо за науку. ![]() |
|
Создано: 18 января 2008 23:51 · Личное сообщение · #30 serkuz пишет: Так что я не виноват в этом. бггг. теперь сделай так: sniperZ пишет: или исправь. у тебя Virtual Offset твоей секции = 3A3000 и еп такое же.. выставь токие зночения и грузани файл в ольгу.. ![]() serkuz пишет: Ладно,на этом можно урок закончить.Спасибо за науку. мля, никокого желания учиццо.. ![]() ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› IsDebuggerPresent |
Эта тема закрыта. Ответы больше не принимаются. |