eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: IsNull (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Загадочные импорты ASPR 2
Посл.ответ Сообщение

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

Создано: 6 сентября 2004 13:49 New!
Цитата · Личное сообщение · #1

Проблема именно с той версией Аспра, который "ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov". Может, это и v1.31, не знаю точно...

Имхо, Аспр последних версий маскирует одни АПИ под другие, обманывая тем самым Импреки/Ревержины.

Вопрос к знатокам Аспра со стажем: Как быть в данном случае (т.е. когда из ~130 вызовов АПИ Импрек определяет в лучшем случае 5)? Наковырял я вручную порядка 30 вызовов, но так ведь жить нельзя надо что-то делать...

Кроме того, пара из этих 5 вызовов были фэйками, например функцию GetModuleHandleA новый Аспр маскирует под GetProcAddress, специально видимо для любителей Импрека

Есть ли _эффективный_ способ идентификации IAT-функций в данном случае? thanks in advance.


Ранг: 332.0 (мудрец)
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 6 сентября 2004 14:00 New!
Цитата · Личное сообщение · #2

SubV пишет:
IAT-функций

в апрах 1.3 и выше, иат'а просто нет

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

Создано: 6 сентября 2004 14:21 New!
Цитата · Личное сообщение · #3

Mario555 пишет:
в апрах 1.3 и выше, иат'а просто нет


привожу кусок из import.txt, сделанный Импреком именно для данной версии Аспра (большинство функций определял вручную):

NbFunc: 00000065
kernel32.dll 023B LoadLibraryA
kernel32.dll 00EA FreeLibrary
kernel32.dll 0164 GetLocalTime
? 0000 00FC0000
? 0000 00FD0000
kernel32.dll 031C SetSystemPowerState
? 0000 00FF0000
kernel32.dll 03A3 lstrcmpi
kernel32.dll 01D6 GetVersionExW
kernel32.dll 0030 CloseHandle
kernel32.dll 004E CreateFileA
kernel32.dll 028B QueryPerformanceCounter
kernel32.dll 028C QueryPerformanceFrequency
? 0000 01040000
? 0000 01050000

.......

И что же это, как не IAT?


Ранг: 332.0 (мудрец)
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 6 сентября 2004 14:27 New!
Цитата · Личное сообщение · #4

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


Ранг: 332.0 (мудрец)
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 6 сентября 2004 14:29 New!
Цитата · Личное сообщение · #5

да, и ещё, - я смотрел аспр только на дельфийских прогах, т.к. на них аспр наиболее интересен и сложен. Что там с другими языками - не знаю...

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

Создано: 6 сентября 2004 14:41 New!
Цитата · Личное сообщение · #6

Но как я уже говорил... УЖ ОЧЕНЬ геморройно трассировать код каждой (из 130 функций) к реальным адресам. Надо с этим что-то делать...


Ранг: 332.0 (мудрец)
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 6 сентября 2004 14:48 New!
Цитата · Личное сообщение · #7

дык ты влезь в цикл формирования импорта и пропатчи его так, чтобы записывались реальные адреса апи, а не переходники...
ЗЫ время халявы с импреком прошло...

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

Создано: 6 сентября 2004 14:59 New!
Цитата · Личное сообщение · #8

Я делал так:

Целевая программа была скомпилена MSVC++ 7.0 / Linker 7.10. Так что, недолго думая, делаю идентичный по импортам проект на том же Визуал Си 7. Компилю, начинаю сравнивать в Olly вызовы базовых API с теми, что получились в сдампленной проге.

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

2 Mario555:

Каким образом можно побыстрее дойти до оного цикла в Оле? Отслеживать по SEHам али как?


Ранг: 332.0 (мудрец)
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 6 сентября 2004 15:11 New!
Цитата · Личное сообщение · #9

бряк на запись в иат или бряк на запись jmp [] в случае, когда иат не используется...

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

Создано: 10 сентября 2004 15:04 New!
Цитата · Личное сообщение · #10

@ Mario555

Спасибо за туториалы, правда сделал все по-своему Распаковал я таки второй Аспр! Ручками

Ранг: 145.8 (ветеран)
Статус: Участник
www.int3.net

Создано: 11 сентября 2004 03:54 New!
Цитата · Личное сообщение · #11

SubV
ну рассказывай тогда

Ранг: 1.0 (гость)
Статус: Участник

Создано: 11 сентября 2004 09:08 New!
Цитата · Личное сообщение · #12

а я распаковал сейчас ASPROtect 2.0 со всеми опциями защиты, статью написать???

Ранг: 384.1 (мудрец)
Статус: Участник
www.int3.net

Создано: 11 сентября 2004 11:30 New!
Цитата · Личное сообщение · #13

bi0w0rM
Конечно напиши, тем более у тебя хорошие туторы получаются ;)

Ранг: 65.7 (постоянный)
Статус: Участник

Создано: 11 сентября 2004 11:44 New!
Цитата · Личное сообщение · #14

звиняйте за дурацкий вопрос
Mario555 пишет:
бряк на запись в иат или бряк на запись jmp [] в случае, когда иат не используется...


а как их поставить?
в смысле определить что запись происходит именно в иат а не какая-нить расскриптовка.

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

Создано: 11 сентября 2004 12:03 New!
Цитата · Личное сообщение · #15

Halt пишет:
в смысле определить что запись происходит именно в иат


при трассировке оного куска ты определенно увидишь передачу истинных значений АПИ в некую подпрограмму, формирующую аспровский ИАТ. У меня бряк на этой процедуре был третьим.
 eXeL@B —› Основной форум —› Загадочные импорты ASPR 2

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS