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

 eXeL@B —› Программирование —› Свёртка.
<< . 1 . 2 . 3 .
Посл.ответ Сообщение


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

Создано: 02 мая 2019 17:22
· Личное сообщение · #1

Тут исходный материал --> Link <--

Я взял EP модуля, обработанного вмп и вручную почистил мусор. Это мелкая тех задача, я её решу на днях(те проблема с кседом и нужно продумать алгоритмы по графам). Суть не в этом.

Исходный код:
Code:
  1. 00BBBC8F   push 7D9D0FB3
  2. 00BBBC94   call 007EDEE3
  3. 007EDEE3   push ebp
  4. 007EDEE4   mov bp,1B1E
  5. 007EDEE8   cmovpe ebp,edx
  6. 007EDEEB   pushfd
  7. 007EDEEC   push ecx
  8. 007EDEED   push ebx
  9. 007EDEEE   push edx
  10. 007EDEEF   push edi
  11. 007EDEF0   and edx,ebp
  12. 007EDEF2   sal edx,cl
  13. 007EDEF4   push eax
  14. 007EDEF5   push esi
  15. 007EDEF6   rol si,0A8
  16. 007EDEFA   mov edx,0
  17. 007EDEFF   or edi,200E1338
  18. 007EDF05   xchg eax,esi
  19. 007EDF06   push edx
  20. 007EDF07   cmp dx,ax
  21. 007EDF0A   xor ecx,edi
  22. 007EDF0C   cbw
  23. 007EDF0E   mov esi,dword ptr ss:[esp+28]
  24. 007EDF12   cmp edi,2665657B
  25. 007EDF18   xor bx,466
  26. 007EDF1D   rcl ecx,33
  27. 007EDF20   sub esi,68CC28DC
  28. 007EDF26   rol di,0DA
  29. 007EDF2A   bswap esi
  30. 007EDF2C   btc eax,9E
  31. 007EDF30   ror esi,1
  32. 007EDF32   xor esi,6B3E5C22
  33. 007EDF38   add esi,edx
  34. 007EDF3A   sal cx,cl
  35. 007EDF3D   mov ebp,esp
  36. 007EDF3F   cmp esi,3F1237C1
  37. 007EDF45   sub esp,0C0
  38. 007EDF4B   movsx eax,di
  39. 007EDF4E   sar di,2B
  40. 007EDF52   ror bx,9A
  41. 007EDF56   mov ebx,esi
  42. 007EDF58   add ah,dl
  43. 007EDF5A   mov ecx,0
  44. 007EDF5F   sub ebx,ecx
  45. 007EDF61   lea edi,dword ptr ds:[7EDF61]
  46. 007EDF67   cmova eax,ebp
  47. 007EDF6A   btc eax,0E3
  48. 007EDF6E   sub esi,4
  49. 007EDF74   rcl eax,cl
  50. 007EDF76   shld ax,si,5D
  51. 007EDF7B   shr ah,cl
  52. 007EDF7D   mov eax,dword ptr ds:[esi]
  53. 007B5029   xor eax,ebx
  54. 00CCF9CC   inc eax
  55. 00CCF9CD   cmp bp,cx
  56. 00CCF9D0   neg eax
  57. 007EB5C2   dec eax
  58. 007EB5C3   test al,ah
  59. 007EB5C5   cmp esi,695251BF
  60. 007EB5CB   bswap eax
  61. 007EB5CD   test ecx,esi
  62. 007EB5CF   clc
  63. 007EB5D0   not eax
  64. 007EB5D2   cmp sp,dx
  65. 007EB5D5   xor ebx,eax
  66. 007EB5D7   cmp di,32B8
  67. 007EB5DC   cmp esi,esi
  68. 007EB5DE   add edi,eax
  69. 00C5D7DE   push edi
  70. 00C5D7DF   ret


После удаления мусора(если контекст сбрасывается, то предыдущая цепочка cfg мусорная, те clc/cmp -> clc мусор, так как EF.CF функция утеряна).

Code:
  1. 007EDEE3   push ebp
  2. 007EDEEB   pushfd
  3. 007EDEEC   push ecx
  4. 007EDEED   push ebx
  5. 007EDEEE   push edx
  6. 007EDEEF   push edi
  7. 007EDEF4   push eax
  8. 007EDEF5   push esi
  9. 007EDEFA   mov edx,0                         ; EDX = 0
  10. 007EDF06   push edx
  11.  
  12. 007EDF0E   mov esi,dword ptr ss:[esp+28]     ; ESI = [ARG]
  13. 007EDF20   sub esi,68CC28DC                              ; ESI - X
  14. 007EDF2A   bswap esi                         ; bswap ESI
  15. 007EDF30   ror esi,1                         ; ESI >>
  16. 007EDF32   xor esi,6B3E5C22                              ; ESI xor X
  17. 007EDF38   add esi,edx               ; ESI + EDX
  18.  
  19. 007EDF3D   mov ebp,esp
  20. 007EDF45   sub esp,0C0
  21. 007EDF56   mov ebx,esi               ; EBX = ESI
  22. 007EDF5A   mov ecx,0                         ; ECX = X
  23. 007EDF5F   sub ebx,ecx               ; EBX - ECX(0)
  24. 007EDF61   lea edi,dword ptr ds:[7EDF61]     ; EDI = [N]
  25. 007EDF6E   sub esi,4                         ; ESI - 4
  26.  
  27. 007EDF7D   mov eax,dword ptr ds:[esi]               ; EAX = [ESI]
  28. 007B5029   xor eax,ebx               ; EAX xor EBX
  29. 00CCF9CC   inc eax                                       ; EAX + 1
  30. 00CCF9D0   neg eax                                       ; -EAX
  31. 007EB5C2   dec eax                                       ; EAX - 1
  32. 007EB5CB   bswap eax                         ; swap EAX
  33. 007EB5D0   not eax                                       ; ~EAX
  34. 007EB5D5   xor ebx,eax               ; EBX xor EAX
  35.  
  36. 007EB5DE   add edi,eax               ; EDI + EAX
  37. 00C5D7DE   push edi                                 ; -> EDI
  38. 00C5D7DF   ret


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

В этом примере два блока с bswap. Это некоторая последовательность простых операций, которая известна и её нужно свернуть, те упростить.

Vamit сделал это через хардкод всех таких конструкций.

Это чистая математика, как сворачивать такие выражения, учитывая что там не просто функции, а булевый ксор и тп ?
Помогут в этом ли солверы, я их не использовал никогда ?

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

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 05 мая 2019 17:12
· Личное сообщение · #2

Alchemistry пишет:
Уже упоминался убердвиг уничтоживший всех аверов?

Это прошлый век. На подходе мотор, который уничтожит протекторы. Причем не какие-то там, а принципиально все. Все, Карл.




Ранг: 59.5 (постоянный), 326thx
Активность: 0.170.76
Статус: Участник

Создано: 06 мая 2019 23:38
· Личное сообщение · #3

difexacaw пишет:
Я тот же вопрос задал на кл https://exelab.ru/f/action=vthread&forum=6&topic=25760
Есть некоторая функция, не аналоговая", те булевые операции вперемешку с обычной математикой.
Как решать что то на подобие (A xor B) + C ?
Как понимаю нужна некоторая теория и теоремы, как это делается ?
Это нужно что бы свернуть морф/вм код.

И это спрашивает гений, который всем рекомендует учить мать часть. Вот это парадокс.




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

Создано: 06 мая 2019 23:42 · Поправил: difexacaw
· Личное сообщение · #4

yashechka

А что собственно не так с вопросом, нет никакой теории что бы на неё опираться в этой теме. Не ясно вообще ничего. Если функции есчо как то можно выделить, даже описать символически, что делать потом совершенно не понятно. А матчасти оказывается нет никакой.

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

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 06 мая 2019 23:54
· Личное сообщение · #5

difexacaw пишет:
А что собственно не так с вопросом

Не понятно, что ты в (a^b)+c упрощать собрался. Очевидно же, что это примитив. Подставляешь из dfg значения и вычисляешь.



Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 07 мая 2019 15:07
· Личное сообщение · #6

SegFault пишет:
Индий я смотрю на вас напали овощи довайте я вам помогу
просто скомпелируйте очередной мотор и объявите что вмпрот повержен
вы же так победили уже все протекторы


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



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 07 мая 2019 16:15
· Личное сообщение · #7

dma
эй "добрый овощ", вы случаем не в одной палате с тс лежали? чем он вам неугодил что вы тригеритесь до сих пор? в утку вашу нагадил?)



Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 07 мая 2019 16:30
· Личное сообщение · #8

Alchemistry пишет:
чем он вам неугодил что вы тригеритесь до сих пор? в утку вашу нагадил?)


Ну, во-первых, у ТС есть чувство юмора и он на новичков не обижается.
Во-вторых, вычисляю адептов ТС - вы уже второй после Плутоса.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 07 мая 2019 16:34
· Личное сообщение · #9

dma
Это, а можно по блату меня на первое место, а? Ну там подкрути свой вычислятор, свёртку ему сделай



Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 07 мая 2019 16:56
· Личное сообщение · #10

Alchemistry, вот не поверите - свертка показала, что вы единственный и неповторимый и никакого Плутоса там даже близко нет.



Ранг: 42.3 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 12 мая 2019 18:06 · Поправил: kampaster
· Личное сообщение · #11

Эх!
Как обычно, полезных тулзов никто не выкладывает.
______
Вот линки на скачивание тех книжек про которые mak писал:
--> Link <-- Reversible and Quantum Circuits: Optimization and Complexity Analysis 2016

И --> Link <-- Multiple Constant Multiplication Optimizations for Field Programmable Gate Arrays 2016
____

difexacaw пишет:
Я пытался найти два дока на которые вы ссылаетесь, но во первых они не доступны(один есть у гугла)

Нужно вот этой штукой пользоваться --> Link <--
А не гуглом(в таких случаях). Всем советую и будет Вам счастье =)




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

Создано: 12 мая 2019 19:13
· Личное сообщение · #12

kampaster

> полезных тулзов никто не выкладывает.

Ну и накой мне нужен какой то тулз ?
Или какие то доки ниочём, mak выдернул кусок из доков по логическим матрицам, без смысла что бы прокачать звезду. Какие нах матрицы, наркоман чтоле ??

> http://gen.lib.rus.ec

А что это за херня ?

-----
vx


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

Ранг: 42.3 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 12 мая 2019 19:31
· Личное сообщение · #13

difexacaw пишет:
Ну и накой мне нужен какой то тулз ?

Не тебе а народу.
__
difexacaw пишет:
> http://gen.lib.rus.ec

Теневая библиотека.




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

Создано: 12 мая 2019 19:34
· Личное сообщение · #14

kampaster

В запросы, тут тема есть для этого.

-----
vx




Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 12 мая 2019 19:45 · Поправил: dma
· Личное сообщение · #15

kampaster пишет:
Эх!
Как обычно, полезных тулзов никто не выкладывает.


Т.е. я так понимаю, вы по-прежнему что-то ждете и надеятесь на ТС? Похоже, что период времени на пути к коммунизму - вас ничему не научил. Ну, честно признаться, я тоже все еще верю в талант и неординарность ТС.


kampaster пишет:
http://gen.lib.rus.ec


http://gen.lib.rus.ec
http://libgen.io/

Эти адреса чем-то напоминают почерк difexacaw - названия разные, а результат одинаковый.
Это я к тому, что только difexacaw для любой обыденной и повседневной вещи - может придумать свой термин.




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

Создано: 12 мая 2019 20:12 · Поправил: difexacaw
· Личное сообщение · #16

dma

А почему тебя до сих пор не забанили ?
Ты ведь не из наших, те никакого отношения не имеешь к коденгу или RE etc.

Судя по твоей одной теме ты просто попиздеть зашёл --> Link <--

-----
vx


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


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

Создано: 12 мая 2019 20:41
· Личное сообщение · #17

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


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

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


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

Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 12 мая 2019 21:47
· Личное сообщение · #18

difexacaw пишет:
Судя по твоей одной теме ты просто попиздеть зашёл --> Link <--


Хотите сказать, что по вашим темам можно сделать какой-то другой вывод?


mak пишет:
Спасибо за комплимент .. умываю руки.


mak, ну вы нашли на кого обижаться. Он же все это делает не со зла, а с целью повеселить публику.
Моторы, графы, вмпроты - это все вторично. Главная цель - атмосфера схоластики и веселья на форуме.
Всерьез и близко к сердцу - это все воспринимать не нужно. Всерьез - это все воспринимает только f13nd.




Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

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

А по-моему ситуация с mak'ом очень поучительная для тех, кто искренне не понимает почему к клерку такое предвзятое отношение у большинства.

-----
2 оттенка серого


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


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 13 мая 2019 02:28
· Личное сообщение · #20

mak пишет:
Спасибо за комплимент .. умываю руки.


лол, уже? ) а ведь так отважно ринулся что-то инде объяснять.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 13 мая 2019 04:26 · Поправил: plutos
· Личное сообщение · #21

Gideon Vi пишет:
ведь так отважно ринулся что-то инде объяснять


Ты же сам говорил: "вы зацепились языками..." не помню как там дальше, но смысл ясен.
В этой компании только слово скажешь и понеслась моча по трубам.
А потом думаешь: "куда ушли 3 часа жизни...?" =>

-----
Give me a HANDLE and I will move the Earth.


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

Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 13 мая 2019 06:43
· Личное сообщение · #22

plutos пишет:
А потом думаешь: "куда ушли 3 часа жизни...?"


Ну, 3 часа из жизни - это еще то, что называется отделались легким испугом. От многих жизнь вообще уходит. Вот скажем, с Крисом Касперски что случилось? Никто же не знает. А может он накануне полемизировал с Инди на каком-нибудь форуме и утратил после этого интерес к жизни. Надо попросить Яшечку, чтобы он более детально изучил подробности инцедента. Или если кто помнит VodoleY - тоже ведь какая-то темная история. Уж не замешан ли и там ТС?



Ранг: 42.3 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 13 мая 2019 17:54
· Личное сообщение · #23

dma пишет:
Или если кто помнит VodoleY - тоже ведь какая-то темная история.

Что случилось с VodoleY? О___0



Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 13 мая 2019 18:11
· Личное сообщение · #24

kampaster пишет:
Что случилось с VodoleY? О___0


--> VodoleY. RIP. <--



Ранг: 30.0 (посетитель), 4thx
Активность: 0.030.01
Статус: Участник

Создано: 13 мая 2019 19:29
· Личное сообщение · #25

прочитал взахлеб) похлеще игр престолов

Добавлено спустя 6 минут
Вообще, интересно без шуток, не занимался подобным никогда, я правильно понимаю задачу- восстановить исходную функцию после ее мутирования? Если да то почему и в чем смысл восстановления атомарных операций на которых зациклился Инди ксор и арифметическое сложение?

Добавлено спустя 8 минут
Если задачей стоит свертка к изначальному коду после разбавления и мутации то не стоит ли выделить операции до порога процессорной атомарности и исключить лишние результат которых не используется или что ведут никуда ни к чему в логике куска кода? Не пинайте сильно))

Добавлено спустя 10 минут
Выше же были примеры с псевдо сишным листингом, разве это не единственно верный и возможный результат разбиения на си-логичные куски , исключения мусора, и возвращения в ассемблер?



Ранг: 15.8 (новичок), 3thx
Активность: 0.030.01
Статус: Участник

Создано: 15 мая 2019 05:37
· Личное сообщение · #26

По-моему эту кашу нужно анблочить, вернув для начала нормальный вид RISC-машины. Сейчас она XTS или как там в шифровании зовется, короче эту блочную хрень:
Code:
  1. ...
  2. mov eax,[rsi]
  3. xor  eax,ebx
  4. bswap eax
  5. push rax
  6. xor [rsp],rbx
  7. pop rbx
  8. add rsi,4
  9. mov ecx,[rsi]
  10. adc ecx,0x123
  11. rol rcx,0x14
  12. xor rbx,rcx
  13. ror rcx,0x20
  14. push rbx
  15. xor [rsp],rcx
  16. pop rbx
  17. add rax,rcx  //Та-дам! Константа дешифрована и готова к  использованию 
  18. mov [rbx-0x08],rax //Пихаем её на стек 
  19. ....

привести к:
Code:
  1. ...
  2. mov eax,[rsi]
  3. add rsi,4
  4. mov ecx,[rsi]
  5. add rax,rcx
  6. mov [rbx-0x08],rax
  7. ...

...как-нибудь.
Разумеется лента p-code тут уже предполагается якобы "расшифрованной" и скоректированой под этот неблочный код, там сразу лежат готовые части. В итоге это просто обыкновенная ВМ, ну, каждая псевдо-уникальна на вид, конечно, и со своим байт-кодом.

У автора протекта стопудового сначала строится самая обыкновенная стековая ВМ, затем раскладывается в реальные инструкции процессора с этими "островками". Затем добавляет мусор и наконец шифрует где и лента и интерпретатор туда-сюда частично меняются/подстраиваются чтобы совместимы стали.

Интересно, а TensorFlow можно применить для чистки/девирта кода как-нибудь? Либа нейросети от Nvidia: the way it's meant to be cracked ))




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

Создано: 15 мая 2019 08:13
· Личное сообщение · #27

bizkitlimp
С хэндлером подсчёта CRC что-то надо делать, если лента будет уже раскриптована. Элемент с этой вм-командной будет недостаточно убрать, надо убирать часть от vm_calcCrc вплоть до вызова функции через vm_exit или vm_call

Добавлено спустя 3 минуты
Либо таблицу с CRC перебить. Их 2 вообще-то и покриптованы тоже. Одна маленькая для кусков кода до 255 байт, вторая для больших кусков.

-----
IZ.RU




Ранг: 15.8 (новичок), 3thx
Активность: 0.030.01
Статус: Участник

Создано: 16 мая 2019 03:15 · Поправил: bizkitlimp
· Личное сообщение · #28

Походу лента всего лишь содержит оффсеты для кодов вида [rsp+reg] и адреса прыжков к примитивам. Я её уничтожил) Вообщем сделал сэмпл x64-dll https://www.sendspace.com/file/e2718h. Накрыл последним vmp который тут валялся. Исходник накрытого:
Code:
  1. function CheckActivation(const Value: Integer): BOOL;
  2. const
  3. Marker : PAnsiChar = 'Marker';
  4. Text   : PWideChar = 'The hardware has been changed and the program is now required to be re-activated. Contact your software developer.';
  5. Title  : PWideChar = 'Activation';
  6. asm
  7.   push      rbx
  8.   sub       rsp,$20
  9.   mov       ebx,ecx
  10.   lea       rcx,[Marker]
  11.   call      VMProtectBeginUltra
  12.   mov       ecx,ebx
  13.   cmp       ecx,$12345678
  14.   je        @@valid
  15.   call      GetDesktopWindow
  16.   mov       rcx,rax
  17.   lea       rdx,[Text]
  18.   lea       r8,[Title]
  19.   mov       r9d,$00000030        //MB_ICONWARNING
  20.   call      MessageBoxW
  21.   xor       eax,eax
  22.   jmp       @@exit
  23.  
  24. @@valid:
  25.   or        eax,-1
  26.  
  27. @@exit:
  28.   call      VMProtectEnd
  29.   add       rsp,$20
  30.   pop       rbx
  31. end;
  32.  
  33. exports
  34. CheckActivation;


Частичный результат (VM_ENTER) https://pastebin.com/wn1rJq7f
Код полностью рабочий, но расколдовал только до развилки je @@valid.
И кажется там не мусорные инструкции, это одна вм покрытая другой



Ранг: 44.8 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 31 мая 2019 19:24
· Личное сообщение · #29

difexacaw
клерк ну как дела, как обычно застрял на сложной задаче?




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

Создано: 31 мая 2019 22:02
· Личное сообщение · #30

SegFault

Ничего не застрял, покодить нужно - дизасм собрать, переписать конструктор(это долго).

-----
vx



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