Сейчас на форуме: Rio, ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых)

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

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

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

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

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

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

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

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




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

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

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

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



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

Создано: 06 сентября 2004 14:21
· Личное сообщение · #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 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

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

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




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

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

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



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

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

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




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

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

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



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

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

Я делал так:

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

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

2 Mario555:

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




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

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

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



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

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

@ Mario555

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



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

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

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



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

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

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



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

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

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

-----
Подписи - ЗЛО! Нужно убирать!




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

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

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


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



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

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

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


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


 eXeL@B —› Основной форум —› Загадочные импорты ASPR 2
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати