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

 eXeL@B —› Протекторы —› DYAMAR OBFUSCATOR
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 01 июня 2010 10:10 · Поправил: pavka
· Личное сообщение · #1

DYAMAR OBFUSCATOR

Complete and easy to use Anti-Reverse Engineering Toolkit.
Hides and obfuscates private algorithms implemented in any
Windows application. Modifies x86 assembly language to
make the application structure incomprehensible.
www.dyamar.com/trial/DYAMARObfuscatorTrialSetup.exe




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 01 июня 2010 11:11
· Личное сообщение · #2

VM_prot одуванчик, по сравнению с DYAMAR OBFUSCATOR(Full)

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 01 июня 2010 13:01 · Поправил: Coderess
· Личное сообщение · #3

А есть в свободном доступе full?

PS: Попробовал запротектить файло, но обфускатор упал

Добавлено

Дома проверил работает

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 01 июня 2010 13:49
· Личное сообщение · #4

=) интересно , купить можно 25 баксов , скинуться по 5 кому интерсно и купить , хотя рано или поздно появится в сети .. на сайте не так уж и много сказано , интереснее смотреть в живую ... судя по примерам там тэмплэйты всеравно используются помимо графа ...обратная задача возможна , интересно а исключения есть сеховые ...

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 01 июня 2010 15:12
· Личное сообщение · #5

Как и у любого generic обфускатора, обфускация не стойкая (опять детишки взялись за обфускацию):

; не вызывают исключений, не меняют флаги:
1. mov ebx, ebx
2. lea esi, [esi]
3. xchg ebp, ebp
; FPU
wait
; Jcc в качестве NOP
jnz short $+2
; двойной обмен значений регистров через игры со стэком (может быть опасно)
1.
xchg eax, edi
mov [esp-0F00h], edi ; может возникнуть Access violation
mov edi, eax
mov eax, [esp-0F00h]
2.
xchg eax, ebp
push ebp
mov ebp, eax
pop eax
3.
mov [esp-0F00h], eax
mov eax, [esp-0F00h]
; двойной NOT (не меняет флаги, не вызывает исключений)
not edx
not edx
; JMP через мусор (безопасное удаление при отсутствии ссылок на мусор)
E9 03 00 00 00 00 00 90 ; величайшая дурость делать длинный прыжок - это сразу палится
; затирание стэка всякой фигнёй
1. mov word ptr [ebp-21Ch], cs
2. mov word ptr [ebp-240h], ds
3.
pushf
pop dword ptr [ebp-218h]
4. mov dword ptr [ebp-728], 10001h

Вот скрипт (небезопасный) который может убрать почти всё в демке:

Code:
  1. VAR start
  2. VAR end
  3.  
  4. GMEMI eip, MEMORYBASE
  5. MOV start, $RESULT
  6. GMEMI eip, MEMORYSIZE  
  7. MOV end, $RESULT
  8. REPL start, #8BC0#, #9090#, end // mov     eax, eax
  9. REPL start, #8BC9#, #9090#, end // mov     ecx, ecx
  10. REPL start, #8BD2#, #9090#, end // mov     edx, edx
  11. REPL start, #8BDB#, #9090#, end // mov     ebx, ebx
  12. REPL start, #8BE4#, #9090#, end // mov     esp, esp 
  13. REPL start, #8BED#, #9090#, end // mov     ebp, ebp
  14. REPL start, #8BF6#, #9090#, end // mov     esi, esi
  15. REPL start, #8BFF#, #9090#, end // mov     edi, edi
  16. REPL start, #8D00#, #9090#, end // lea     eax, [eax]
  17. REPL start, #8D09#, #9090#, end // lea     ecx, [ecx]
  18. REPL start, #8D12#, #9090#, end // lea     edx, [edx]
  19. REPL start, #8D1B#, #9090#, end // lea     ebx, [ebx]
  20. REPL start, #8D36#, #9090#, end // lea     esi, [esi]
  21. REPL start, #8D3F#, #9090#, end // lea     edi, [edi]
  22. REPL start, #87C0#, #9090#, end // xchg    eax, eax
  23. REPL start, #87C9#, #9090#, end // xchg    ecx, ecx
  24. REPL start, #87D2#, #9090#, end // xchg    edx, edx
  25. REPL start, #87DB#, #9090#, end // xchg    ebx, ebx
  26. REPL start, #87E4#, #9090#, end // xchg    esp, esp
  27. REPL start, #87ED#, #9090#, end // xchg    ebp, ebp
  28. REPL start, #87F6#, #9090#, end // xchg    esi, esi
  29. REPL start, #87FF#, #9090#, end // xchg    edi, edi
  30. REPL start, #F7D0F7D0#, #90909090#, end // (not     eax) * 2
  31. REPL start, #F7D1F7D1#, #90909090#, end // (not     ecx) * 2
  32. REPL start, #F7D2F7D2#, #90909090#, end // (not     edx) * 2
  33. REPL start, #F7D3F7D3#, #90909090#, end // (not     ebx) * 2
  34. REPL start, #F7D4F7D4#, #90909090#, end // (not     esp) * 2
  35. REPL start, #F7D5F7D5#, #90909090#, end // (not     ebp) * 2
  36. REPL start, #F7D6F7D6#, #90909090#, end // (not     esi) * 2
  37. REPL start, #F7D7F7D7#, #90909090#, end // (not     edi) * 2
  38. REPL start, #7500#, #9090#, end // jnz     short $+2   
  39. REPL start, #E900000000#, #9090909090#, end // jmp     $+5
  40. REPL start, #E901000000??#, #909090909090#, end // jmp     $+6
  41. REPL start, #E902000000????#, #90909090909090#, end // jmp     $+7
  42. REPL start, #E903000000??????#, #9090909090909090#, end // jmp     $+7
  43. REPL start, #9?89??2400F1FFFF8B??8B??2400F1FFFF#, #9090909090909090909090909090909090#, end
  44. // xchg    eax, ebx; mov [esp-0F00h], ebx; mov ebx, eax; mov eax, [esp-0F00h]
  45.  
  46. RET


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

ClockMan пишет:
VM_prot одуванчик

Отличная трава.

mak пишет:
=) интересно

как всегда, в общем-то

Забавно, что на сам прот обфускатор повесить забыли.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 01 июня 2010 17:00
· Личное сообщение · #6

int пишет:
Забавно, что на сам прот обфускатор повесить забыли.

Ну наверно понимают, что толку от него 0



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

Создано: 01 июня 2010 22:14
· Личное сообщение · #7

ничего интересного, с первых же шагов можно набить с 10 шаблонов, у аспра и то повкуснее код




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 01 июня 2010 22:46
· Личное сообщение · #8

Понаобещал автор всего, в демке 20-30% проивзодительность,
а в про версии будет 100% с трудом верится. В любом случае нужно ждать про версию.
Цена по отношению к арме, темиде - копейки, но не знаю стоит ли она своих денег!?

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 01 июня 2010 22:56
· Личное сообщение · #9

a little bird told me he was looking for someone to buy the source code...



Ранг: 16.5 (новичок), 5thx
Активность: 0.01=0.01
Статус: Участник
iOS expert

Создано: 01 июня 2010 23:25
· Личное сообщение · #10

int_256 пишет:
с первых же шагов можно набить с 10 шаблонов

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

Coderess пишет:
но не знаю стоит ли она своих денег!?

Может и стоит, в данном случае снять обфускацию не значит снять протектор. Оригинальную структуру файла восстановить не просто. В будущих версиях наверняка начнёт писать пакер и/или ВМ. И в полной версии есть вот это:
Instructions mutation
Если верить скриншоту, то может и не всё так плохо.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 02 июня 2010 00:52
· Личное сообщение · #11

int Демку заломать это круто

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 00:56 · Поправил: Модератор
· Личное сообщение · #12

ClockMan
Сравнивать вмпрот с говном на палочке это не круто.

P.S. Не понимаю чего народ испугался скриншотов на странице www.dyamar.com/product.html . Автор не профессионал, если для него более важно сделать красивый дизайн сайта и все эти гламурные картиночки, вместо того чтобы приложить листинги IDA реально "красивых" примеров обфускации. Я не думаю, что скрины из IDA были даны из демки, а в них я ничего не увидел интересного. Проект который появился только что, вряд ли можно сравнивать с вмпротом, который писался годами, и кстати на первых порах тоже был жалкой игрушкой (но уже тогда требовал скриптов или создания инструмента).



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 02 июня 2010 03:41
· Личное сообщение · #13

Натравил на файло - обычный hello world. почему-то по адресу 00401000h первые 19h полезных байт затёрлись всяким мусором....из-за этого весь смысл замечательного повествования был утерян....да и ваще убого как-то. не стоит это даже 25 баксов.....один только интерфейс вытягивает на то, чтобы впарить сей продукт какому-нибудь обворожительному нубу.

Code:
  1. 004040EB   6A 00            PUSH 0
  2. 004040ED   8BD2             MOV EDX,EDX
  3. 004040EF   9B               WAIT
  4. 004040F0   9B               WAIT
  5. 004040F1   68 2C104000      PUSH 0040102C                   ; ASCII "FASM Example"
  6. 004040F6   F7D6             NOT ESI
  7. 004040F8   F7D6             NOT ESI
  8. 004040FA   F7D6             NOT ESI
  9. 004040FC   F7D6             NOT ESI
  10. 004040FE   75 00            JNZ SHORT 00404100
  11. 00404100   68 00104000      PUSH 00401000
  12. 00404105   8D12             LEA EDX,DWORD PTR DS:[EDX]
  13. 00404107   90               NOP
  14. 00404108   9B               WAIT
  15. 00404109   6A 00            PUSH 0
  16. 0040410B   E9 02000000      JMP 00404112
  17. 00404110   90               NOP
  18. 00404111   9B               WAIT
  19. 00404112   F7D7             NOT EDI
  20. 00404114   F7D7             NOT EDI
  21. 00404116   75 00            JNZ SHORT 00404118
  22. 00404118   FF15 7C304000    CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; USER32.MessageBoxA

обфускатор.......сильно!



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

Создано: 02 июня 2010 11:44
· Личное сообщение · #14

>>сей продукт какому-нибудь обворожительному нубу.
Так ради этого и делается продукт. Кто разбирается в защите Все делает сам, на уровне исходников.

P.S. Хотя все равно ключ утечет (пример Hiew и artmoney).



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 15:57
· Личное сообщение · #15

SWR
солид и старфорс это не для нубов, так что не очень удачное заявление

В любом случае не полный нуб зайдёт сюда, на креклаб, увидит комментарии и сделает выбор в пользу нормальных протекторов.



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

Создано: 02 июня 2010 16:02 · Поправил: dyamar
· Личное сообщение · #16

ок



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 16:19
· Личное сообщение · #17

Ух ты, автор соотечественник.

dyamar
Можно ли глянуть файлик с PRO-версией? Публично комментировать не буду.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 02 июня 2010 16:29
· Личное сообщение · #18

dyamar пишет:
Все недочеты просьба сообщать

ога, вот так общими усилиями и сделаем ему нормальный обфускатор
за который он будет(наверное) получать деньги

-----
Лучше быть одиноким, но свободным © $me




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

Создано: 02 июня 2010 16:32 · Поправил: dyamar
· Личное сообщение · #19

ок



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 16:44
· Личное сообщение · #20

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



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

Создано: 02 июня 2010 16:54 · Поправил: dyamar
· Личное сообщение · #21

ок



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 02 июня 2010 17:33
· Личное сообщение · #22

фубля, даже codedoctor без проблем расчистил это говно
Code:
  1. 010617EA >  C78424 00F1FFFF>MOV DWORD PTR SS:[ESP-F00],7977
  2. 010617F5    68 E0150001     PUSH calc_Obf.010015E0
  3. 010617FA    C78424 00F1FFFF>MOV DWORD PTR SS:[ESP-F00],67C
  4. 01061805    B8 7C060000     MOV EAX,67C
  5. 0106180A    E8 B90FFBFF     CALL calc_Obf.010127C8
  6. 0106180F    898424 00F1FFFF MOV DWORD PTR SS:[ESP-F00],EAX
  7. 01061816    8BC7            MOV EAX,EDI
  8. 01061818    8BBC24 00F1FFFF MOV EDI,DWORD PTR SS:[ESP-F00]
  9. 0106181F    8BD8            MOV EBX,EAX
  10. 01061821    33D8            XOR EBX,EAX
  11. 01061823    89BC24 00F1FFFF MOV DWORD PTR SS:[ESP-F00],EDI
  12. 0106182A    8BF9            MOV EDI,ECX
  13. 0106182C    8B8C24 00F1FFFF MOV ECX,DWORD PTR SS:[ESP-F00]
  14. 01061833    53              PUSH EBX
  15. 01061834    9B              WAIT
  16. 01061835    8BC7            MOV EAX,EDI
  17. 01061837    8B3D 20100001   MOV EDI,DWORD PTR DS:[<&KERNEL32.GetModu>; kernel32.GetModuleHandleA
  18. 0106183D    9B              WAIT
  19. 0106183E    898C24 00F1FFFF MOV DWORD PTR SS:[ESP-F00],ECX
  20. 01061845    8BCB            MOV ECX,EBX
  21. 01061847    8B9C24 00F1FFFF MOV EBX,DWORD PTR SS:[ESP-F00]
  22. 0106184E    91              XCHG EAX,ECX
  23. 0106184F    93              XCHG EAX,EBX
  24. 01061850    FFD7            CALL EDI
  25. 01061852    66:8138 4D5A    CMP WORD PTR DS:[EAX],5A4D
  26. 01061857  ^ 0F85 1AE3FCFF   JNZ calc_Obf.0102FB77
  27.  
  28.  


-----
SaNX




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 17:42
· Личное сообщение · #23

SaNX пишет:
даже codedoctor

Фубля, выкиньте доктора. Не забываем, что проект на элементарных ловушках ломает функционал.

Ну другое дело, скриптами тут уже не разрулишь. Например, здесь требуется трассировка:
Code:
  1. mov     ecx, 7C6Fh
  2. add     ecx, 3E37h
  3. jnz     loc_10618D4

Вот это ещё можно убрать скриптами:
Code:
  1. call    $+5
  2. add     dword ptr [esp], 0Ch
  3. retn

Code:
  1. sub     esp, 0F00h

Что за любовь к числу 0xF00? Такие вещи тоже слишком палятся. Небольшое разнообразие бы не помешало. На эту же тему:
Code:
  1. mov     [esp-0F00h], eax
  2. mov     eax, eax
  3. mov     eax, [esp-0F00h]

Опять же плохо. Скрипту скормят шаблон, а в нормальном коде программы такое не встретится. Хотя бы вставлять между двумя инструкциями другие NOP-подобные операции разной длины. Пример:
Code:
  1. mov     [esp-8], eax
  2. push    0
  3. mov     [esp], ecx
  4. pop     ecx
  5. sub     esp, 8
  6. pop     eax
  7. add     esp, 4

Скрипту такое уже не скормишь. Устанешь шаблоны и правила набивать.

Удачи проекту. Комментировать больше не буду.



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

Создано: 02 июня 2010 17:43 · Поправил: dyamar
· Личное сообщение · #24

ок



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 июня 2010 17:50 · Поправил: Модератор
· Личное сообщение · #25

SaNX
жжошь))
Деобфускация и лечение после доктора:

push 70h ; функционал сломан - говорим спасибо доктору, за то что убрал "лишнюю" инструкцию
; правильно, нахуй она?
PUSH 010015E0
CALL calc_Obf.010127C8
;MOV DWORD PTR SS:[ESP-F00],EAX ; долбоёб детектед - функционал сломан (неправильно удалена инструкция "xchg eax, edi")
;MOV EAX,EDI
;MOV EDI,DWORD PTR SS:[ESP-F00]
;MOV EBX,EAX
XOR EBX,EBX
;MOV DWORD PTR SS:[ESP-F00],EDI ; опять поломка функционала
;MOV EDI,ECX
;MOV ECX,DWORD PTR SS:[ESP-F00]
PUSH EBX
;WAIT
;MOV EAX,EDI ; и снова поломка функционала
MOV EDI,DWORD PTR DS:[<&KERNEL32.GetModu>; kernel32.GetModuleHandleA
;WAIT
;MOV DWORD PTR SS:[ESP-F00],ECX
;MOV ECX,EBX
;MOV EBX,DWORD PTR SS:[ESP-F00]
;XCHG EAX,ECX
;XCHG EAX,EBX
CALL EDI
CMP WORD PTR DS:[EAX],5A4D
JNZ calc_Obf.0102FB77

SaNX
Доктор вот это хотя бы убрал?
Code:
  1. .dtext:010618B1                 mov     ecx, 7C6Fh
  2. .dtext:010618B6                 add     ecx, 3E37h
  3. .dtext:010618BC                 jnz     loc_10618D4




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 02 июня 2010 18:19 · Поправил: SaNX
· Личное сообщение · #26

Первую команду йа забыл скопипастить

Code:
  1. 010618B1    B9 A6BA0000     MOV ECX,0BAA6
  2. 010618B6    EB 1C           JMP SHORT calc_Obf.010618D4



int пишет:
MOV DWORD PTR SS:[ESP-F00],EAX ; долбоёб детектед - функционал сломан (неправильно удалена инструкция "xchg eax, edi"

нихуя не сломан. после калла в eax значение есть. А до кодедоктора заносилось из edi. Так что доктор все правильно тут сделал, нехуй гнать

блять, дальше проверил - тоже все правильно, содержимое регистров совпадает в ключевых местах.

-----
SaNX





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 03 июня 2010 00:50
· Личное сообщение · #27

Code doctor был сделан для аспра применять его к каким либо программа вообще бред

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 03 июня 2010 01:39
· Личное сообщение · #28

SaNX
Вот именно, нехуй гнать. Запусти программу и убедишься, что функционал сломан.

SaNX пишет:
после калла в eax значение есть. А до кодедоктора заносилось из edi.

Вот что было:
Code:
  1. .dtext:01061832                 xchg    eax, edi
  2. .dtext:01061833                 mov     [esp-0F00h], edi
  3. .dtext:0106183A                 mov     edi, eax
  4. .dtext:0106183C                 mov     eax, [esp-0F00h]

Ты согласен с тем, что этот блок ничего не меняет? Меняет стэк в небезопасной зоне - любая модификация ниже ESP может быть потёрта (и будет). Строго говоря, эти изменения уходят в никуда, а значит весь блок можно заменить на ничего или на NOP'ы. Влиять факт удаления может только в случае наличия RDTSC/CRC методов защиты. Более того, сама эта обфускация может оказаться фатальной. Если бы значение было выбрано поменьше, скажем 0Ch, факт поломки функционала был бы на лицо и поймать его в этом случае не сложно. Ну а при таком значение поломка тоже будет, но редко.

P.S. Бля думайте перед тем как писать. У одного ROL=SHL, другой не может проверить трассировкой факт поломки функционала.
P.P.S. Небольшой оффтоп:
SaNX пишет:
нихуя не сломан. после калла в eax значение есть

Ильфак тоже так думал, что после CALL'а всегда EAX меняется. А вот CheckESP его не меняет. Досадная ошибка привела к невозможности нормальной декомпиляции проектов скомпилированных в режиме _DEBUG, где CheckESP делается везде, где это может быть нужно.




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 03 июня 2010 05:25
· Личное сообщение · #29

> Меняет стэк в небезопасной зоне - любая модификация ниже ESP может быть потёрта (и будет).

Схуяли? До esp компиляторы ничего на хранят.



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 03 июня 2010 06:02 · Поправил: SaNX
· Личное сообщение · #30

int пишет:
SaNX
Вот именно, нехуй гнать. Запусти программу и убедишься, что функционал сломан.

бляяяя. Доктором деобфусцировал, запустил. Работает и считает даже бля. Ну и?

int пишет:
P.S. Бля думайте перед тем как писать. У одного ROL=SHL, другой не может проверить трассировкой факт поломки функционала.

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


PS: вот тебе после доктора файл
http://rapidshare.com/files/394654808/calc_Obfuscated1.rar.html

проверь сам хуле. Деобфусцировано до
mov ecx, 7C6Fh
add ecx, 3E37h
jnz loc_10618D4
включительно.

-----
SaNX



. 1 . 2 . >>
 eXeL@B —› Протекторы —› DYAMAR OBFUSCATOR
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати