Сейчас на форуме: asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› помогите пожалуйста с SYSENTER.
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 июля 2010 13:19
· Личное сообщение · #1

наткнулся в программе на такое вот чудо
77D664F0 > 8BD4 MOV EDX,ESP
77D664F2 0F34 SYSENTER
77D664F4 > C3 RETN


ESP=0012F740
EDX=7FFE0300
EAX 00000130

я так понял после выполнения SYSENTER программа обрашается к dll которая валяется в папке с программой, что то там химичит) и говорит запустит вторую копию или нет)
Собственно вопрос)
как попасть в эту ддл после выполнения команды SYSENTER, ну то есть глянуть что там происходит) понят что изменить чтобы запустилась вторая копия)




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

Создано: 13 июля 2010 14:10
· Личное сообщение · #2

РТФМ. сисентер-вызов функций ядра.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 июля 2010 14:29 · Поправил: DiKill
· Личное сообщение · #3

Запускаю программу. Она висит в памяти. Скажем 1.exe.
Пытаемся запустить вторую копию.
Через olly дохожу до этого места. Нажимаю F8. Доходим до С3. Ничего не происходит.
Через olly дохожу до этого места. Нажимаю F8. Доходим до SYSENTER. Убиваю в процессах 1.exe. Нажимаю F8. Программа запускается. То есть программе по барабану что происходило до этого. главное в процессах не висит 1.exe значит можно запускаться..
Я просто подумал что на этом моменте она лезет в ддл которая лежит рядом с ехе)
Без ддл она не запускается)




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

Создано: 13 июля 2010 16:18
· Личное сообщение · #4

Я вообще не понимаю, зачем ты полез в дебри системных библиотек. Чтобы удостовериться, что функции соответствуют документации, что мелкомягкие не обманывают? В 99.9% в либы лезть просто незачем.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 июля 2010 16:43 · Поправил: DiKill
· Личное сообщение · #5

Хочу запустить вторую копию программы. Верней даже не программы) а онлайн игры)
Подскажите пожалуйста как перехватить использование ддлки?)
Я думаю что там идет проверка на возможность запуска второго окна.



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 13 июля 2010 18:02 · Поправил: Gerpes
· Личное сообщение · #6

Гамегвард есть? там могут дрова стоять, которые следят.
имхо- бесполезный труд, на сервере же проверяется все.
DiKill пишет:
Я думаю что там идет проверка на возможность запуска второго окна.

попробуй имя окна поменять. если не сработает, то хз



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 июля 2010 18:53 · Поправил: DiKill
· Личное сообщение · #7

нету там защит никаких)
lumi.exe
RagexeRE.bin
injlumi_re.dll
Вот три файла) первый файл запускает второй)
если второй переименовать в ехе, то он не запуститься, а выдаст ошибку о какой то ддлке)
кстати да, имя окна каждый раз разное)

нет на серваке ничего не проверяется)




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 14 июля 2010 00:24
· Личное сообщение · #8

DiKill
тебе видимо нужно смотреть апи CreateProcess, что бы разобраться что и как запускается и запускать игру уже без лаунчера. ну и самая простая проверка на ужезапущеность) делается через CreateMutex.

-----
zzz




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 14 июля 2010 07:18
· Личное сообщение · #9

77D664F0 - это сервисный шлюз, в Eax номер сервиса.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 июля 2010 09:46 · Поправил: DiKill
· Личное сообщение · #10

004010B8 FF15 1CC04000 CALL DWORD PTR DS:[<&KERNEL32.GetStartup>; kernel32.GetStartupInfoA
004010D9 FF15 14C04000 CALL DWORD PTR DS:[<&KERNEL32.CreateProc>; kernel32.CreateProcessA
00401108 FF15 38C04000 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; kernel32.GetCurrentDirectoryA
00401010 FF15 24C04000 CALL DWORD PTR DS:[<&KERNEL32.VirtualAll>; kernel32.VirtualAllocEx
00401039 FF15 44C04000 CALL DWORD PTR DS:[<&KERNEL32.WriteProce>; kernel32.WriteProcessMemory
0040104D FF15 34C04000 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; kernel32.GetModuleHandleA
00401054 FF15 20C04000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; kernel32.GetProcAddress
00401065 FF15 0CC04000 CALL DWORD PTR DS:[<&KERNEL32.CreateRemo>; kernel32.CreateRemoteThread

Вот так происходит запуск. Может он пытается создать второе окно в той же памяти...
RagexeRE.bin тут нашел мутекс)

Через Process Monitor нашел мутантика)
Mutant \Sessions\1\BaseNamedObjects\injlumi_re.dll
Сделал так чтобы игра запускалась через вот такие вот файлы
lumi.exe
1.exe
1.dll
Но мутант не сменился на \Sessions\1\BaseNamedObjects\1.dll, а остался прежним.
После убийства мутанта вторая копия перестала в памяти оставлять процесс)




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 14 июля 2010 14:00 · Поправил: zeppe1in
· Личное сообщение · #11

DiKill
ну похоже будто лоадер инжектит длл. может добавить в импорт эту длл. или добавить код c loadlibrary, чтобы этот RagexeRE.bin норм запускался без лоадера. а создание мутекса надо пропатчить что бы был не именованный, там пустую строку или ноль передавать не помню.
ПС: игра много весит? интересная?)

-----
zzz




Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 14 июля 2010 15:58
· Личное сообщение · #12

DiKill
Что-то мне подсказывает, что ты не туда копаешь. Исходи из сути проблемы. Тебе нужно запустить вторую копию программы, а она при старте проверяет запущен ли процесс с таким же именем как сама. Значит ставь бряки на LoadLibrary, CreateProcess, ExitProcess (по нему прога вырубается, если уже запущена).



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 июля 2010 18:51
· Личное сообщение · #13

в том то и дело что ехе шник не вырубается) а продолжает так же висет) окно с игрой не появляется)
RagexeRE.bin запустил без лоадера) но там ероры всякие полезли) надо разбираться.

www.lumiro.net/ интересная) но старенькая) графика уже не та)



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

Создано: 15 июля 2010 00:53
· Личное сообщение · #14

запуск под разными пользователями не пробовал как в линейке?



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 июля 2010 09:41
· Личное сообщение · #15

нет. а это как?



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

Создано: 15 июля 2010 11:14 · Поправил: Neo32
· Личное сообщение · #16

DiKill пишет:
нет. а это как?


создаешь в винде еще одного пользователя. заходишь с него и запускаешь. делаешь смену пользователя и заходишь под другим пользователем, тоже запускаешь ). и естественно в игре под разными логинами заходишь


 eXeL@B —› Вопросы новичков —› помогите пожалуйста с SYSENTER.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати