Сейчас на форуме: zombi-vadim, zds (+4 невидимых) |
eXeL@B —› Программирование —› Программа работает только внутри отладчика |
<< . 1 . 2 . 3 . 4 . >> |
Посл.ответ | Сообщение |
|
Создано: 23 сентября 2013 20:27 · Поправил: Envy12 · Личное сообщение · #1 Есть код: Code:
Первые 2 стркои закоментил тк с ними функция отказывается работать вне отладчика, без них все ок, как в отладчике так и без. В чем тут дело? |
|
Создано: 12 октября 2013 21:36 · Личное сообщение · #2 |
|
Создано: 12 октября 2013 22:18 · Поправил: DenCoder · Личное сообщение · #3 |
|
Создано: 13 октября 2013 01:22 · Личное сообщение · #4 |
|
Создано: 13 октября 2013 01:22 · Личное сообщение · #5 |
|
Создано: 13 октября 2013 02:18 · Личное сообщение · #6 |
|
Создано: 13 октября 2013 02:28 · Личное сообщение · #7 |
|
Создано: 13 октября 2013 02:32 · Личное сообщение · #8 |
|
Создано: 13 октября 2013 02:39 · Личное сообщение · #9 |
|
Создано: 13 октября 2013 04:38 · Поправил: DenCoder · Личное сообщение · #10 Envy12 А собственно по сабжу ( Чтобы убедиться в этом, проведём эксперимент: грузим в олли notepad.exe(часто люблю его мучать), инлайним такой код Code:
Что мы должны получить, делая всё время Step Over? По идее значения по трём адресам должны увеличиваться. Но на деле это оказывается совсем не так, когда доходим до адреса 010073BE - продолжает увеличиваться только значение по адресу 1009000, и даже более того - создан второй поток, а третий никак не появится, сколько бы мы шагов не делали. Но поставим бряк на 10073ce и отпустим - третий поток создался и даже увеличилсь две переменных. Отпустим ещё раз - значение одной переменной увеличится на один, а у второй может как вообще не измениться, так измениться на несколько больше. Продолжим опять по шагу - увеличиваться будет только одна переменная... Забавляйся и скажи почему? P.S. Всё будет так, наверное только если кол-во ядер > 1 ----- IZ.RU |
|
Создано: 13 октября 2013 14:14 · Личное сообщение · #11 |
|
Создано: 13 октября 2013 15:20 · Поправил: Envy12 · Личное сообщение · #12 DenCoder пишет: Не вижу ничего общего с инжектом. Кто-нибудь видит? ) Этот код я записываю в память процесса и запускаю с помощью CreateRemoteThread. Dr0p пишет: Вам что запилить нормальный код для инжекта ? Было бы неплохо DenCoder пишет: инлайним такой код Понятие инлайн имеет что-нибудь общее с тем что я делаю(createremotethread), или это совсем не то? |
|
Создано: 13 октября 2013 15:38 · Личное сообщение · #13 Envy12 пишет: Этот код я записываю в память процесса и запускаю с помощью CreateRemoteThread. Так пока ты не покажешь полностью код, все части, тебе никто не сможет сказать точно, где ошибка. Чего ты стремаешься, думаешь твою разработку украдут? Таких "разработок" полно, у каждого своих по 2-3. Сами по себе в данный момент они уже ни имеют никакой ценности. Envy12 пишет: Dr0p пишет:Вам что запилить нормальный код для инжекта ? Было бы неплохо Ты создал топик, чтобы тебе готовый работающий код дали? Или чтобы разобраться в своём? Ну дадут тебе код, и дальше что? Ты же не понимаешь принципов. И будут те же ошибки. Envy12 пишет: Понятие инлайн имеет что-нибудь общее с тем что я делаю(createremotethread) для проверки небольших кусков кода на асме мне удобно прямо в ольке писать ----- IZ.RU |
|
Создано: 13 октября 2013 16:10 · Личное сообщение · #14 DenCoder Всмысле полный код? Если код инжекта, то я могу показать: Code:
Конечно, лучше разобраться, но и против готового результата я ничего не имею. |
|
Создано: 13 октября 2013 16:38 · Личное сообщение · #15 Какой-то скрипт... перевожу на понятный Code:
С натяжкой можно назвать инжектом То есть то, что было в коде, мы извне создаём для этого ещё один поток, чтобы оно выполнялось в двух потоках )) 401173 - это адрес какой функции? ----- IZ.RU |
|
Создано: 13 октября 2013 16:51 · Личное сообщение · #16 |
|
Создано: 13 октября 2013 17:03 · Личное сообщение · #17 |
|
Создано: 13 октября 2013 17:19 · Личное сообщение · #18 |
|
Создано: 13 октября 2013 17:21 · Поправил: DenCoder · Личное сообщение · #19 У тебя нет потоков, которые бы нельзя было остановить. Подумай, прав ли Archer Самый элементарный способ проверки удачи инжекта - в диспетчере задач посмотреть, сколько потоков у checker1.exe ----- IZ.RU |
|
Создано: 13 октября 2013 17:35 · Поправил: SReg · Личное сообщение · #20 |
|
Создано: 13 октября 2013 17:36 · Личное сообщение · #21 |
|
Создано: 13 октября 2013 17:56 · Личное сообщение · #22 |
|
Создано: 14 октября 2013 15:51 · Личное сообщение · #23 |
|
Создано: 18 октября 2013 13:16 · Личное сообщение · #24 |
|
Создано: 19 октября 2013 10:53 · Личное сообщение · #25 |
|
Создано: 19 октября 2013 11:05 · Поправил: DenCoder · Личное сообщение · #26 Envy12 пишет: Я хочу чтобы прога останавливалась, когда мне надо, пробовал хоткеи - не вышло, теперь пытаюсь инжектами. Ошибка наверно в том что нельзя остановить главный поток. Я понял, что надо автору Изначально хоткиями автор хотел, чтобы нажал клавишу и - программа остановилась, нажал другую - поехала дальше. Но ввиду недостатков знаний не вышло. Поэтому решил сделать без хоткиев (но видимо также по нажатию клавиш), на инжектах - та же самая история. Ну реальное решение, и правда, NtSuspendProcess. Хотя у него всего один поток - тогда и SuspendThread сойдёт. Хотя я так никогда не делаю. Весь код, который нуждается в своевременной паузе или полной остановке, выношу в отдельный поток. Для паузы и стопа создаю 2 евента (hEvtPause = CreateEvent(...)), а также ещё один, чтобы снять с паузы и уже по нажатию кнопок один из евентов сигналит о нужном действии(SetEvent(hEvtPause)), что принимает работающий поток Code:
----- IZ.RU |
|
Создано: 19 октября 2013 14:16 · Поправил: dosprog · Личное сообщение · #27 DenCoder пишет: Я понял, что надо автору -- к сожалению, что ему надо - можно только угадывать... -- я вот думал, что вопрос с хоткеями успешно решён. Наверное, не угадал... Ну ничего себе - или сделать просто хоткеи, или сделать инжект - есть разница? UniSoft вот очень аккуратный пример выложил. Прямо-таки красивый. |
|
Создано: 19 октября 2013 20:30 · Поправил: Dr0p · Личное сообщение · #28 DenCoder > NtSuspendProcess. Хотя у него всего один поток - тогда и SuspendThread сойдёт. Второй раз повторяю, останавливать треды нельзя. У вас второй поток с большой вероятностью вызовет дедлок. Это отладочные апи. > создаю 2 евента Прежде чем лезть в ось, ознакомся с её обьектами. Хотя бы с синхропримитивами. EventPair есть, хотя вам он не знаком |
|
Создано: 19 октября 2013 20:36 · Личное сообщение · #29 |
|
Создано: 21 октября 2013 10:13 · Личное сообщение · #30 |
|
Создано: 21 октября 2013 16:09 · Поправил: Модератор · Личное сообщение · #31 DenCoder Это ты троль. У тебя самые поверхностные знания, ты бро обычо советуешь фигню, не шаря в вопросах. Я это очень давно заметил. Никто вменяемый треды суспендить не посоветует. И вручную реализовать обьекты ядра тоже. Code:
Это базовый примитив синхронизации и апи для его юзания. Они никогда не менялись и никогда не изменются. А андоки и прочая ... это сугубо твоя паранойя. ps: GetProcAddress(ntdll, "Zw*") нормальным считают тока те, кто ваще ... не понимает в нашей теме |
<< . 1 . 2 . 3 . 4 . >> |
eXeL@B —› Программирование —› Программа работает только внутри отладчика |