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

 eXeL@B —› Протекторы —› Как руками добавить Аспротект-АПИ?
Посл.ответ Сообщение

Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 09 января 2007 18:05
· Личное сообщение · #1

В ковыряемом файле хочу добавить ручками вызов GetRegistrationInformation Аспра 1.xx (НЕ 2.xx!)
Как это сделать?

ps
Директории экспорта в файле нет.



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 09 января 2007 21:35
· Личное сообщение · #2

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




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 09 января 2007 22:12
· Личное сообщение · #3

0xy эта функция там уже есть, ее надо проэмулировать, а не добовлять (если ты про распакованную прогу)

-----
StarForce и Themida ацтой!




Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 09 января 2007 23:02
· Личное сообщение · #4

Maximus пишет:
эта функция там уже есть, ее надо проэмулировать, а не добовлять (если ты про распакованную прогу)

Да нет, это я пытаюсь перезащитить крякнутую прогу

BoOMBoX/TSRh пишет:
изучаешь формат директории экспорта в PE. Находишь в экзэхе адреса функций, идентифицируешь их по названию. Создаешь свою таблицу экспорта.

В моем файле нет экспорта.

А существует ли тулза, умеющая создавать экспорт с нуля?



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 09 января 2007 23:04
· Личное сообщение · #5

0xy пишет:
В моем файле нет экспорта.



BoOMBoX/TSRh пишет:
Создаешь свою таблицу экспорта.




Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 09 января 2007 23:11
· Личное сообщение · #6

BoOMBoX/TSRh пишет:
Создаешь свою таблицу экспорта

Дык не умею я! Может тулза какая это умеет?



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

Создано: 09 января 2007 23:43
· Личное сообщение · #7

0xy пишет:
хочу добавить ручками вызов GetRegistrationInformation Аспра 1.xx (НЕ 2.xx!)

Интересно, зачем тебе это нужно? Хочешь получить рег. информацию от самого аспра?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 09 января 2007 23:59
· Личное сообщение · #8

GetRegistrationInformation появилась в аспре SKE, если мне не изменяет память, а в 1.хх другие API.

-----
Yann Tiersen best and do not fuck




Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 09 января 2007 23:59 · Поправил: BoOMBoX
· Личное сообщение · #9

tar4 пишет:
Интересно, зачем тебе это нужно? Хочешь получить рег. информацию от самого аспра?


Он хочет перезащитить прогу аспром и регить ее со своим ключом.



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 января 2007 00:02 · Поправил: BoOMBoX
· Личное сообщение · #10

PE_Kill пишет:
GetRegistrationInformation появилась в аспре SKE, если мне не изменяет память



Изменяет Эта API была и есть в обычном аспре.



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 05:31 · Поправил: 0xy
· Личное сообщение · #11

Вернёмся к сабжу
Экспорт к файлу я прикрутил. А чего терерь делать с самой функцией (GetRegistrationInformation) ?
Вот, выковырял ее из одной проги:
00436F3C >/$ 55 PUSH EBP
00436F3D |. 8BEC MOV EBP,ESP
00436F3F |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00436F42 |. A3 78C25F00 MOV DWORD PTR DS:[5FC278],EAX
00436F47 |. 5D POP EBP
00436F48 . C2 0400 RET 4

Но как ее юзать? Вызывать и смотреть EAX? Тогда накуя нужна четвертая строка?
Или Аспр сам ее вызывает, и нужно просто читать константу типа [5fc278]?
Или уместны оба способа?




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 10 января 2007 05:39
· Личное сообщение · #12

0xy
в аспре 1.х - аспр апи построены на экспортах..
аспр сам вызывает функу...
в проге - ты просто обращаешься к [5fc278]

-----
Тут не могла быть ваша реклама




Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 января 2007 05:43
· Личное сообщение · #13

если все верно прикрутил, то аспр сам все сделает после перезащиты



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 05:54
· Личное сообщение · #14

lord_Phoenix пишет:
в проге - ты просто обращаешься к [5fc278]

Не очень то просто... А как выделить место для этой переменной? (арес 5ас278 -- из другой проги)



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 января 2007 06:01
· Личное сообщение · #15

похоже я не совсем правильно понял задачу.
т.е. эта прога вообще не была покрыта аспром?
если да, то можно заменить адрес 5ac278 на любой удобный.

этот адрес должен указывать на еще один адрес в котором лежит имя, т.е.

например: 5ac278->xxxxxx->"Oxy"



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 06:13 · Поправил: 0xy
· Личное сообщение · #16

BoOMBoX/TSRh пишет:
т.е. эта прога вообще не была покрыта аспром?

Была, но эта АПИ не юзалась.

BoOMBoX/TSRh пишет:
если да, то можно заменить адрес 5ac278 на любой удобный

Это понятно. Но как выделить этот "любой удобный" (или как найти 100% свободный)?
В секции кода наверное нельзя...




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

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

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

-----
Тут не могла быть ваша реклама




Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 06:25
· Личное сообщение · #18

lord_Phoenix пишет:
если прога уже была покрыта аспром - то покрой заново..аспр сам все сделает..
или тебе надо прикрутить к уже скомпиленной проги аспр апи?

На мой взгляд, второе предложение более точно описывает мою ситуацию
Да, прога была покрыта, но этой АПИ в экспорте не было. Сейчас прога распакована, и я вручную прикрутил экспорт и вышеприведенный код. Загвоздка в том, как "описать" переменную, в которую Аспр должен запихнуть рег. данные, т.е. как корректно выделить DWORD памяти для новой переменной?
Мжет можно тупо сослаться на нули в секции кода? А запись прокатит?



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 06:46
· Личное сообщение · #19

0xy пишет:
Мжет можно тупо сослаться на нули в секции кода? А запись прокатит?

Запись вроде катит. Но ни сочтет ли Аспр это патчем?




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 10 января 2007 06:51
· Личное сообщение · #20

0xy
нет, все норм будет..а ты проверил уже? ;)

-----
Тут не могла быть ваша реклама




Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 января 2007 06:54
· Личное сообщение · #21

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



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2007 10:48
· Личное сообщение · #22

BoOMBoX/TSRh пишет:
аспр будет считать патчем, любые изменения после защиты, но никак не до нее

Ну почему же? Если я размещаю переменную в секции кода, а затем программно присваиваю ей значение--едь это есть изменение "кода", т.е. патч?

В общем, нашел нули в секции data и всё заработало Всем СПАСИБО!



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 января 2007 11:04
· Личное сообщение · #23

0xy пишет:
Ну почему же? Если я размещаю переменную в секции кода, а затем программно присваиваю ей значение--едь это есть изменение "кода", т.е. патч?



Да, это так. Просто я не подумал, что ты будешь в секции кода переменные хранить...



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

Создано: 30 марта 2010 21:22
· Личное сообщение · #24

Я так подозреваю, что вызов этих АПИ нужно делать созданием отдельной секции?
004534FE 50 PUSH EAX
004534FF E8 FCCA9300 CALL 00D90000
00453504 AD LODS DWORD PTR DS:[ESI]
00453505 8B75 FC MOV ESI,DWORD PTR SS:[EBP-4]
00453508 3375 F8 XOR ESI,DWORD PTR SS:[EBP-8]
0045350B E8 F0CA9300 CALL 00D90000
00453510 D233 SAL BYTE PTR DS:[EBX],CL

Или есть другие варианты?

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 30 марта 2010 21:39
· Личное сообщение · #25

gena-m, некропостер пишет:
Я так подозреваю, что вызов этих АПИ нужно делать созданием отдельной секции?
004534FE 50 PUSH EAX
004534FF E8 FCCA9300 CALL 00D90000


это обращения в виртуальую длл
речь же шла о защите программы по новой, более 20-ти сообщений могли бы тебе прояснить ситуацию, если бы ты их читал внимательно.
в твоём случае достаточно эмулировать апи.
тема закрыта.

-----
EnJoy!



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