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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


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

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

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

 eXeL@B —› Протекторы —› Obsidium (Туторы, скрипты, плагины, ...)
<< . 1 . 2 . 3 .
Посл.ответ Сообщение

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

Создано: 26 апреля 2010 16:21 New!
Цитата · Личное сообщение · #1

народ у кого есть? или хотябы по подмене HWID

Ранг: 237.9 (наставник)
Статус: Участник

Создано: 20 июня 2018 10:56 · Поправил: TryAga1n New!
Цитата · Личное сообщение · #2

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

Чтобы легче было найти немного кода.

Функция расшифровки API:
Code:
  1. 00396F38    E8 300F0000     CALL 00397E6D     <= После вызова, в еах реальный АПИ адрес
  2. 00396F3D    85C0            TEST EAX,EAX
  3. 00396F3F    71 01           JNO SHORT 00396F42
  4. 00396F41    BC 0F84A8F7     MOV ESP,0xF7A8840F
  5. 00396F46    FFFF            ???                                      ; Unknown command
  6. 00396F48  ^ E9 BBFAFFFF     JMP 00396A08
  7. 00396F4D    EB 02           JMP SHORT 00396F51
  8. 00396F4F    3891 F066FF4E   CMP BYTE PTR DS:[ECX+0x4EFF66F0],DL
  9. 00396F55    0C EB           OR AL,0xEB
  10. 00396F57    030F            ADD ECX,DWORD PTR DS:[EDI]
  11. 00396F59    BC 6E8B1424     MOV ESP,0x24148B6E
  12. 00396F5E    EB 03           JMP SHORT 00396F63
  13. 00396F60    3D 7A0E83C4     CMP EAX,0xC4830E7A
  14. 00396F65    0C EB           OR AL,0xEB
  15. 00396F67    0209            ADD CL,BYTE PTR DS:[ECX]
  16. 00396F69    42              INC EDX
  17. 00396F6A    C3              RETN
  18. 00396F6B    EB 01           JMP SHORT 00396F6E
  19. 00396F6D    2E:8A8D 6D0F120>MOV CL,BYTE PTR CS:[EBP+0x1120F6D]
  20. 00396F74    EB 01           JMP SHORT 00396F77
  21. 00396F76    7C 66           JL SHORT 00396FDE
  22. 00396F78    8B06            MOV EAX,DWORD PTR DS:[ESI]
  23. 00396F7A    EB 01           JMP SHORT 00396F7D


Функция установки переходника, которую я ноплю, чтобы получить живой ИАТ:
Code:
  1. 00395AA8    E8 86040000     CALL 00395F33    <== После вызова, переписывается IAT на переходник
  2. 00395AAD    85C0            TEST EAX,EAX
  3. 00395AAF    72 79           JB SHORT 00395B2A
  4. 00395AB1    0F84 390C0000   JE 003966F0
  5. 00395AB7    E9 380F0000     JMP 003969F4
  6. 00395ABC    90              NOP
  7. 00395ABD    EB 02           JMP SHORT 00395AC1
  8. 00395ABF    00448B C2       ADD BYTE PTR DS:[EBX+ECX*4-0x3E],AL
  9. 00395AC3    EB 02           JMP SHORT 00395AC7
  10. 00395AC5    3A92 E9931B00   CMP DL,BYTE PTR DS:[EDX+0x1B93E9]
  11. 00395ACB    00EB            ADD BL,CH
  12. 00395ACD    03A1 7BE22D97   ADD ESP,DWORD PTR DS:[ECX+0x972DE27B]
  13. 00395AD3    35 1201EB03     XOR EAX,0x3EB0112
  14. 00395AD8    B9 3B358B98     MOV ECX,0x988B353B
  15. 00395ADD    8C0D 1201EB01   MOV WORD PTR DS:[0x1EB0112],CS
  16. 00395AE3    B3 8B           MOV BL,0x8B
  17. 00395AE5    75 08           JNZ SHORT 00395AEF
  18. 00395AE7    EB 02           JMP SHORT 00395AEB


После запуска и закрытия программы с занопленой функцией переходника имеем такой импорт:
Code:
  1. 00402000  7C80B741  kernel32.GetModuleHandleA
  2. 00402004  00BD0048
  3. 00402008  00000000
  4. 0040200C  7E3A07EA  user32.MessageBoxA
  5. 00402010  7E374A4E  user32.EndDialog
  6. 00402014  7E38B144  user32.DialogBoxParamA


А должен быть такой:
00402000 >74821245 kernel32.GetModuleHandleA
00402004 >748279B0 kernel32.ExitProcess
00402008 00000000
0040200C >7617FDAE user32.MessageBoxA
00402010 >761498FC user32.EndDialog
00402014 >7616CBA4 user32.DialogBoxParamA

{ Атач доступен только для участников форума } - 4r1 unpackme.exe

Добавлено спустя 20 минут
Из вышесказанного я делаю вывод, что мой метод восстановления импорта не правильный. Помнится при распаковке армадилы я делал нечто подобное, но в той ситуации перед выполнением кода с ОЕП, расшифровывался весь импорт, вне зависимости от вызовов. А здесь же только по факту вызова каждой апишки. Поэтому прошу наставить на путь истинный.

Ранг: 286.0 (наставник)
Статус: Модератор
CrackLab

Создано: 20 июня 2018 11:37 New!
Цитата · Личное сообщение · #3

Потому что ExitProcess эмулится. Obsidium эмулирует некоторые апи.
не знаю про какой ты магический переходник, уже давно обсид сохраняет только хеш от имени апи, парсится экспорт и сверяется хеш.

Добавлено спустя 1 минуту
а на путь истинный я тебя наставил, поставить еип и потрейсить, но ты не внял.
ну нет так нет

Ранг: 237.9 (наставник)
Статус: Участник

Создано: 20 июня 2018 11:59 New!
Цитата · Личное сообщение · #4

SReg, благодарю за наставление.
По поводу эмуляции ExitProcess я в принципе подозревал, просто ковырял еще другой семпл, там GetModuleHandleA не эмулился, хотя это делают праактически все проты и из-за этого я подумал, что обсид таким не балуется.

Теперь насчет переставить EIP, в данном частном случае это безусловно поможет. А если таких функций овер 9000? Каждую трейсить ведь не вариант.

Ранг: 286.0 (наставник)
Статус: Модератор
CrackLab

Создано: 20 июня 2018 12:34 New!
Цитата · Личное сообщение · #5

TryAga1n так скрипт напиши! Я не помню с наскока так, какие именно апи может эмулировать протектор, помню лишь некоторые это GetModuleHandle, ExitProcess, ExitThread, FreeResource, GetCommandLine, GetCurrentProcess, GetCurrentProcessId, LoadLibraryEx, lstrlenA и может быть еще забыл что-то, но их вручную прописать не проблема

| Сообщение посчитали полезным: TryAga1n


Ранг: 237.9 (наставник)
Статус: Участник

Создано: 20 июня 2018 12:52 New!
Цитата · Личное сообщение · #6

И еще один вопрос. Есть в паблике информация по определению точной версии прота? Не автоматические анализаторы, а именно алгоритм определения.


Ранг: 527.7 (!)
Статус: Участник
оптимист

Создано: 20 июня 2018 13:54 New!
Цитата · Личное сообщение · #7

TryAga1n
Проще написать скрипт для трейса таблици iat стоя на oep, тело расшифровки ищи в секции SFX(EP) по сигнатуре #558BEC81EC????????535657#

| Сообщение посчитали полезным: TryAga1n, Jaa


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

Создано: 27 марта 2019 12:03 · Поправил: zorkin New!
Цитата · Личное сообщение · #8

Реально ли так сложный Obsidium v1.5.2 x32 (Тот что в паблике крякнутый). У меня за анпак его стянули 200$. И времени ушло на это больше суток у человека. Работой я то доволен но предполагаю что версия 1.6 еще сложнее. Что скажете ?

И есть ли на этом форуме человек который может снимать его хотя бы за 100$ а не за 200$ ? И работа для него всегда найдется от меня.


Ранг: 523.4 (!)
Статус: Участник
5KRT

Создано: 28 марта 2019 01:03 New!
Цитата · Личное сообщение · #9

zorkin
Всё зависит от опций защиты. Давно как-то сидели с парнем с Djeck, писали скрипты под это дело

Ранг: 270.5 (наставник)
Статус: Участник

Создано: 4 апреля 2019 01:17 New!
Цитата · Личное сообщение · #10

У меня есть вопрос.

Для своих целей перебирал протекторы и наблюдал за некоторой их активностью(нужной мне). При просмотре активности этого прота её просто нет. Точнее говоря я наблюдал за релоками. В исходном апп они есть, после запуска под этим протом их нет. Такое в принципе возможно ?

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

Создано: 4 апреля 2019 09:37 New!
Цитата · Личное сообщение · #11

difexacaw пишет:
В исходном апп они есть, после запуска под этим протом их нет

там релоки крадутся в свою таблицу и применяются к коду в процессе распаковки

| Сообщение посчитали полезным: BlackCode


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

Создано: 4 апреля 2019 09:48 New!
Цитата · Личное сообщение · #12

tihiy_grom пишет:
там релоки крадутся в свою таблицу и применяются к коду в процессе распаковки

подобное еще наблюдается у пакера mpress.

Ранг: 270.5 (наставник)
Статус: Участник

Создано: 4 апреля 2019 11:08 · Поправил: difexacaw New!
Цитата · Личное сообщение · #13

Как такое возможно ?

Пусть есть некоторая область и в ней релок. Не известно до выполнения инструкции что релок в ней(в коде), как впрочем и начало инструкции не известно. Как тогда можно убрать релок - только лишь в процессе исполнения, когда управление получит инструкция с релоком. Или я что то не понял ?

Добавлено спустя 1 час 19 минут
BlackCode

Глянул mpress. Образ неизменен в памяти после запуска(если это можно назвать распаковкой"). Так что вы не правду говорите.

Ранг: 286.0 (наставник)
Статус: Модератор
CrackLab

Создано: 4 апреля 2019 12:34 New!
Цитата · Личное сообщение · #14

difexacaw
До обработки файла протектором, все релоки на месте. Если его нет в таблице, то протектор при распаковке его и не пофиксит.

Ранг: 270.5 (наставник)
Статус: Участник

Создано: 4 апреля 2019 13:05 New!
Цитата · Личное сообщение · #15

SReg

Поэтому и спросил, что то странное. Смотрите сами --> Link <--

Первый запуск это mpress. В логе исполняемые инструкции с релоками. У обсида там обращение к паре адресов из кучи буферов в которые прогружается код апи, а где само тело апп с релоками(те адресация) !?

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

Создано: 4 апреля 2019 22:35 · Поправил: tihiy_grom New!
Цитата · Личное сообщение · #16

difexacaw пишет:
Как такое возможно ?
Пусть есть некоторая область и в ней релок. Не известно до выполнения инструкции что релок в ней(в коде), как впрочем и начало инструкции не известно. Как тогда можно убрать релок - только лишь в процессе исполнения, когда управление получит инструкция с релоком. Или я что то не понял ?

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

Ранг: 270.5 (наставник)
Статус: Участник

Создано: 4 апреля 2019 23:17 New!
Цитата · Личное сообщение · #17

tihiy_grom

Я по простому сделал, вставил точку останова:

Code:
  1. 00406232 mov eax,dword ptr ds:[453504]
  2. 00406237 push ecx
  3. 00406238 push edx
  4. 00406239 hlt 
  5. 0040623A push 0CF0000
  6. 0040623F push 004347D6
  7. 00406244 push 00435A60
  8. 00406249 push 0
  9. 0040624B call dword ptr ds:[434418]
  10. 00406251 mov dword ptr ds:[44F9E0],eax
  11. 00406256 hlt

- код неизменный по своим адресам, со своими релоками. Это у меня там косяк какой то. А я уже было подумал что это какой то хитрый трюк, но увы.
<< . 1 . 2 . 3 .
 eXeL@B —› Протекторы —› Obsidium (Туторы, скрипты, плагины, ...)

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

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