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

 eXeL@B —› Вопросы новичков —› Кривая распаковка DLL PECompact 2.x или доп защита?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 04 мая 2013 21:58 · Поправил: buhanoid
· Личное сообщение · #1

Добрый день форумчане.
решил поковырять программку на досуге(мод для игры танки)-узнать как она работает.
С чем я столкнулся:
1.Защита от отладки-установил плагин HideOD(использовал OllyDbg)
2.Упакована PECompact-проверил Peid,в ольке нашел ОЕР,сделал дамп PE tools,починил его ImpREC(для новичка неплохо я считаю )
3.Пробую запустить-ничего,хотя Peid распознает сигнатуру нового фаила(Delphi)
Собственно вопрос:это я криво распаковал или там стоит еще какая-нибудь защита?(я подозреваю проверку хэша )
http://rghost.ru/45764050
Спасибо.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 04 мая 2013 22:07
· Личное сообщение · #2

Сам файл не смотрел, но "Relocation Table" должна спасти отца русской демократии.



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

Создано: 04 мая 2013 22:17
· Личное сообщение · #3

вот это если имелось ввиду http://en.academic.ru/dic.nsf/enwiki/497600 то там dll (насколько я понял значение,не судите строго)



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 04 мая 2013 22:30
· Личное сообщение · #4

http://uinc.ru/articles/41/

пункт 2.5
Директория перемещаемых элементов



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

Создано: 04 мая 2013 23:00 · Поправил: buhanoid
· Личное сообщение · #5

то есть благодаря алгоритму статического анализа файла NEOx'a реализованному в PETools достаточно выбрать распакованную dll и вызвать команду reloc rebuild?(сделал так-всё равно не инжектит никуда)




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 04 мая 2013 23:08
· Личное сообщение · #6

Релоки лучше нормально восстанавливать через relox/аналоги без всяких нервистиков. Благо, процедура тривиальная, и нет смысла использовать ненадёжные методы.



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

Создано: 05 мая 2013 00:11 · Поправил: buhanoid
· Личное сообщение · #7

сдампил запакованную длл два раза(запустил одновременно две с разными именами для различных ImageBase),сравнил их в Relox,получить секцию .relocs и подцепил её к распакованной dll-не работает.
Вроде все делал как нужно.Где может быть ошибка?
http://rghost.ru/45767561




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 06 мая 2013 10:47 · Поправил: Nightshade
· Личное сообщение · #8

WarPack.net тебя накажут)
Обрати внимание на такие строки
013629C8 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
013629CB |. B8 402A3601 MOV EAX,оригинал.01362A40 ; UNICODE "eJwrZ0hkKGIoAJLJDNkMuQypDMVAmMiQDmQBAFf4Bc8="
013629D0 |. E8 87D1F7FF CALL оригинал.012DFB5C

Это вызовы функции расшифровки строк. Например после данного вызова в ebp-8 будет расшифрованная строка.
Если пробежишься по таким строкам, то найдешь адрес сайта где происходит проверка ключа.
Сервак возвращает xml конфиг. Он правда пошифрован(вроде как rsa). Правда ключ расшифровки зашит там же рядом с адресом сайта. Лучше всего вообще убрать проверку ключа на сайте и сразу по нужному адресу(ebp-XX) положить расшифрованный xml. Ну а дальше - дерзай.
Бота я уже поломал ради интереса.



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

Создано: 06 мая 2013 13:36
· Личное сообщение · #9

Nightshade
спасибо за потраченное время,учту ваш совет.поломка для меня второстепенна(хотя конечно неплохо,но распространять его не буду-не хочу спровоцировать волну банов).Хочу посмотреть как именно он работает и проверить сетевую часть(меня терзают сомнения насчет отсылки паролей). DLL я распаковал с помощью tihiy_grom(оказывается я делал все правильно,но из-за недостатка опыта первый блин комом вышел).Сейчас читаю статьи про Ollydbg-пытаюсь понять как отлаживать инжектированную длл. Бряк LoadLibraryA не подходит.




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 06 мая 2013 13:47
· Личное сообщение · #10

buhanoid пишет:
DLL я распаковал с помощью tihiy_grom

- это что, новый приватный распаковщик?

-----
Array[Login..Logout] of Life


| Сообщение посчитали полезным: Gideon Vi, Abraham


Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 06 мая 2013 14:09 · Поправил: Nightshade
· Личное сообщение · #11

На сервак уходит строка вида
ключбота:0:хеш
Ключ боты ты вводишь сам. Хеш берется от строки дата+время.
Нет там никаких паролей и логинов(хотя не факт, что они в новой версии не изменят код)



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

Создано: 06 мая 2013 17:53
· Личное сообщение · #12

похоже опять какая-то техническая заминка:
открываю распакованную dll,search for-all refirenced string,выбираю какую-нибудь строку юникод.например
01361E3C |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
01361E3F |. B8 3C243601 MOV EAX,library_.0136243C ; UNICODE eJwrZ0hkKGIoAJLJDNkMuQypDMVAmMiQDmQBAFf4Bc8="
01361E44 |. E8 13DDF7FF CALL library_.012DFB5C
ставлю на 01361E3C-New origin here
жму F8 три раза-выполнить call.
Жму в дампе Go to expressions - ebp-1c - там мусор какой-то и длл вываливается с ошибкой.
Вроде всё по инструкций,но результата нет.Где я мог ошибиться?



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 06 мая 2013 18:02
· Личное сообщение · #13

ошибка видимо и в New origin here (нежелательно принудительно менять EIP у программ), и в том что переходить по адресу [EBP-1C] нужно до выполнения call, а не после.



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

Создано: 07 мая 2013 15:12 · Поправил: buhanoid
· Личное сообщение · #14

что-то у меня уже глаз замылился ,необходим взгляд со стороны.
делаю Search for-all string references, нахожу первую строку с юникодом eJwLZ0hkKGIoAJLJDNkM+gyGDHoMBgwAL/4DiA==, рядом с ней строки Cipher not initialized и повторы функций:
0142CA3B |. 50 PUSH EAX ; /Arg4
0142CA3C |. 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48] ; |
0142CA40 |. 50 PUSH EAX ; |Arg3
0142CA41 |. 6A 0E PUSH 0E ; |Arg2 = 0000000E
0142CA43 |. 68 515A5E26 PUSH 265E5A51 ; |Arg1 = 265E5A51
0142CA48 |. 8BC7 MOV EAX,EDI ; |
0142CA4A |. 8B0B MOV ECX,DWORD PTR DS:[EBX] ; |
0142CA4C |. 8B55 00 MOV EDX,DWORD PTR SS:[EBP] ; |
0142CA4F |. E8 70FCFFFF CALL library_.0142C6C4 ; \library_.0144C6C4
предполагаю,что это итерации для какого-то блочного алгоритма(в коде светились строки md5 и Rijndael(AES)).
после них
0142D3A9 . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0142D3AC . B8 F4D44201 MOV EAX,library_.0142D4F4 ; UNICODE "eJwLZ8hnKGLIYUhh8GdIYwhhSGTIY8hmKGbQY0hlqABiAGmKBi8="
0142D3B1 . E8 A627F8FF CALL library_.013AFB5C
соответственно ставлю бряк на 0142D3B1, чтобы ключ проинициализировался и можно было сделать EIP на другую строку с юникодом и в регистре ebp появилась бы расшифрованная строка.
Но DLL падает до этого бряка(точнее завершается корректно с кодом 0).
Как можно еще проинициализировать ключ?



Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 08 мая 2013 14:23 · Поправил: Vostol
· Личное сообщение · #15

Я уже поломал. Инфа 146%
Ставь бряк на следующей инструкции после 0142D3B1

Блин... похоже спугнул хацкера.



Ранг: -0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 мая 2013 18:48
· Личное сообщение · #16

Как успехи со взломом?



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

Создано: 10 мая 2013 20:13
· Личное сообщение · #17

Vostol
нет, не спугнули, смотрю мануалы по ольке от лены151, пытаюсь понять как подступиться к этой DLL.
B_TAHKE
пока только распаковал



Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 10 мая 2013 21:38
· Личное сообщение · #18

buhanoid , у тебя основная проблема заключается в неполном понимании того что делается на асме?



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

Создано: 10 мая 2013 22:04
· Личное сообщение · #19

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 10 мая 2013 23:11
· Личное сообщение · #20

buhanoid пишет:
Сейчас проблема крутится возле инициализации ключа шифрования-не получается инициализировать и сохранить работоспособность при смене EIP(чтобы посмотреть шифрованные строки).

о каком ключе шифрования идёт речь вообще?
строки накрыты base64, под ним бинарные данные - zlib поток
разжимаем и радуемся



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

Создано: 11 мая 2013 12:53
· Личное сообщение · #21

-=AkaBOSS=-
спасибо,строки расшифрованы.
UNICODE "eJwrZkhlKAHCTIY8hnSGYgY9hgqGXIYcBgBBeATx" "settings.xml" вот этот файл отсылает сервер,он скорее всего зашифрован этим ключом
UNICODE "eJyNks1Ow0AMhOdRqkooiUB9gEo9gLhwQZzgABzSsKRRQ1glodC351tXUfNTfg7ejjfj2bFrpy85ZYo11wvoVTPl/La61pVuOGMl" "не распаковался"
Теперь вопрос-как начать отладку? как автономной не получится,если программу акцептор загрузить в отладчике и потом инжектить в неё длл-как её потом там найти? Или есть еще какие-то способы?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 11 мая 2013 14:19 · Поправил: -=AkaBOSS=-
· Личное сообщение · #22

buhanoid пишет:
"settings.xml" вот этот файл отсылает сервер

этот файл создаётся лоадером дллки - WarPackLauncher.exe
там чистый XML
Code:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Settings><Language value="RU"/><WotExePath value=""/><LicenseKey value=""/></Settings>


buhanoid пишет:
"не распаковался"



buhanoid пишет:
Или есть еще какие-то способы?

http://www.ollydbg.de/Loaddll.htm
правда, надо будет обойти несколько проверок, типа GetModuleHandle("WorldOfTanks.exe") и попыток читать/писать память этого модуля

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

Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 11 мая 2013 15:12
· Личное сообщение · #23

buhanoid пишет:
инжектить в неё длл-как её потом там найти?

В ольге есть дивное сочетание Alt+E, "Executable Module"

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

Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 16 мая 2013 14:15
· Личное сообщение · #24

Как успехи? А то что то тишина...



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

Создано: 16 мая 2013 14:54
· Личное сообщение · #25

пока работа время съедает,в выходные опять за ребус возьмусь



Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 17 мая 2013 23:49
· Личное сообщение · #26

Так то могу и исходник дать, если попросишь. Я автор.



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

Создано: 18 мая 2013 09:14
· Личное сообщение · #27

Vostol
упс, какая щекотливая ситуация
за исходник длл буду благодарен



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

Создано: 19 мая 2013 20:04
· Личное сообщение · #28

программа в которую инжектится длл скорее всего тоже имеет какую то защиту от отладки(при запуске в Olly или при атаче завершается с кодом 0), сейчас пытаюсь обойти чтение/запись модуля чтобы длл не падала в OllyLoadDLL и отладить ее как автономную.



Ранг: -0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2013 21:11 · Поправил: B_TAHKE
· Личное сообщение · #29

ждем, ждем))

а можно ли вытащить "вангующий" автоприцел и использовать его как обычный мод? Или там так все зашифровано?



Ранг: 5.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 21 мая 2013 16:02
· Личное сообщение · #30

buhanoid, в dll и в лаунчере вообще никаких защит от отладки нет.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Кривая распаковка DLL PECompact 2.x или доп защита?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати