Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› IsDebuggerPresent
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 19:31
· Личное сообщение · #1

Привет. Взял у знакомого диск со старой игрой-DungeonSiege.Установил,запускаю-не запускается.Нашел в чем проблема.Монитор у меня подсевший и для игрушек я поднимаю гамму с помощью проги AtitrayTool.Так из-за этой проги DungeonSiege считает,что ее взламывают.Под OllyDbg с помощью плагинов игрушка запускается,но как только я запускаю AtiTrayTool-виснет,помогает только ресет
Есть еще в игрушке вызов этой хрени- SetUnhandledExceptionFilter.
1.Можно ли пропатчить сами функции в экзешнике или нужно все вызовы этих функций патчить?
2.Может есть проги для скрытия отладки?Плагины к ольке или IceExt не предлагать




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 16 января 2008 19:44 · Поправил: VaZeR
· Личное сообщение · #2

serkuz
Лучше всего это найти в самой игре проверку и запатчить её. Ищи её на какие нибудь API которые используются для обнаружения отладчика. К примеру таже IsDebuggerPresent




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 16 января 2008 19:55
· Личное сообщение · #3

выложи exe файл игры.
если там просто идёт вызов IsDebuggerPresent - то обойти не сложно.

-----
EnJoy!




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 16 января 2008 20:12
· Личное сообщение · #4

serkuz
добавь новою секцию, поставь еп на неё, и допеши обнуление флага и прыг на оеп. 1 минута роботы..



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 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



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 20:54
· Личное сообщение · #6

Сама функция

8b09_16.01.2008_CRACKLAB.rU.tgz - IsDeb.png



Ранг: 35.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 января 2008 20:54
· Личное сообщение · #7

serkuz пишет:
2.Может есть проги для скрытия отладки?


Заюзай прогу Рема. HideToolz называется. Перетаскиваешь в неё экзешник AtitrayTool. Прогу без проблем найдешь на форуме, она здесь релизилась в двух версиях 2.0 и 2.1.



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 21:02
· Личное сообщение · #8

Amok пишет:
Заюзай прогу Рема. HideToolz называется. Перетаскиваешь в неё экзешник AtitrayTool. Прогу без проблем найдешь на форуме, она здесь релизилась в двух версиях 2.0 и 2.1.

О,спасибо.Я ее давно качал и что-то подзабыл про нее.Позже попробую,а то вдруг глюканет.
Но мне все равно интересно,можно ли подправить call sub_41EEBB, чтобы всегда возвращало 0.Я исправлял jnz short loc_41405C на jz short loc_41405C,но там таких вызовов много




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 16 января 2008 21:06
· Личное сообщение · #9

serkuz
"можно ли подправить call sub_41EEBB" - Ну и подправь в самой процедуре 41EEBB, вместо того чтобы править переходы. Допиши там к конце нужный тебе код или если совсем нет места то JMP на патч и обратно.



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 21:38
· Личное сообщение · #10

VaZeR пишет:
Ну и подправь в самой процедуре 41EEBB, вместо того чтобы править переходы. Допиши там к конце нужный тебе код или если совсем нет места то JMP на патч и обратно.


В том то и дело,что я не знаю что писать Поэтому то и задал вопрос в форум для новичков
Посмотри пожалуйста скрин.Может подскажешь что вписать?



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 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. зопускаешь гаму и радуешься..



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 21:57
· Личное сообщение · #12

sniperZ пишет:
нах тебе это надо. IsDP проверяед флаг в пебе. тебе надо перед оеп обнулить этод флаг и все проверке чешут лесом..[b][/b]


Спасибо,попробую.Если не получится-попробую проверки убрать ну или забью на нее болт



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 16 января 2008 22:25
· Личное сообщение · #13

serkuz пишет:
Если не получится-попробую проверки убрать ну или забью на нее болт

да там не чему не получаццо, если это действительно только IsDP, а забевать не стоит, ибо не по нашему..



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 22:29
· Личное сообщение · #14

Да там еще SetUnhandledExceptionFilter-судя по поиску тоже какая-то защита от дебага



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 января 2008 22:30
· Личное сообщение · #15

sniperZ пишет:
2. пиши код типо того..
push eax
mov eax,dword ptr fs:[30h]
mov byte ptr ds:[eax+2],0
pop eax
jmp OEP
можед чёто не так, писал с башки..


А чем происывать код?Олей?



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 16 января 2008 22:53
· Личное сообщение · #16

serkuz пишет:
А чем происывать код?Олей?

да. задишь в олю, пишешь код, пкм copy to executable..




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 января 2008 00:40
· Личное сообщение · #17

serkuz пишет:
Да там еще SetUnhandledExceptionFilter-судя по поиску тоже какая-то защита от дебага


SetUnhandledExceptionFilter - это обработчик ошибок, который должна содержать любая нормальная прога ;)
в принципе, может конечно использоваться не только в мирных целях, но это скорее исключение из правил.

что касается большого кол-ва IsDebuggerPresent, то ты можешь просто перехватить эту ф-цию в таблице импорта (оч. простой, но действенный способ) и написать свою заглушку.

-----
EnJoy!




Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 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 от предыдущей секции???




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 января 2008 01:54
· Личное сообщение · #19

о... да те рановато пока инжект делать.
есть варианты: либо ты хоть немного читаешь по формату PE файлов, либо просишь кого-то ещё пофиксить файл за тебя.
просто судя по твоим вопросам, ты пока слабо разбираешься в предмете. размер секции должен быть выровненным. добавлять секцию, в принципе, совсем не обязательно, т.к. кода мало. можно найти место в существующих секциях.

есть ещё вариант: написать длл, в которой будет только одна функция: патч IsDebuggerPresent (через PEB или через хук - не важно) для текущего процесса. потом просто добавляешь её в импорт твоей проги. всё.

-----
EnJoy!




Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 января 2008 02:03
· Личное сообщение · #20

Jupiter пишет:
о... да те рановато пока инжект делать.


Согласен
Пойду читать,что такое PEB

Поковыряюсь завтра..не уже сегодня с экзешником,попробую пропатчить.Если не получиться,может выложу экзешник,если долбанный жрпс позволит закачать 1,5мб.

Все равно было интересно ковыряться Благодарю всех за ответы!



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 января 2008 19:17
· Личное сообщение · #21

Отпишусь,вдруг кому-нибудь тоже пригодится.
Патчинг переходов ничего не дало,видимо еще где-то есть проверки Спрятал AtitrayTools с помощью HideToolz 1.6-не помогло.Скачал новую версию HideToolz 2.1,запустил и пришел пипец -БСОД.Перезагрузился,хрен-при загрузке винды опять БСОД (00000E8). Из под safe mode убрал загрузку дров Outpost4-загрузился. Удалил Outpost,запустил HideToolz-не помог,видимо из-за того что AtiTray использует дрова хитрые

В итоге,нашел замену AtiTrayTools-AtiTool С ним игрушка пошла.

ЗЫ. Игра оказалась фигней -не понравилась...

Завтра тему можно закрывать,вдруг кто что спросит




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 января 2008 19:31
· Личное сообщение · #22

serkuz пишет:
ЗЫ. Игра оказалась фигней -не понравилась...

аааа убил! :D

serkuz пишет:
Патчинг переходов ничего не дало

надо было не переходы патчить, а API ф-цию хучить и PEB патчить

-----
EnJoy!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 17 января 2008 20:24
· Личное сообщение · #23

HideToolz и не должен прятать прогу от IsDebuggerPresent, так что от этой проверки он бы и не помог.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 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 новой секции..тока старый запомни..
если в все получиться, отпиши, бум дальше роботать..



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 января 2008 00:36
· Личное сообщение · #25

Jupiter пишет:
ЗЫ. Игра оказалась фигней -не понравилась...
аааа убил! :D

Не...пока только покалечил

Archer пишет:
HideToolz и не должен прятать прогу от IsDebuggerPresent, так что от этой проверки он бы и не помог.

А для чего галка антиотладка?

sniperZ пишет:
нед. пишешь VirtualSize = Section Alignment (скорее всего 1000h), а FileSize = File Alignment ( скорее всего 200h)..
после добавление выставляй Entry Point = Virtual Offset новой секции..тока старый запомни..
если в все получиться, отпиши, бум дальше роботать..

Ну если бум,тогда надо игрушку ставить Насчет "бум"-у тебя поэтому в подписи "наставник"?



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 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




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 18 января 2008 22:04
· Личное сообщение · #27

serkuz
ты предпочитаешь не читать того, что тебе написали выше?

во-первых нет смысла постить скрин с DOS заголовком.
во-вторых, у тя смещение твоей секции равно смещению первой секции - винда такой файл не загрузит.

тебе несколько раз уже написали про выравнивание!

давно бы уже выложил собственно оригинальный файл.

не поленись, почитай про формат PE, про то, что такое выравнивание и т.п.

-----
EnJoy!




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 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 и еп такое же..



Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 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.
Так что я не виноват в этом. Ладно,на этом можно урок закончить.Спасибо за науку.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 18 января 2008 23:51
· Личное сообщение · #30

serkuz пишет:
Так что я не виноват в этом.

бггг. теперь сделай так:
sniperZ пишет:
или исправь. у тебя Virtual Offset твоей секции = 3A3000 и еп такое же..

выставь токие зночения и грузани файл в ольгу..

serkuz пишет:
Ладно,на этом можно урок закончить.Спасибо за науку.

мля, никокого желания учиццо..


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› IsDebuggerPresent
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати