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

 eXeL@B —› Основной форум —› Armadillo и DLL
Посл.ответ Сообщение

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

Создано: 09 апреля 2007 11:51
· Личное сообщение · #1

Доброго времени суток знатоки.

Попалась мне тут одна полезная программа и как водится за неё хотят денег.
PEiD говорит, что упакована Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks [Overlay]

Ни по одному из прочитанных мной туторов дойти до OEP мне не удалось.
Может кто-нибудь помочь разобраться куда-же спряталась эта замечательная точка входа.

Сама прога тут
www.riverblade.co.uk/products/visual_lint/downloads/VisualLintAddinSetup%20v1.5.4.67.zip - 3.73 Mb
DLL - VisualLint.dll

Буду благодарен за оказанную помощь.



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

Создано: 10 апреля 2007 15:31 · Поправил: Trinok
· Личное сообщение · #2

Мдя... Куча просмотров - 0 ответов.
Тогда может хоть кто-нибудь ответит почему происходит следующее:

1. Открываем олю и кидаем нашу Длл туда.
2. Оля останавливается на Entry Point Of Debagged DLL
3. Топчем один раз F9. Оля грузит пачку DLL
4. Опять останавливаемся на Entry Point Of Debagged DLL
Почему так происходит и с какого момента надо искать OEP?

Второй вопрос.
После пункта 4 ставим бряк на секцию text. Выпадаем в таком месте:

42117302 6A 0C PUSH 0C
42117304 68 28361542 PUSH VisualLi.42153628
42117309 E8 DE000000 CALL VisualLi.421173EC
4211730E 33C0 XOR EAX,EAX
42117310 40 INC EAX
42117311 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX
42117314 33FF XOR EDI,EDI
42117316 897D FC MOV DWORD PTR SS:[EBP-4],EDI
42117319 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
4211731C 3BF7 CMP ESI,EDI
4211731E 75 0C JNZ SHORT VisualLi.4211732C
42117320 393D 80331942 CMP DWORD PTR DS:[42193380],EDI
42117326 0F84 AC000000 JE VisualLi.421173D8
4211732C 3BF0 CMP ESI,EAX
4211732E 74 05 JE SHORT VisualLi.42117335
42117330 83FE 02 CMP ESI,2
42117333 75 31 JNZ SHORT VisualLi.42117366
42117335 A1 AC331942 MOV EAX,DWORD PTR DS:[421933AC]
4211733A 3BC7 CMP EAX,EDI
4211733C 74 0C JE SHORT VisualLi.4211734A
4211733E FF75 10 PUSH DWORD PTR SS:[EBP+10]
42117341 56 PUSH ESI
42117342 FF75 08 PUSH DWORD PTR SS:[EBP+8]
42117345 FFD0 CALL EAX

Похоже это на OEP или нет?
Если сейчас запустить ArmInline и сделать RebaseIAT и Remove Splices, то impRec восстанавливает импорт почти целиком.
Остаются неразрезолвенные функции. Если сделать им харакири через Cut thunk и пофиксить дамп, то длл окажется неработоспособной. VisualStudio просто падает без слов при попытке подгрузить такую Длл.

Где копать? Я хоть в правильном направлении иду?



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 апреля 2007 15:53
· Личное сообщение · #3

поиск по форуму рулит, я коротко писал пару раз как унпакнуть arma-dll

http://www.exelab.ru/f/action=vthread&forum=1&topic=6394



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 апреля 2007 15:53
· Личное сообщение · #4

и туторов полно



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

Создано: 10 апреля 2007 16:27
· Личное сообщение · #5

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

Твоим способом описанным по ссылке я пробовал и ничего не выходит.
При постановке бряка на секцию text я вываливаюсь вот в модуле CPU - main thread в таком месте:
0096E090 0FBE00 MOVSX EAX,BYTE PTR DS:[EAX]
0096E093 3305 085B9800 XOR EAX,DWORD PTR DS:[985B08]
0096E099 25 FF000000 AND EAX,0FF
0096E09E 8B0D 085B9800 MOV ECX,DWORD PTR DS:[985B08]
0096E0A4 C1E9 08 SHR ECX,8
0096E0A7 8B8485 B4ACFFFF MOV EAX,DWORD PTR SS:[EBP+EAX*4+FFFFACB4>
0096E0AE 33C1 XOR EAX,ECX
0096E0B0 A3 085B9800 MOV DWORD PTR DS:[985B08],EAX
0096E0B5 ^EB B8 JMP SHORT 0096E06F
0096E0B7 C705 74D29700 00>MOV DWORD PTR DS:[97D274],97DD00
0096E0C1 6A 19 PUSH 19
0096E0C3 58 POP EAX
0096E0C4 C1E0 02 SHL EAX,2
0096E0C7 8B0D D4159800 MOV ECX,DWORD PTR DS:[9815D4] ; VisualLi.422DC378
0096E0CD 8B3401 MOV ESI,DWORD PTR DS:[ECX+EAX]
0096E0D0 83F6 00 XOR ESI,0
0096E0D3 6A 14 PUSH 14
0096E0D5 58 POP EAX
0096E0D6 C1E0 02 SHL EAX,2
0096E0D9 8B0D D4159800 MOV ECX,DWORD PTR DS:[9815D4] ; VisualLi.422DC378
0096E0DF 8B0401 MOV EAX,DWORD PTR DS:[ECX+EAX]
0096E0E2 83F0 00 XOR EAX,0

При постановке бряка на секцию code я вываливаюсь в таком месте, совсем не похожем на OEP:
42117335 A1 AC331942 MOV EAX,DWORD PTR DS:[421933AC]
4211733A 3BC7 CMP EAX,EDI
4211733C 74 0C JE SHORT VisualLi.4211734A
4211733E FF75 10 PUSH DWORD PTR SS:[EBP+10]
42117341 56 PUSH ESI
42117342 FF75 08 PUSH DWORD PTR SS:[EBP+8]
42117345 FFD0 CALL EAX
42117347 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX
4211734A 397D E4 CMP DWORD PTR SS:[EBP-1C],EDI
4211734D 0F84 85000000 JE VisualLi.421173D8
42117353 FF75 10 PUSH DWORD PTR SS:[EBP+10]
42117356 56 PUSH ESI
42117357 FF75 08 PUSH DWORD PTR SS:[EBP+8]
4211735A E8 E5FEFFFF CALL VisualLi.42117244
4211735F 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX
42117362 3BC7 CMP EAX,EDI
42117364 74 72 JE SHORT VisualLi.421173D8
42117366 8B5D 10 MOV EBX,DWORD PTR SS:[EBP+10]
42117369 53 PUSH EBX
4211736A 56 PUSH ESI

Я не понимаю что я делаю не так, потому и просил помочь.



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 апреля 2007 17:56
· Личное сообщение · #6

Trinok пишет:
Я не понимаю что я делаю не так, потому и просил помочь.


После первого бряка на секции кода, сними его, выйди из цикла и установи бряк на секцию кода опять, следующим местом срабатывания бряка будет OEP:

421212F2 6A 0C PUSH 0C



Ранг: 146.7 (ветеран), 1thx
Активность: 0.070
Статус: Участник

Создано: 10 апреля 2007 18:48
· Личное сообщение · #7

Trinok
правильную ОЕР тебе BoOMBoX/TSRh дал...
учти, ArmInline в этом случае неправильно определяет размер IAT...
сплайс вроде нормально удаляет...
если интересно, можешь слить распакованную dll-ку...:
__http://rapidshare.com/files/25286367/VisualLint.rar
тока я релоки не фиксил...



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 апреля 2007 20:13
· Личное сообщение · #8

размер сплайсинга arminline тоже неправильно определяет, нужно самому проверять



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

Создано: 11 апреля 2007 11:10
· Личное сообщение · #9

Спасибо большое всем кто откликнулся.
По методу предложенному BoOMBoX/TSRh я действительно дошел до OEP.
Но вот засада. Дома у меня OEP именно такая как дал BoOMBoX/TSRh, т.е. 421212F2 6A 0C PUSH 0C
А вот на работе по тому же самому методу - 42117302 6A 0C PUSH 0C.
Почему так происходит?

Ещё один небольшой вопросик. Если после всего этого воспользоваться ArmInline, вспомнив при этом s0cpy и Av0id и задав верные значения (Length Of Spliced Code = 20000 и Length of Existing IAT = 958) , то все равно остаются неразрезолвенные функции - это правильно? Так и должно быть?
Или я неправильно определил значения для данных параметров?

И последний вопрос. Как понять присутствует в данной Dll антидамп или нет?

И самый последний вопрос уже к Av0id. Вот по этой ссылке http://www.exelab.ru/f/action=vthread&forum=1&topic=6394 ты упоминал фразу, что при этом не придется заморачиваться с восстановлением релоков. В данном случае это актуально? Т.е. ты бы сам посоветовал в моем случае использовать собственный лоадер Dll или штатный Олин?



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 11 апреля 2007 16:07
· Личное сообщение · #10

должно остатся две-три неразрезолвенные функции, если их много, то нужно грохнуть сначала "iat-elimination", а потом уже ийти к оеп, чтобы не мучаться с релоками юзай лоадер

разница в оеп вероятно из-за, опять же, релоков


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


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