Сейчас на форуме: tyns777, JustLife, zds, 2nd, morgot, Rio, CDK123, tihiy_grom (+4 невидимых)

 eXeL@B —› Программирование —› Как програмно прочитать последнее значение в стеке у чужого процесса?
Посл.ответ Сообщение

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

Создано: 01 февраля 2009 07:38
· Личное сообщение · #1

Как прочитать последнее значение в стеке у чужого процесса?

сначала CreateProcess, потрассируем до нужного места и берем значение в стеке.
Но я не знаю как реализовать последнее.




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 01 февраля 2009 07:43
· Личное сообщение · #2

GetThreadContext+ReadProcessMemory?



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

Создано: 01 февраля 2009 08:19
· Личное сообщение · #3

dermatolog
А как релизовать? (МСДН я читал)



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 01 февраля 2009 08:36
· Личное сообщение · #4

Bonez92 пишет:
А как релизовать? (МСДН я читал)


читайте еще сталобыть до просветления



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

Создано: 01 февраля 2009 09:18
· Личное сообщение · #5

> NtSuspendthread
> NtGetContextThread - получаем Ss, Esp
> NtQueryInformationThread(ThreadDescriptorTableEntry) - получаем базу и лимит сегмента.
> CurrntStack = Selector.Base + Esp
> CurrentStack < SYSTEM_BASIC_INFORMATION.HighestUserAddress
> OldProtect = NtProtectVirtualMemory(CurrntStack, PAGE_READWRITE)
> NtReadVirtualMemory(CurrntStack)
> NtProtectVirtualMemory(CurrntStack, OldProtect)
> NtResumeThread
Получать базу сегмента обязательно(не всюду по дефолту база нулевая, поток может защищаться используя к примеру LDT).



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

Создано: 15 февраля 2009 07:33
· Личное сообщение · #6

Clerk
Попробую. Заранее спасибо.




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

Создано: 15 февраля 2009 09:19
· Личное сообщение · #7

Вы пробуйте, а потом уже пишите. Иначе это бесполезный флуд. Обращение не только к автору поста выше, а ко многим другим новичкам тоже.



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

Создано: 15 февраля 2009 12:09
· Личное сообщение · #8

Bonez92
Читай
hxxp://www.delphisources.ru/pages/faq/base/exploration_tracer.html



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 15 февраля 2009 12:38
· Личное сообщение · #9

Bonez92 пишет:
сначала CreateProcess, потрассируем до нужного места и берем значение в стеке.
Но я не знаю как реализовать последнее.

Если это программный трэйс, то прсто прочитать контекст жертвы на нужном месте.
А если иначе, то реадпроцесмемори.

Но что-то мне подсказыват, что даже идею ты представляешь себе не оч.хорошо.

-----
Я медленно снимаю с неё UPX... *FF_User*




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

Создано: 15 февраля 2009 13:14 · Поправил: Модератор
· Личное сообщение · #10

Archer
Это ты мне штоли.. да мне это как два пальца.., а пробовать - это уже сотни раз юзалось.

ты то тут причём. автору поста выше. непосредственно выше моего


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


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