| 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.Во втором скрине сама функция.Нельзя ли в нее что-нибудь впендюрить чтобы всегда был Ок  
Спасибо ребята.   6b34_16.01.2008_CRACKLAB.rU.tgz - ida.png
![]()  | 
| 
 | 
Создано: 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, то ты можешь просто перехватить эту ф-цию в таблице импорта (оч. простой, но действенный способ) и написать свою заглушку. Эттто для меня уж очень сложно   Даже на методе,предложенном SniperZ я застрял 
Я попробовал добавить секцию 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 с помощью HideToolz 1.6-не помогло.Скачал новую версию HideToolz 2.1,запустил и пришел пипец  -БСОД.Перезагрузился,хрен-при загрузке винды опять БСОД (00000E8). Из под safe mode убрал загрузку дров Outpost4-загрузился. Удалил Outpost,запустил HideToolz-не помог,видимо из-за того что AtiTray использует дрова хитрые 
В итоге,нашел замену 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 -Моя    Что дальше?   Olly пишет что не может стартовать екзе,где тогда менять переход на entry?  83a5_18.01.2008_CRACKLAB.rU.tgz - petools.png
![]()  | 
| 
 | 
Создано: 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 | 
| Эта тема закрыта. Ответы больше не принимаются. | 







 


 Для печати