Посл.ответ |
Сообщение |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 09 января 2007 18:05 · Личное сообщение · #1
В ковыряемом файле хочу добавить ручками вызов GetRegistrationInformation Аспра 1.xx (НЕ 2.xx!)
Как это сделать?
ps
Директории экспорта в файле нет.
| Сообщение посчитали полезным: |
|
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 09 января 2007 21:35 · Личное сообщение · #2
изучаешь формат директории экспорта в PE. Находишь в экзэхе адреса функций, идентифицируешь их по названию. Создаешь свою таблицу экспорта.
| Сообщение посчитали полезным: |
Ранг: 392.8 (мудрец), 108thx Активность: 0.26↘0.01 Статус: Участник REVENGE сила, БеХоЦе могила
|
Создано: 09 января 2007 22:12 · Личное сообщение · #3
0xy эта функция там уже есть, ее надо проэмулировать, а не добовлять (если ты про распакованную прогу)
----- StarForce и Themida ацтой! | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 09 января 2007 23:02 · Личное сообщение · #4
Maximus пишет:
эта функция там уже есть, ее надо проэмулировать, а не добовлять (если ты про распакованную прогу)
Да нет, это я пытаюсь перезащитить крякнутую прогу
BoOMBoX/TSRh пишет:
изучаешь формат директории экспорта в PE. Находишь в экзэхе адреса функций, идентифицируешь их по названию. Создаешь свою таблицу экспорта.
В моем файле нет экспорта.
А существует ли тулза, умеющая создавать экспорт с нуля?
| Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 09 января 2007 23:04 · Личное сообщение · #5
0xy пишет:
В моем файле нет экспорта.
BoOMBoX/TSRh пишет:
Создаешь свою таблицу экспорта.
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 09 января 2007 23:11 · Личное сообщение · #6
BoOMBoX/TSRh пишет:
Создаешь свою таблицу экспорта
Дык не умею я! Может тулза какая это умеет?
| Сообщение посчитали полезным: |
Ранг: 136.5 (ветеран) Активность: 0.03↘0 Статус: Участник
|
Создано: 09 января 2007 23:43 · Личное сообщение · #7
0xy пишет:
хочу добавить ручками вызов GetRegistrationInformation Аспра 1.xx (НЕ 2.xx!)
Интересно, зачем тебе это нужно? Хочешь получить рег. информацию от самого аспра?
| Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 09 января 2007 23:59 · Личное сообщение · #8
GetRegistrationInformation появилась в аспре SKE, если мне не изменяет память, а в 1.хх другие API.
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 09 января 2007 23:59 · Поправил: BoOMBoX · Личное сообщение · #9
tar4 пишет:
Интересно, зачем тебе это нужно? Хочешь получить рег. информацию от самого аспра?
Он хочет перезащитить прогу аспром и регить ее со своим ключом.
| Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 января 2007 00:02 · Поправил: BoOMBoX · Личное сообщение · #10
PE_Kill пишет:
GetRegistrationInformation появилась в аспре SKE, если мне не изменяет память
Изменяет Эта API была и есть в обычном аспре.
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 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.37↘0 Статус: Участник resreveR
|
Создано: 10 января 2007 05:39 · Личное сообщение · #12
0xy
в аспре 1.х - аспр апи построены на экспортах..
аспр сам вызывает функу...
в проге - ты просто обращаешься к [5fc278]
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 января 2007 05:43 · Личное сообщение · #13
если все верно прикрутил, то аспр сам все сделает после перезащиты
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 10 января 2007 05:54 · Личное сообщение · #14
lord_Phoenix пишет:
в проге - ты просто обращаешься к [5fc278]
Не очень то просто... А как выделить место для этой переменной? (арес 5ас278 -- из другой проги)
| Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 января 2007 06:01 · Личное сообщение · #15
похоже я не совсем правильно понял задачу.
т.е. эта прога вообще не была покрыта аспром?
если да, то можно заменить адрес 5ac278 на любой удобный.
этот адрес должен указывать на еще один адрес в котором лежит имя, т.е.
например: 5ac278->xxxxxx->"Oxy"
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 10 января 2007 06:13 · Поправил: 0xy · Личное сообщение · #16
BoOMBoX/TSRh пишет:
т.е. эта прога вообще не была покрыта аспром?
Была, но эта АПИ не юзалась.
BoOMBoX/TSRh пишет:
если да, то можно заменить адрес 5ac278 на любой удобный
Это понятно. Но как выделить этот "любой удобный" (или как найти 100% свободный)?
В секции кода наверное нельзя...
| Сообщение посчитали полезным: |
Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 10 января 2007 06:15 · Личное сообщение · #17
если прога уже была покрыта аспром - то покрой заново..аспр сам все сделает..
или тебе надо прикрутить к уже скомпиленной проги аспр апи?
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 10 января 2007 06:25 · Личное сообщение · #18
lord_Phoenix пишет:
если прога уже была покрыта аспром - то покрой заново..аспр сам все сделает..
или тебе надо прикрутить к уже скомпиленной проги аспр апи?
На мой взгляд, второе предложение более точно описывает мою ситуацию
Да, прога была покрыта, но этой АПИ в экспорте не было. Сейчас прога распакована, и я вручную прикрутил экспорт и вышеприведенный код. Загвоздка в том, как "описать" переменную, в которую Аспр должен запихнуть рег. данные, т.е. как корректно выделить DWORD памяти для новой переменной?
Мжет можно тупо сослаться на нули в секции кода? А запись прокатит?
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 10 января 2007 06:46 · Личное сообщение · #19
0xy пишет:
Мжет можно тупо сослаться на нули в секции кода? А запись прокатит?
Запись вроде катит. Но ни сочтет ли Аспр это патчем?
| Сообщение посчитали полезным: |
Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 10 января 2007 06:51 · Личное сообщение · #20
0xy
нет, все норм будет..а ты проверил уже? ;)
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 января 2007 06:54 · Личное сообщение · #21
имя и указатель, можешь разместить хоть в секции импорта
аспр будет считать патчем, любые изменения после защиты, но никак не до нее
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 10 января 2007 10:48 · Личное сообщение · #22
BoOMBoX/TSRh пишет:
аспр будет считать патчем, любые изменения после защиты, но никак не до нее
Ну почему же? Если я размещаю переменную в секции кода, а затем программно присваиваю ей значение--едь это есть изменение "кода", т.е. патч?
В общем, нашел нули в секции data и всё заработало Всем СПАСИБО!
| Сообщение посчитали полезным: |
Ранг: 116.1 (ветеран), 5thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 января 2007 11:04 · Личное сообщение · #23
0xy пишет:
Ну почему же? Если я размещаю переменную в секции кода, а затем программно присваиваю ей значение--едь это есть изменение "кода", т.е. патч?
Да, это так. Просто я не подумал, что ты будешь в секции кода переменные хранить...
| Сообщение посчитали полезным: |
Ранг: 87.8 (постоянный), 10thx Активность: 0.07↘0 Статус: Участник
|
Создано: 30 марта 2010 21:22 · Личное сообщение · #24
Я так подозреваю, что вызов этих АПИ нужно делать созданием отдельной секции? 004534FE 50 PUSH EAX 004534FF E8 FCCA9300 CALL 00D9000000453504 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 00D9000000453510 D233 SAL BYTE PTR DS:[EBX],CL Или есть другие варианты?
----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше | Сообщение посчитали полезным: |
Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 30 марта 2010 21:39 · Личное сообщение · #25
gena-m, некропостер пишет: Я так подозреваю, что вызов этих АПИ нужно делать созданием отдельной секции? 004534FE 50 PUSH EAX 004534FF E8 FCCA9300 CALL 00D90000 это обращения в виртуальую длл речь же шла о защите программы по новой, более 20-ти сообщений могли бы тебе прояснить ситуацию, если бы ты их читал внимательно. в твоём случае достаточно эмулировать апи. тема закрыта.
----- EnJoy! | Сообщение посчитали полезным: |