Сейчас на форуме: zds, -Sanchez- (+8 невидимых)

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


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

Создано: 16 октября 2007 07:13
· Личное сообщение · #1

При восстановлении импорта у файла зашищёного StarForce возник вопрос как лучше (а вернее чем) изменить адресса экспорта у Kernel32 и User32 чтобы было следующим образом:
push addres API
ret



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 16 октября 2007 07:43
· Личное сообщение · #2

VaZeR
Или я не проснулся, или ты. Но возник вопрос, а зачем у системных либ менять адреса экспорта?



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 октября 2007 07:47
· Личное сообщение · #3

crc1
Мысль возможно интересна - можно попробовать патчить лоадером через хук LoadLibrary все апи системных либ, выставляя их в ret, затем брякнуться на оеп, тогда стар не сможет их разполиморфить и переходники будут прямые - типа push\ret, которые легко распознаются импреком

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




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

Создано: 16 октября 2007 07:57
· Личное сообщение · #4

VaZeR пишет:
При восстановлении импорта у файла зашищёного StarForce возник вопрос как лучше (а вернее чем) изменить адресса экспорта у Kernel32 и User32 чтобы было следующим образом:


Чем , готовые инструменты на паблике не видел , а так мысль верная , берешь какой нить компилятор и продвигаешь идею в реальность.




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

Создано: 16 октября 2007 07:59
· Личное сообщение · #5

Smon
В принципе я так и делаю, но я хотел узнать как это сделать всего один раз. Т.е. навсегда вписать эти переходники в системные библиотеки. А для этого нужно создать новую секцию у длл, вписать туда переходники, перебить адреса у экспорта, пересчитать контрольную сумму у файла. Нет ли такой уже готовой программы которая всё это бы сделала сама? Как вариант я думаю это можно реализовать в Olly с помощью скрипта.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 октября 2007 08:29
· Личное сообщение · #6

В данном случае основная на мой взгляд проблема - нельзя патчить используемые самим старом апи, иначе он рухнет в бсод...

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





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

Создано: 16 октября 2007 16:37
· Личное сообщение · #7

Smon пишет:
нельзя патчить используемые самим старом апи, иначе он рухнет в бсод...

ИМХО будет не бсод, а просто ошибка - апи юзаются на 3 кольце и при ошибке в нем будет не бсод, а простое падение программы (хз как в таком случае дела с дровом - может быть тоже не захочет жить без своего приложения).




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 16 октября 2007 19:30
· Личное сообщение · #8

Посмотри
wasm.ru/toollist.php?list=4
Advanced Dll Wrapper v0.0001
(http://wasm.ru/baixado.php?mode=tool&id=81)




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 16 октября 2007 20:15
· Личное сообщение · #9

crc1 пишет:
Или я не проснулся, или ты. Но возник вопрос, а зачем у системных либ менять адреса экспорта?

...ASMax'а читал??
Faza пишет:
берешь какой нить компилятор и продвигаешь идею в реальность

...точно.

-----
the Power of Reversing team





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

Создано: 16 октября 2007 20:22
· Личное сообщение · #10

Спасибо за советы!
Я сделал всё с помощью скрипта. Конечно добавил перед этим новую секцию к DLL.
Так вот не как не получается загрузить компьютер с этой DLL. Чек сумму пересчитал заново, аттрибуты секции поставил точно такие же как и у секции кода. Но ПК все равно показывает бсод. При чём перед этим выходят ошибки в драйверах видиокарты и winlogon. Это происходит ужё почти на появлении окна ПРИВЕТСТВИЯ винды. Наверное надо не все API фиксить. Но как теперь найти их.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 16 октября 2007 20:41
· Личное сообщение · #11

VaZeR

ASMax пишет:
Важно!
Чтобы Windows загрузилась с видоизмененными библиотеками, следует помнить что
1) размер добавляемых секций должен быть обязательно выровненным
2) user32.dll и advapi32.dll сначала грузятся в память kernel32.dll по адресу, отличному от ImageBase, поэтому в процедуре перехода на реальный адрес нужно это предусмотреть, например так:

call $+5
pop eax
xor ax,ax
add eax,real_addr
push eax
ret


-----
the Power of Reversing team





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

Создано: 17 октября 2007 04:45
· Личное сообщение · #12

DillerInc
Насчёт выравнивания секции нужно ещё посмотреть
А вот переходники я сделал следующим образом:
mov eax, eax
jmp API_addres
nop
...
В моём случае легче всего использовать Jmp так как ImageBase на него не влияет. И он всегда указывает на нужный адрес.



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

Создано: 17 октября 2007 05:44 · Поправил: Faza
· Личное сообщение · #13

Ну блин вы тут пол винды готовы перелопатить чтоб одну игрушку распоковать. Сплайсинг или как его там , перехватываешь функции на ходу или плугом\скриптом к ольке или лоадером, и все на этом, для востановления импорта вполне хватает.




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

Создано: 17 октября 2007 06:37
· Личное сообщение · #14

Да все ошибки из-за новой секции.
Я не как не могу понять какой ей дать размер.
В обще секция нужна размером 2000 - 3000 байт.

Faza ты прав, но это то же неплохой способ.



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

Создано: 17 октября 2007 10:55
· Личное сообщение · #15

Что-то терзают меня смутные сомнения, что твой способ будет работать..
Попытки такого рода мной уже предпринимались, стар тупо сделал в своем буфере:
jmp $+5
оригинальный код функции

Лучше делай как сказал Faza, сплайсингом и замени jmp API_addres на jmp [addr]




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

Создано: 18 октября 2007 08:29
· Личное сообщение · #16

Всё всем спасибо за ответы. Разобрался.


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