Посл.ответ |
Сообщение |
 Ранг: 138.1 (ветеран) Активность: 0.09↘0 Статус: Участник Одепт ЭкзэЛаба
|
Создано: 06 августа 2008 12:59 · Личное сообщение · #1
Это сново я, со своей проблемой, пишу такой код в лодере:
xor eax, eax
push offset @stack_overflow3
push fs:[eax]
mov fs:[eax], esp
@stack_overflow1:
call @stack_overflow1
@stack_overflow2:
jmp @stack_overflow2
@stack_overflow3:
pop eax
pop eax
pop esp
@stack_overflow4:
все нормально работает, но в накрытом протом ехе получаю такую бяку, что push offset @stack_overflow3 лежит обсалютно левый адрес но не как не адрес @stack_overflow3. Вчем может заключаться косяк?
| Сообщение посчитали полезным: |
|
Ранг: 15.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 августа 2008 13:23 · Личное сообщение · #2
Ну так когда ты пишешь лоадер в файл, адреса изменяются-то. А команда push offset @stack_overflow3 ложит в стек константу. Вот и получается, что в стек ложится адрес @stack_overflow3, который был в скомпиленом экзешнике, а не который должен быть в накрытом протом экзешнике.
| Сообщение посчитали полезным: |
 Ранг: 138.1 (ветеран) Активность: 0.09↘0 Статус: Участник Одепт ЭкзэЛаба
|
Создано: 06 августа 2008 13:28 · Личное сообщение · #3
Errins
А пофиксить подобный баг можно как-нибудь?
| Сообщение посчитали полезным: |
Ранг: 15.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 августа 2008 13:41 · Личное сообщение · #4
Можно. В своем проте при записи лоадера в файл можешь поправить все необходимые адреса относительно нового адреса. А можешь в самом лоадере получать значение регистра EIP, относительно него и работать. Получить его можно так, например:
call @1
@1:
pop eax
То есть в eax после выполнения такого кода будет находится offset @1.
Но, имхо, первый способ лучше
| Сообщение посчитали полезным: |
 Ранг: 126.7 (ветеран) Активность: 0.14↘0 Статус: Участник #CCh
|
Создано: 06 августа 2008 14:05 · Личное сообщение · #5
Создаешь список указателей на указатели, которые надо настраивать (ака релоки). И после того, как тебе стал известен адрес куда писать изменяешь эти адреса (настраиваешь). Вообще почитай про релоки.
----- invoke OpenFire | Сообщение посчитали полезным: |
 Ранг: 138.1 (ветеран) Активность: 0.09↘0 Статус: Участник Одепт ЭкзэЛаба
|
Создано: 06 августа 2008 15:05 · Личное сообщение · #6
Появилась идея, правда ламерская, сегодня попробую ее реализовать. В любом случае спасибо большое за ответы, попробую все предложенные варианты и тогда отпишусь об результате.
| Сообщение посчитали полезным: |
 Ранг: 138.1 (ветеран) Активность: 0.09↘0 Статус: Участник Одепт ЭкзэЛаба
|
Создано: 06 августа 2008 22:51 · Личное сообщение · #7
Всем спасибо, в косяке разобрался, всем спасибо за ответы/советы, delta offset рулит. Топ Закрываю.
| Сообщение посчитали полезным: |