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

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

 eXeL@B —› Протекторы —› Crack SecuROM & DENUVO
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >>
Посл.ответ Сообщение

Ранг: 411.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 марта 2012 14:24 · Поправил: 21 июля 2016 20:02 ELF_7719116 New!
Цитата · Личное сообщение · #1


CODEX UNVIRTUALIZE DENUVO/VMProtect
Code:
  1. Release Notes:
  2.  
  3. This is an experimental Proof of Concept release where the Denuvo DRM
  4. and VMProtect have been removed completely from the main executable.
  5. The main idea of this project was to verify whether Denuvo affects
  6. CPU usage and overall performance of this game. We noticed faster
  7. loading times but will leave the rest of the performance comparison
  8. battle to others.
  9.  
  10. Here is a small tech summary of what has been done:
  11.  
  12. - VMProtect is fully removed (30 VM entry points)
  13. - Denuvo is fully removed (104 VM entry points)
  14. - All required PE directories are fully restored
  15. (exports, imports, exceptions, TLS)
  16. - Fixed around 500k absolute & relative code and data pointers
  17.  
  18. The team would like to send out special thanks to our hard working mate who is responsible for this huge project. This would not have been possible without you! You rock man!


**************

В связи со стремительно развивающимися событиями, данный топик будет реформирован. Перечень тем, на которые ведется обсуждение:

░▒▓▓-SecuROM 7/8 common (VM research; disk-check bypass attack; find OEP & dumping; cumulative attack...)
░▒▓▓-- SPR I (profiles; updates)
░▒▓▓-Requests for generation SecuROM PA Unlock code (SecuROM PA Online-activation) WOW! Only on EXELAB.RU
░▒▓▓-Denuvo ("surface" questions)
░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

SPR I - Fight against the virtual machines (VM) of all SecuROM 7-8 versions (Подробности в 20, 23 посте.)


80_PA - SecuROM (PA) Online-Activation keygen! Holy shit!
[/url]
the list of programs (games), which can now be activated using 80_PA:
https://pastebin.com/EiMbV3YD or --> pastebin primary link <--

>>>>>>>> (!) Send me more games with SecuROM PA (!) >>>>>>>>>>>>

Denuvo Profiler (DProfiler)


------------
1.04.2012
Собственно я не сказал самого главного. SecuRom_Profiler 7 v1.0(SPR I) - часть большого зеленого пирога, под названием "ТИБЕРИУМНЫЙ РЕВЕРСИНГ" (статья опубликована в 159 номере ][. А позже, ещё одна итоговая статья - 199 ][), включает в себя собственно статью в журнале, ПОЛНУЮ техническую статью, материалы по SecuROM 7.33.0017, исходники X-кода и видео. Технический вариант статьи с приложениями можно брать отсюда:
Статья
Видео
Видео 2 (Продолжение)
Видео 3 (Окончательный разгром)
Видео 4 (В погоне за взломом DENUVO)
Имеет косвенное отношение к статье:
Видео косвенное

Хроники битвы при DENUVO 19.04.19
https://xakep.ru/2019/04/19/denuvo/

Message for the companies(etc) using this protection: we can buy SecuROM/DENUVO SDK & sources. Сontact me according to the personal message. Сonfidentiality is guaranteed!!! The bought files will be used for private research!

░░░░░░░░░░
См. также:
diff_trace

▓▓
{ Атач доступен только для участников форума } - Sony DADC SecuROM vulnerability.zip
{ Атач доступен только для участников форума } - PATENT DENUVO.pdf (притащил v00doo)


▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓
80_PA new 2.0 hotfix (!!!). Official links (mirrors):
https://mega.nz/#!L6gGBYBK!Y9X-6LFBdow6a1_IBlDFbrS6PBF4RRz_n9kuSGiI0UM (или --> 80_PA_v2.0 keygen link <--)
--> Mirror #1 <--
--> Mirror #2 <--

▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓
DENUVO Leak content
обращайтесь в личку - скину.

▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓▒▓
Denuvo Profiler (DProfiler) - test version 0.3 "INSPIRE"
https://mega.nz/#!DLwExKya!kCyFXw1roY3MkFaTO56LJAd-amc2yXWVerV2ic38bgs (или --> DProfiler link <--)

| Сообщение посчитали полезным: yanus0, obfuskator, Vovan666, MasterSoft, slick, hlmadip, ClockMan, Nightshade, Dart Raiden, Bronco, BAHEK, SReg, [Nomad], DimitarSerg, verdizela, yagello, OnLyOnE, FrenFolio, daFix, VodoleY, gena-m, m0bscene, Gideon Vi, ff0h, zeppe1in, antipod, huckfuck, kioresk, aRiX, 4kusNick, Ara, d0wn, Smon, audiofeel, zNob, cypherpunk, zzzombie1989, MarcElBichon, v00doo, DenCoder, nick7, Haoose-GP, arnix, Qbik, serilo, s2003r, DICI BF, Kindly, PavelDAS, HandMill, VanHelsing, random, TrueLies, warezhunter_, denfil777, alx30721, omeh2003, asm-jaime, WildGoblin, mushr00m, Flippy1801, KOTwasya, r3n5m388, chegevara, Groul, dnv83, kassane, ==DJ==[ZLO], red0x, HAOSov, rootkid, DirtyHarry, MacTep, kurorolucifer, s0cpy, aire1, ReloadUGunz, tRuNKator, Cherbet, RmK-FreE, Pringell, IHateInventNicknames, go2crck, mak, Dimosz, Creckerhack, zd0x, Mustafa_Dev007, UnnyBolt, Isaev, Astap1516, Voices_of_the_BULG, EHS4N, SnakeByte, KOCMOC42



Ранг: 147.7 (ветеран)
Статус: Участник
sv_cheats 1

Создано: 8 марта 2016 17:47 · Поправил: 8 марта 2016 19:41 SER[G]ANT New!
Цитата · Личное сообщение · #2

ELF_7719116 пишет:
[+] Добавлены новые наборы:

А как же FUEL? Неужто я не все файлы выслал?
У меня как раз загвоздка с активацией стимовской версии (цифровой ключ, выданный стимом, отсутствует в базе секурома) и я надеялся на активацию при помощи _PA, ибо тех. поддержка кодмастерс меня тупо отфутболила.

Если что, то вот вся папка игрой https://mega.nz/#F!tAZjBLSI!XSOml61OoV3AvFgXLM4yRQ

| Сообщение посчитали полезным: ELF_7719116, Jim DiGriz


Ранг: 411.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 9 марта 2016 20:05 New!
Цитата · Личное сообщение · #3

SER[G]ANT пишет:
А как же FUEL? Неужто я не все файлы выслал?



Увидел. Sorry! Выпускаю HOTFIX.
**************************
80_PA update #3 (hotfix)
**************************


[+] Добавлены новые наборы:
Code:
  1. FUEL

[!!!] Добавлен SPR_I (охотник за вирутальной машиной). Прямого отношения к 80_PA не имеет.
[!] Упорядочена стурктура архива официального набора.

thx SER[G]ANT

ссылки выше.

| Сообщение посчитали полезным: SER[G]ANT, SReg, v00doo, SharkXXL, DICI BF


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

Создано: 16 марта 2016 15:06 New!
Цитата · Личное сообщение · #4

Вижу интерес к взлому DENUVO растёт, жаль что не силён в этом. Однако могу запаковать и скинуть папки от уже релизного HITMAN (Episode 1).

EXE'шников два: один в папке Retail, а второй в dx12Retail. Размер exe'шников отличается от того, который был в Бете.

P.S. После прочтения истории о DENUVO на lurkmore, сложилось впечатление что оно (DENUVO) создано в "нужное время и в нужном месте". Игроделы переходят на x64 из-за острой необходимости в большом объёме оперативной памяти, а DENUVO паразитирует из-за отсутствие дебаггера x64. И по сути время жизни DENUVO упирается в период создания дебаггера. Если всё так, как я представляю, то на этом фоне высказывания 3DM выглядят как паникёрство...

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


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

Создано: 6 мая 2016 18:47 New!
Цитата · Личное сообщение · #5

Все что ли бульбу сажают???
Топик чего-то притих...
От старой секиры, я так понимаю, остались только переходники в зааллоченую память, с опкодом ff25.
У девелоперов что ли ностальгия по такому вида антидампа...
И если я правильно понимаю, то вызов CreatePipe, и дальнейшие махинации с выделением памяти, всё относится к служебному коду навесной защиты.
Странно что его не опечатали вмпротектом.
И не пойму почему тимы разнылись, денуво к лицензированию имеет такое отношение, как я к Гагарину..
Либа steam_api64.dll чистая.

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

Создано: 7 мая 2016 11:59 New!
Цитата · Личное сообщение · #6

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


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

Создано: 7 мая 2016 14:31 New!
Цитата · Личное сообщение · #7

vden пишет:
Мне больше интересна виртуализация.

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

Добавлено спустя 5 часов 17 минут
БУ - ГА - ГА
у меня дамп стартанул...
у лариски оер чистое ...
0000000003034138
мотали мы эту денуво на одном месте....

| Сообщение посчитали полезным: ELF_7719116, v00doo, 6oTBa, HandMill, DICI BF, WildGoblin


Ранг: 411.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 7 мая 2016 20:16 New!
Цитата · Личное сообщение · #8

Bronco пишет:
у меня дамп стартанул...

да, ладно??! Авторы вмпротект денуво уже пишут: gg wp

Bronco пишет:
у лариски оер чистое

первые инструкции OEP в студию можнА?


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

Создано: 7 мая 2016 20:28 · Поправил: 7 мая 2016 20:31 Bronco New!
Цитата · Личное сообщение · #9

ELF_7719116 пишет:
первые инструкции OEP в студию можнА?

гавно вопрос...
Code:
  1. 0000000143034138 | 41 56                    | PUSH R14                                |
  2. 000000014303413A | 41 57                    | PUSH R15                                |
  3. 000000014303413C | 48 83 EC 38              | SUB RSP, 38                             |
  4. 0000000143034140 | 4C 8B 35 23 FD 53 00     | MOV R14, QWORD PTR DS:[143573E6A]       |
  5. 0000000143034147 | 48 89 6C 24 30           | MOV QWORD PTR SS:[RSP + 30], RBP        |
  6. 000000014303414C | 48 63 2D E9 BE FC FC     | MOVSXD RBP, DWORD PTR DS:[14000003C]    |
  7. 0000000143034153 | 4C 8D 3D A6 BE FC FC     | LEA R15, QWORD PTR DS:[140000000]       |
  8. 000000014303415A | B8 4C 01 00 00           | MOV EAX, 14C                            |
  9. 000000014303415F | 48 89 74 24 28           | MOV QWORD PTR SS:[RSP + 28], RSI        | [rsp+28]:EntryPoint
  10. 0000000143034164 | 4C 01 FD                 | ADD RBP, R15                            |
  11. 0000000143034167 | 48 89 7C 24 20           | MOV QWORD PTR SS:[RSP + 20], RDI        |
  12. 000000014303416C | 48 8D BD F8 00 00 00     | LEA RDI, QWORD PTR SS:[RBP + F8]        |
  13. 0000000143034173 | 66 39 45 04              | CMP WORD PTR SS:[RBP + 4], AX           |
  14. 0000000143034177 | 74 07                    | JE rottr_dump_64.143034180              |
  15. 0000000143034179 | 48 8D BD 08 01 00 00     | LEA RDI, QWORD PTR SS:[RBP + 108]       |
  16. 0000000143034180 | 31 F6                    | XOR ESI, ESI                            |
  17. 0000000143034182 | 89 74 24 50              | MOV DWORD PTR SS:[RSP + 50], ESI        |
  18. 0000000143034186 | 89 74 24 58              | MOV DWORD PTR SS:[RSP + 58], ESI        |
  19. 000000014303418A | 66 3B 75 06              | CMP SI, WORD PTR SS:[RBP + 6]           |
  20. 000000014303418E | 73 6D                    | JAE rottr_dump_64.1430341FD             |
  21. 0000000143034190 | 48 89 5C 24 60           | MOV QWORD PTR SS:[RSP + 60], RBX        |
  22. 0000000143034195 | 48 83 C7 24              | ADD RDI, 24                             |
  23. 0000000143034199 | BA 28 00 00 00           | MOV EDX, 28                             |
  24. 000000014303419E | 4C 8D 4C 24 50           | LEA R9, QWORD PTR SS:[RSP + 50]         |
  25. 00000001430341A3 | 48 8D 4F DC              | LEA RCX, QWORD PTR DS:[RDI - 24]        |
  26. 00000001430341A7 | 44 8D 42 18              | LEA R8D, DWORD PTR DS:[RDX + 18]        |
  27. 00000001430341AB | FF 15 3F DF EA 00        | CALL QWORD PTR DS:[<&VirtualProtect>]   |
  28. 00000001430341B1 | 81 27 FF FF FF 7F        | AND DWORD PTR DS:[RDI], 7FFFFFFF        |
  29. 00000001430341B7 | 44 8B 44 24 50           | MOV R8D, DWORD PTR SS:[RSP + 50]        |
  30. 00000001430341BC | 4C 8D 4C 24 58           | LEA R9, QWORD PTR SS:[RSP + 58]         |
  31. 00000001430341C1 | 48 8D 4F DC              | LEA RCX, QWORD PTR DS:[RDI - 24]        |
  32. 00000001430341C5 | BA 28 00 00 00           | MOV EDX, 28                             |
  33. 00000001430341CA | FF 15 20 DF EA 00        | CALL QWORD PTR DS:[<&VirtualProtect>]   |
  34. 00000001430341D0 | 8B 4F E8                 | MOV ECX, DWORD PTR DS:[RDI - 18]        |
  35. 00000001430341D3 | 8B 57 E4                 | MOV EDX, DWORD PTR DS:[RDI - 1C]        |
  36. 00000001430341D6 | 4C 8D 4C 24 50           | LEA R9, QWORD PTR SS:[RSP + 50]         |
  37. 00000001430341DB | 4C 01 F9                 | ADD RCX, R15                            |
  38. 00000001430341DE | 41 B8 40 00 00 00        | MOV R8D, 40                             |
  39. 00000001430341E4 | FF 15 06 DF EA 00        | CALL QWORD PTR DS:[<&VirtualProtect>]   |
  40. 00000001430341EA | 0F B7 45 06              | MOVZX EAX, WORD PTR SS:[RBP + 6]        |
  41. 00000001430341EE | FF C6                    | INC ESI                                 |
  42. 00000001430341F0 | 48 8D 7F 28              | LEA RDI, QWORD PTR DS:[RDI + 28]        |
  43. 00000001430341F4 | 39 C6                    | CMP ESI, EAX                            |
  44. 00000001430341F6 | 7C A1                    | JL rottr_dump_64.143034199              |
  45. 00000001430341F8 | 48 8B 5C 24 60           | MOV RBX, QWORD PTR SS:[RSP + 60]        |
  46. 00000001430341FD | 48 8B 7C 24 20           | MOV RDI, QWORD PTR SS:[RSP + 20]        |
  47. 0000000143034202 | 48 8B 74 24 28           | MOV RSI, QWORD PTR SS:[RSP + 28]        | [rsp+28]:EntryPoint
  48. 0000000143034207 | 48 8B 6C 24 30           | MOV RBP, QWORD PTR SS:[RSP + 30]        |
  49. 000000014303420C | 4D 85 F6                 | TEST R14, R14                           |
  50. 000000014303420F | 74 59                    | JE rottr_dump_64.14303426A              |
  51. 0000000143034211 | 41 83 3E 00              | CMP DWORD PTR DS:[R14], 0               |
  52. 0000000143034215 | 49 8D 46 04              | LEA RAX, QWORD PTR DS:[R14 + 4]         |
  53. 0000000143034219 | 74 4F                    | JE rottr_dump_64.14303426A              |
  54. 000000014303421B | 4C 8D 40 04              | LEA R8, QWORD PTR DS:[RAX + 4]          |
  55. 000000014303421F | 49 83 C0 04              | ADD R8, 4                               |
  56. 0000000143034223 | 41 8B 40 FC              | MOV EAX, DWORD PTR DS:[R8 - 4]          |
  57. 0000000143034227 | 85 C0                    | TEST EAX, EAX                           |
  58. 0000000143034229 | 74 35                    | JE rottr_dump_64.143034260              |
  59. 000000014303422B | 41 8B 08                 | MOV ECX, DWORD PTR DS:[R8]              |
  60. 000000014303422E | 49 83 C0 04              | ADD R8, 4                               |
  61. 0000000143034232 | 4C 01 F8                 | ADD RAX, R15                            |
  62. 0000000143034235 | 4D 89 C1                 | MOV R9, R8                              |
  63. 0000000143034238 | 49 01 C8                 | ADD R8, RCX                             |
  64. 000000014303423B | 89 CA                    | MOV EDX, ECX                            |
  65. 000000014303423D | 85 C9                    | TEST ECX, ECX                           |
  66. 000000014303423F | 74 14                    | JE rottr_dump_64.143034255              |
  67. 0000000143034241 | 49 29 C1                 | SUB R9, RAX                             |
  68. 0000000143034244 | 41 0F B6 0C 01           | MOVZX ECX, BYTE PTR DS:[R9 + RAX]       |
  69. 0000000143034249 | 48 8D 40 01              | LEA RAX, QWORD PTR DS:[RAX + 1]         |
  70. 000000014303424D | 88 48 FF                 | MOV BYTE PTR DS:[RAX - 1], CL           |
  71. 0000000143034250 | 48 FF CA                 | DEC RDX                                 |
  72. 0000000143034253 | 75 EF                    | JNE rottr_dump_64.143034244             |
  73. 0000000143034255 | 41 8B 00                 | MOV EAX, DWORD PTR DS:[R8]              |
  74. 0000000143034258 | 49 83 C0 04              | ADD R8, 4                               |
  75. 000000014303425C | 85 C0                    | TEST EAX, EAX                           |
  76. 000000014303425E | 75 CB                    | JNE rottr_dump_64.14303422B             |
  77. 0000000143034260 | 41 83 38 00              | CMP DWORD PTR DS:[R8], 0                |
  78. 0000000143034264 | 49 8D 40 04              | LEA RAX, QWORD PTR DS:[R8 + 4]          |
  79. 0000000143034268 | 75 B1                    | JNE rottr_dump_64.14303421B             |
  80. 000000014303426A | 48 83 C4 38              | ADD RSP, 38                             |
  81. 000000014303426E | 41 5F                    | POP R15                                 |
  82. 0000000143034270 | 41 5E                    | POP R14                                 |
  83. 0000000143034272 | 90                       | NOP                                     |
  84. 0000000143034273 | 48 83 EC 28              | SUB RSP, 28                             |
  85. 0000000143034277 | E8 A4 FD FF FF           | CALL rottr_dump_64.143034020            |
  86. 000000014303427C | E8 07 E8 DD 00           | CALL rottr_dump_64.143E12A88            |
  87. 0000000143034281 | 48 83 C4 28              | ADD RSP, 28                             |
  88. 0000000143034285 | C3                       | RET                                     |

игра пока под стим апи, там стаба нет, чисто sdk стимовские.. но пока не падает...

Ранг: 80.3 (постоянный)
Статус: Участник

Создано: 7 мая 2016 20:30 New!
Цитата · Личное сообщение · #10

Вот это поворот, неожиданно...
Ларка кстати обновлялась не так давно, под микроскопом какие файлы?
Залить свежие?


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

Создано: 7 мая 2016 20:36 New!
Цитата · Личное сообщение · #11

v00doo пишет:
под микроскопом какие файлы?

да последний билд ковырял v1.0-v1.0.647.
я так понимаю пипл на оффлайн активацию жружно подсел, и стригут тех кто полную стоимость платить не хочет. в целом у меня всего три вечера ушло.

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


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

Создано: 7 мая 2016 21:33 New!
Цитата · Личное сообщение · #12

Приятно, что тема оживилась)
Каждый день захожу на форум, почитать новые достижения в области исследования денуво!

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



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

Создано: 8 мая 2016 00:52 New!
Цитата · Личное сообщение · #13

Bronco
Начало кода связано со сбросом во всех разделах IMAGE_SECTION_HEADER флага IMAGE_SCN_MEM_WRITE и установкой для страниц разделов атрибута PAGE_EXECUTE_READWRITE...

Стим, денуво не разбирал, не видел, может отсюда и следующий вопрос:
Ты уверен, что это oep? Такое обычно перед распаковкой бывает. Что они, своё crt создали? )

Добавлено спустя 0 минут
Может, пакер на пакере? )

Ранг: 80.3 (постоянный)
Статус: Участник

Создано: 8 мая 2016 01:00 New!
Цитата · Личное сообщение · #14

Bronco пишет:
я так понимаю пипл на оффлайн активацию жружно подсел, и стригут тех кто полную стоимость платить не хочет. в целом у меня всего три вечера ушло.

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


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

Создано: 8 мая 2016 03:04 New!
Цитата · Личное сообщение · #15

DenCoder пишет:
Ты уверен, что это oep?

это служебный код секиры, подготовка к старту, но в нём есть выход на вм_оер..
//в последнем вызове.
оригинальная точка входа действительно размазана, но на первый взгляд, вроде лёгкого насморка.
Процедура в целом типа поморфлена, условия выполнения кода родные, местами с элементами эмуляции..но я пока не вникал.
v00doo пишет:
Ну у нас народ предприимчивый

я имел ввиду другое, солидных ребят и крекерских тим, либо купили либо прижали, в общем кто на что повёлся. другого объяснения такого наплыва антиденуво ресурсов я не нахожу.

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

Создано: 11 мая 2016 19:36 · Поправил: 11 мая 2016 19:51 Dimosz New!
Цитата · Личное сообщение · #16

Хотелось бы внести некоторые уточнения на счёт упомянутых страниц с размером 1000h.

1. Начало создания этих страниц сигнализируется протектором с вызовом API-функции
SetEnvironmentVariableA("Jc9jdUeVhwFZHOPK", "ajrpko9YL8bjm");

2. Во вторых, ихний реальный размер не 1000h - а 400h.
Вот кусок кода выдернутый из защищённый EXE-шник Rise of the Tomb Raider v1.0.638.8
с помощью которого резервируется память для таких страниц:
Code:
  1. .vmtext:0000000143EB7A3C                 lea     r9, qword_143E9B590
  2. .vmtext:0000000143EB7A43                 lea     r8, [rsp+arg_6C8]
  3. .vmtext:0000000143EB7A4B                 mov     edx, 416h
  4. .vmtext:0000000143EB7A50                 lea     rcx, [rsp+arg_228]
  5. .vmtext:0000000143EB7A58                 call    Denuvo_0x143E990E0_Gen1000hPage
  6. .vmtext:0000000143EB7A5D                 mov     edx, 218h
  7. .vmtext:0000000143EB7A62                 lea     rcx, [rsp+arg_228]
  8. .vmtext:0000000143EB7A6A                 call    Denuvo_0x143E99090
  9. .vmtext:0000000143EB7A6F                 mov     r9d, 40h        ; flProtect
  10. .vmtext:0000000143EB7A75                 mov     r8d, 103000h    ; flAllocationType
  11. .vmtext:0000000143EB7A7B                 mov     edx, 400h       ; dwSize
  12. .vmtext:0000000143EB7A80                 xor     ecx, ecx        ; lpAddress
  13. .vmtext:0000000143EB7A82                 call    cs:VirtualAlloc
  14. .vmtext:0000000143EB7A88                 mov     [rsp+p_AllocatedMemory], rax
  15. .vmtext:0000000143EB7A90                 mov     rdx, [rsp+p_AllocatedMemory]
  16. .vmtext:0000000143EB7A98                 lea     rcx, [rsp+arg_228] ; 0x143E9BFF0
  17. .vmtext:0000000143EB7AA0                 call    Denuvo_FillPage1000hWithCode
  18. .vmtext:0000000143EB7AA5                 mov     [rsp+arg_758], rax
  19. .vmtext:0000000143EB7AAD                 mov     rax, [rsp+p_PageFuncAddressStruct]
  20. .vmtext:0000000143EB7AB5                 mov     rcx, [rsp+p_AllocatedMemory]
  21. .vmtext:0000000143EB7ABD                 mov     [rax], rcx      ; Write page 1000h address


3. В третьих, такие странички содержат так называемые Stolen-Bytes (т.е. украденные инструкции) из
реальной секции кода программы.
Также на примере Rise of the Tomb Raider, в EXE-шнике есть целая структура которая описывает
адрес нахождения этой странички и ВНИМАНИЕ!!! какие инструкции были украдены из секции кода
(нужно всего лишь правильно понять Блауковича).
Привожу пример:
Code:
  1. .vmtext:0000000143E8C000                 dq offset sub_143021138
  2. .vmtext:0000000143E8C008 off_143E8C008   dd rva loc_14307DC06    ; DATA XREF: .vmtext:p_StolenBytesStructo
  3. .vmtext:0000000143E8C00C qword_143E8C00C dq 7FFFFFA0000h         ; DATA XREF: sub_14307DBF0+10r
  4. .vmtext:0000000143E8C014                 dd 90000024h            ; movsxd rax, ecx
  5. .vmtext:0000000143E8C018                 dd 0
  6. .vmtext:0000000143E8C01C                 dd rva loc_14307DC20
  7. .vmtext:0000000143E8C020 qword_143E8C020 dq 7FFFFF90000h         ; DATA XREF: sub_14307DBF0+2Ar
  8. .vmtext:0000000143E8C028                 dd 900000EEh            ; retn
  9. .vmtext:0000000143E8C02C                 dd 0
  10. .vmtext:0000000143E8C030                 dd rva loc_14307DC2E
  11. .vmtext:0000000143E8C034 qword_143E8C034 dq 7FFFFF80000h         ; DATA XREF: sub_14307DBF0+38r
  12. .vmtext:0000000143E8C03C                 dd 900000EEh            ; retn
  13. .vmtext:0000000143E8C040                 dd 0
  14. .vmtext:0000000143E8C044                 dd rva loc_14307DC3B
  15. .vmtext:0000000143E8C048 qword_143E8C048 dq 7FFFFF70000h         ; DATA XREF: sub_14307DBF0+45r
  16. .vmtext:0000000143E8C050                 dd 900000EEh            ; retn
  17. .vmtext:0000000143E8C054                 dd 0
  18. .vmtext:0000000143E8C058                 dd rva loc_14307DC52
  19. .vmtext:0000000143E8C05C qword_143E8C05C dq 7FFFFF60000h         ; DATA XREF: sub_14307DBF0+5Cr
  20. .vmtext:0000000143E8C064                 dd 900000EEh            ; retn
  21. .vmtext:0000000143E8C068                 dd 0
  22. .vmtext:0000000143E8C06C                 dd rva loc_14307DC5F
  23. .vmtext:0000000143E8C070 qword_143E8C070 dq 7FFFFF50000h         ; DATA XREF: sub_14307DBF0+69r
  24. .vmtext:0000000143E8C078                 dd 900000EEh            ; retn
  25. .vmtext:0000000143E8C07C                 dd 0

Как хорошо видно из данного примера, коды 900000EEh показывают условный код той инструкции (или инструкций) которую страница эмулирует.

Пример №2
Code:
  1. .vmtext:0000000143E8D164 qword_143E8D164 dq 7FFFF230000h         ; DATA XREF: sub_143B16980+2Ar
  2. .vmtext:0000000143E8D16C                 dd 900000EEh            ; retn
  3. .vmtext:0000000143E8D170                 dd 0
  4. .vmtext:0000000143E8D174                 dd rva loc_143B35545
  5. .vmtext:0000000143E8D178 qword_143E8D178 dq 7FFFF220000h         ; DATA XREF: sub_143B354D0+6Fr
  6. .vmtext:0000000143E8D180                 dd 90000039h            ; pop rbx
  7. .vmtext:0000000143E8D184                 dd 0
  8. .vmtext:0000000143E8D188                 dd rva loc_143B3555E
  9. .vmtext:0000000143E8D18C qword_143E8D18C dq 7FFFF210000h         ; DATA XREF: sub_143B354D0+88r
  10. .vmtext:0000000143E8D194                 dd 90000039h            ; pop rbx
  11. .vmtext:0000000143E8D198                 dd 0
  12. .vmtext:0000000143E8D19C                 dd rva loc_143B71863
  13. .vmtext:0000000143E8D1A0 qword_143E8D1A0 dq 7FFFF200000h         ; DATA XREF: sub_143B7183B+22r
  14. .vmtext:0000000143E8D1A8                 dd 9000000Eh            ; mov rcx, rdx
  15. .vmtext:0000000143E8D1AC                 dd 0
  16. .vmtext:0000000143E8D1B0                 dd rva loc_143B71899
  17. .vmtext:0000000143E8D1B4 qword_143E8D1B4 dq 7FFFF1F0000h         ; DATA XREF: sub_143B7183B+58r
  18. .vmtext:0000000143E8D1BC                 dd 90000047h            ; inc rcx
  19. .vmtext:0000000143E8D1C0                 dd 0
  20. .vmtext:0000000143E8D1C4                 dd rva loc_143B8187C
  21. .vmtext:0000000143E8D1C8 qword_143E8D1C8 dq 7FFFF1E0000h         ; DATA XREF: sub_143B817C6+B0r
  22. .vmtext:0000000143E8D1D0                 dd 90000017h            ; mov rdx, rax
  23. .vmtext:0000000143E8D1D4                 dd 0
  24. .vmtext:0000000143E8D1D8                 dd rva loc_143B818CF
  25. .vmtext:0000000143E8D1DC qword_143E8D1DC dq 7FFFF1D0000h         ; DATA XREF: sub_143B817C6+103r
  26. .vmtext:0000000143E8D1E4                 dd 90000018h            ; mov rcx, rbx
  27. .vmtext:0000000143E8D1E8                 dd 0
  28. .vmtext:0000000143E8D1EC                 dd rva locret_143B81921
  29. .vmtext:0000000143E8D1F0 qword_143E8D1F0 dq 7FFFF1C0000h         ; DATA XREF: sub_143B817C6+155r
  30. .vmtext:0000000143E8D1F8                 dd 90000045h            ; pop r15
  31. .vmtext:0000000143E8D1FC                 dd 90000044h            ; pop r14
  32. .vmtext:0000000143E8D200                 dd 90000042h            ; pop r12
  33. .vmtext:0000000143E8D204                 dd 9000003Dh            ; pop rdi
  34. .vmtext:0000000143E8D208                 dd 9000003Bh            ; pop rbp
  35. .vmtext:0000000143E8D20C                 dd 0
  36. .vmtext:0000000143E8D210                 dd rva loc_143B88C9B
  37. .vmtext:0000000143E8D214 qword_143E8D214 dq 7FFFF1B0000h         ; DATA XREF: sub_143B88C42+53r
  38. .vmtext:0000000143E8D21C                 dd 9000000Dh            ; mov rdi, rax
  39. .vmtext:0000000143E8D220                 dd 0
  40. .vmtext:0000000143E8D224                 dd rva loc_143B88CD2
  41. .vmtext:0000000143E8D228 qword_143E8D228 dq 7FFFF1A0000h         ; DATA XREF: sub_143B88C42+8Ar
  42. .vmtext:0000000143E8D230                 dd 90000010h            ; mov r8, rax
  43. .vmtext:0000000143E8D234                 dd 0

| Сообщение посчитали полезным: ELF_7719116, Bronco, v00doo



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

Создано: 11 мая 2016 20:19 · Поправил: 11 мая 2016 20:42 Bronco New!
Цитата · Личное сообщение · #17

Dimosz пишет:
ихний реальный размер не 1000h - а 400h.

разница между адресами всё равно 0x1000, VirtualAlloc меньше не выделяет, а реальный размер кода в rax кладут, и он не 0х400, рахный размер
Code:
  1. Ord  : 1
  2. Addr : 0x00007FF5FFEC0000
  3. Size : 0x00000000000000C7
  4. 00007FF5FFEC0000[1000] written to ".\minidump\00007FF5FFEC0000.mem" !
  5. -----------
  6. Ord  : 2
  7. Addr : 0x00007FF5FFEB0000
  8. Size : 0x00000000000000B2
  9. 00007FF5FFEB0000[1000] written to ".\minidump\00007FF5FFEB0000.mem" !
  10. -----------
  11. Ord  : 3
  12. Addr : 0x00007FF5FFEA0000
  13. Size : 0x0000000000000290
  14. 00007FF5FFEA0000[1000] written to ".\minidump\00007FF5FFEA0000.mem" !
  15. -----------
  16. Ord  : 4
  17. Addr : 0x00007FF5FFE90000
  18. Size : 0x00000000000000C3
  19. 00007FF5FFE90000[1000] written to ".\minidump\00007FF5FFE90000.mem" !
  20. -----------

перебивать адреса под сдампленную память, по ходу нет смысла, байт код опкодов где-то юзают, пока не нашёл где.
Адрес выхода из ВМ походу всегда один:
0000000143E14925 | C3 | RET | <<< VM Exit
Сначало хсорят регистры, потом выходим либо на импорт, либо на процедуру по коду, либо чеки цпуид, либо на новую вм, но могу ошибаться и таких выходов больше чем один.

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

Создано: 11 мая 2016 20:39 · Поправил: 11 мая 2016 20:48 Dimosz New!
Цитата · Личное сообщение · #18

Bronco Разница есть.
Блаукович применил данный приём как технологию анти-дампинга.
При попытке сбросить на диск 1000h байт вылезит ошибка, так как резерыированный объем будет
400h (т.е. условно говоря, от 0 до 3FFh), а адреса от 400h до FFFh будут помечены
операционной системой как UNREADABLE PAGE.

Что касается входов и выходов из VM, используются такие хэндлеры.
Хэндлер входа в VM:
Code:
  1. .vmtext:00000001474E3866 ; VM_PUSH <r13,rbp,r14,r9,rcx,rsi,rbx,rdi,r15,r12,rax,rdx,flags,r10,r8,r11>
  2. .vmtext:00000001474E3866 ; Address calculation:
  3. .vmtext:00000001474E3866 ; not addr
  4. .vmtext:00000001474E3866 ; rol addr, 3
  5. .vmtext:00000001474E3866 ; xor addr, 250B70B9h
  6. .vmtext:00000001474E3866 ; add addr, 6AD944DCh
  7. .vmtext:00000001474E3866 ; not addr
  8. .vmtext:00000001474E3866 ; neg addr
  9. .vmtext:00000001474E3866 ; ror addr, 2
  10. .vmtext:00000001474E3866 ; add addr, 100000000h
  11. .vmtext:00000001474E3866 ; Attributes: noreturn
  12. .vmtext:00000001474E3866
  13. .vmtext:00000001474E3866 Denuvo_VM_PushContext_0x1474E3866_r13 proc near
  14. .vmtext:00000001474E3866                 push    r13
  15. .vmtext:00000001474E3868                 jmp     Denuvo_VM_PushContext_0x1473FFE61_rbp_r14_r9_rcx_rsi_rbx_rdi_r15_r12_rax_rdx_flags_r10_r8_r11
  16. .vmtext:00000001474E3868 Denuvo_VM_PushContext_0x1474E3866_r13 endp


Code:
  1. .vmtext:00000001473FFE61 Denuvo_VM_PushContext_0x1473FFE61_rbp_r14_r9_rcx_rsi_rbx_rdi_r15_r12_rax_rdx_flags_r10_r8_r11 proc near
  2. .vmtext:00000001473FFE61
  3. .vmtext:00000001473FFE61 arg_8           = qword ptr  10h
  4. .vmtext:00000001473FFE61
  5. .vmtext:00000001473FFE61                 push    rbp
  6. .vmtext:00000001473FFE62                 mov     bpl, dl         ; dummy instuction
  7. .vmtext:00000001473FFE65                 movsxd  rbp, r9d        ; dummy instuction
  8. .vmtext:00000001473FFE68                 cmovz   ebp, esp        ; dummy instuction
  9. .vmtext:00000001473FFE6B                 push    r14
  10. .vmtext:00000001473FFE6D                 mov     bpl, r10b       ; dummy instuction
  11. .vmtext:00000001473FFE70                 bswap   bp              ; dummy instuction
  12. .vmtext:00000001473FFE73                 movsx   bp, r12b        ; dummy instuction
  13. .vmtext:00000001473FFE78                 push    r9
  14. .vmtext:00000001473FFE7A                 movzx   rbp, di         ; dummy instuction
  15. .vmtext:00000001473FFE7E                 movsxd  rbp, r13d       ; dummy instuction
  16. .vmtext:00000001473FFE81                 movzx   bp, spl         ; dummy instuction
  17. .vmtext:00000001473FFE86                 push    rcx
  18. .vmtext:00000001473FFE87                 xchg    bp, bp          ; dummy instuction
  19. .vmtext:00000001473FFE8A                 movsx   ebp, di         ; dummy instuction
  20. .vmtext:00000001473FFE8D                 movsx   rbp, r9w        ; dummy instuction
  21. .vmtext:00000001473FFE91                 push    rsi
  22. .vmtext:00000001473FFE92                 movzx   ebp, r14w       ; dummy instuction
  23. .vmtext:00000001473FFE96                 movzx   rbp, sp         ; dummy instuction
  24. .vmtext:00000001473FFE9A                 bswap   rsi             ; dummy instuction
  25. .vmtext:00000001473FFE9D                 push    rbx
  26. .vmtext:00000001473FFE9E                 movsxd  rsi, esi        ; dummy instuction
  27. .vmtext:00000001473FFEA1                 push    rdi
  28. .vmtext:00000001473FFEA2                 xchg    bpl, sil        ; dummy instuction
  29. .vmtext:00000001473FFEA5                 mov     dil, 9Bh        ; dummy instuction
  30. .vmtext:00000001473FFEA8                 mov     bl, r10b        ; dummy instuction
  31. .vmtext:00000001473FFEAB                 push    r15
  32. .vmtext:00000001473FFEAD                 not     rbx             ; dummy instuction
  33. .vmtext:00000001473FFEB0                 xchg    rbp, rdi        ; dummy instuction
  34. .vmtext:00000001473FFEB3                 push    r12
  35. .vmtext:00000001473FFEB5                 push    rax
  36. .vmtext:00000001473FFEB6                 push    rdx
  37. .vmtext:00000001473FFEB7                 cdqe                    ; dummy instuction
  38. .vmtext:00000001473FFEB9                 movsx   rax, ax         ; dummy instuction
  39. .vmtext:00000001473FFEBD                 mov     ah, 0D6h        ; dummy instuction
  40. .vmtext:00000001473FFEC0                 pushfq
  41. .vmtext:00000001473FFEC1                 ror     bpl, cl         ; dummy instuction
  42. .vmtext:00000001473FFEC4                 movzx   ax, cl          ; dummy instuction
  43. .vmtext:00000001473FFEC8                 push    r10
  44. .vmtext:00000001473FFECA                 cmovs   rdi, rbx        ; dummy instuction
  45. .vmtext:00000001473FFECE                 not     edi             ; dummy instuction
  46. .vmtext:00000001473FFED0                 push    r8
  47. .vmtext:00000001473FFED2                 movsxd  rsi, r15d       ; dummy instuction
  48. .vmtext:00000001473FFED5                 rol     ah, 0D9h        ; dummy instuction
  49. .vmtext:00000001473FFED8                 push    r11
  50. .vmtext:00000001473FFEDA                 mov     rax, 0
  51. .vmtext:00000001473FFEE4                 bts     rbp, rcx        ; dummy instuction
  52. .vmtext:00000001473FFEE8                 mov     bpl, 68h        ; dummy instuction
  53. .vmtext:00000001473FFEEB                 btr     esi, 0E1h       ; dummy instuction
  54. .vmtext:00000001473FFEEF                 push    rax
  55. .vmtext:00000001473FFEF0                 movzx   esi, r10w       ; dummy instuction
  56. .vmtext:00000001473FFEF4                 mov     r12b, 6Ch       ; dummy instuction
  57. .vmtext:00000001473FFEF7                 mov     rsi, [rsp+80h+arg_8]
  58. .vmtext:00000001473FFEFF                 btc     r12d, edi       ; dummy instuction
  59. .vmtext:00000001473FFF03                 movzx   rdi, r10w       ; dummy instuction
  60. .vmtext:00000001473FFF07                 not     esi             ; rsi = 0000000032E9F202
  61. .vmtext:00000001473FFF09                 movsxd  rdi, esp        ; dummy instuction
  62. .vmtext:00000001473FFF0C                 jmp     sub_14747BC2D
  63. .vmtext:00000001473FFF0C Denuvo_VM_PushContext_0x1473FFE61_rbp_r14_r9_rcx_rsi_rbx_rdi_r15_r12_rax_rdx_flags_r10_r8_r11 endp


то есть, данный хэндлер сохраняет 16 регистров процессора в установленном порядке и начинает работать с лентой p-code.

А вот выход из VM для вышеперечисленного хэндлера (как вы догадались, он должен восстановить регистры в обратном порядке, тем самым, выравнив стёк и передать управление на другой хэндлер или API)

Code:
  1. .vmtext:00000001473EEF4A ; VM_POP <r11,r8,r10,rflags,rdx,rax,r12,r15,rdi,rbx,rsi,rcx,r9,r14,rbp,r13>
  2. .vmtext:00000001473EEF4A
  3. .vmtext:00000001473EEF4A Denuvo_VM_PopContext_0x1473EEF4A_r11_r8_r10_rflags_rdx_rax_r12_r15 proc near
  4. .vmtext:00000001473EEF4A                 mov     rsp, rbp
  5. .vmtext:00000001473EEF4D                 movsxd  r15, esi
  6. .vmtext:00000001473EEF50                 add     r14b, 24h
  7. .vmtext:00000001473EEF54                 test    r9w, bp
  8. .vmtext:00000001473EEF58                 pop     r11
  9. .vmtext:00000001473EEF5A                 setnbe  r9b
  10. .vmtext:00000001473EEF5E                 xchg    bp, r15w
  11. .vmtext:00000001473EEF62                 neg     rbp
  12. .vmtext:00000001473EEF65                 pop     r8
  13. .vmtext:00000001473EEF67                 cmp     r13b, 42h
  14. .vmtext:00000001473EEF6B                 not     dil
  15. .vmtext:00000001473EEF6E                 movsx   rsi, di
  16. .vmtext:00000001473EEF72                 pop     r10
  17. .vmtext:00000001473EEF74                 popfq
  18. .vmtext:00000001473EEF75                 xchg    cl, r12b
  19. .vmtext:00000001473EEF78                 pop     rdx
  20. .vmtext:00000001473EEF79                 cwde
  21. .vmtext:00000001473EEF7A                 pop     rax
  22. .vmtext:00000001473EEF7B                 pop     r12
  23. .vmtext:00000001473EEF7D                 movsxd  rcx, edi
  24. .vmtext:00000001473EEF80                 movsx   rbp, r11w
  25. .vmtext:00000001473EEF84                 pop     r15
  26. .vmtext:00000001473EEF86                 jmp     Denuvo_VM_PopContext_0x14747CE09_rdi_rbx_rsi_rcx_r9
  27. .vmtext:00000001473EEF86 Denuvo_VM_PopContext_0x1473EEF4A_r11_r8_r10_rflags_rdx_rax_r12_r15 endp


Code:
  1. .vmtext:000000014747CE09 Denuvo_VM_PopContext_0x14747CE09_rdi_rbx_rsi_rcx_r9 proc near
  2. .vmtext:000000014747CE09                 pop     rdi
  3. .vmtext:000000014747CE0A                 cmovle  si, r12w
  4. .vmtext:000000014747CE0F                 movzx   bx, r11b
  5. .vmtext:000000014747CE14                 mov     r13b, cl
  6. .vmtext:000000014747CE17                 pop     rbx
  7. .vmtext:000000014747CE18                 movzx   esi, r15w
  8. .vmtext:000000014747CE1C                 movzx   rbp, r9w
  9. .vmtext:000000014747CE20                 pop     rsi
  10. .vmtext:000000014747CE21                 cmova   ebp, esp
  11. .vmtext:000000014747CE24                 xchg    r13d, r13d
  12. .vmtext:000000014747CE27                 pop     rcx
  13. .vmtext:000000014747CE28                 movsx   r9d, r15w
  14. .vmtext:000000014747CE2C                 movsx   r14, si
  15. .vmtext:000000014747CE30                 setnp   r9b
  16. .vmtext:000000014747CE34                 pop     r9
  17. .vmtext:000000014747CE36                 jmp     Denuvo_VM_PopContext_0x143EB3054_r14_rbp_r13
  18. .vmtext:000000014747CE36 Denuvo_VM_PopContext_0x14747CE09_rdi_rbx_rsi_rcx_r9 endp


Добавлено спустя 4 минуты
Таких групп вышеперечисленных хэндлеров я насчитал несколько десятков, причём каждая из групп
VM_PUSH и VM_POP сохраняют регистры процессора и соответственно восстанавливают их в разном порядке.

| Сообщение посчитали полезным: Bronco, hello, mak, ELF_7719116



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

Создано: 11 мая 2016 20:47 New!
Цитата · Личное сообщение · #19

Dimosz пишет:
При попытке сбросить на диск 1000h байт вылезит ошибка

Хз о чём, но страницы дампятся прекрасно...
Code:
  1. var counter
  2. var section 
  3. cls
  4. BPHWC
  5. BPHWS 0000000143ED47AD, "x"
  6. BPHWS 0000000143ED47CA, "x"
  7. BPHWS 0000000143ED48B6, "x"
  8. mov section, 0x00000001473F7000
  9. counter = 1
  10. next:
  11. erun
  12. cmp rip, 0x0000000143ED48B6
  13. je exit
  14. cmp rip, 0x0000000143ED47AD
  15. je addr
  16. log "Size : {p0}", rax
  17. savedata zhopa, offset, 0x1000
  18. log "-----------"
  19. esti
  20. esti
  21. esti
  22. esti
  23. esti
  24. mov rbp, section
  25. mov [rax], rbp
  26. xor rbp,rbp
  27. sub section, 0x1000
  28. jmp next
  29. exit:
  30. BPHWC
  31. BPHWS 0000000143E12A88, "x" 
  32. erun
  33. BPHWC
  34. cmt rip, "<< OEP"
  35. //analyze
  36. ret
  37. addr:
  38. log "Ord : {d0}", counter
  39. log "Addr : {p0}", rax
  40. mov offset, rax
  41. counter++
  42. jmp next

Пришлось из-за одной команды линковать дебагер...)))
https://github.com/x64dbg/x64dbg/issues/637


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

Создано: 13 мая 2016 01:30 New!
Цитата · Личное сообщение · #20

Dimosz пишет:
Таких групп вышеперечисленных хэндлеров я насчитал несколько десятков, причём каждая из групп
VM_PUSH и VM_POP сохраняют регистры процессора и соответственно восстанавливают их в разном порядке.

Протащил за уши дамп, от оер и до старта стима, и.... после запуска процесса стимовским клиентом и до завершения приложения.
Передача управления основного контекста вм_двигла происходит всегда через один адрес, кому интересно лог приатачил.
Что происходит во вложенных "виртуализаторах" ( пока так назову), пока не разбирал..


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

| Сообщение посчитали полезным: ==DJ==[ZLO], hello, DICI BF, vden, mak, v00doo, ELF_7719116


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

Создано: 13 мая 2016 10:45 · Поправил: 13 мая 2016 15:04 vden New!
Цитата · Личное сообщение · #21

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

Code:
  1. P-Code             
  2. 0x0                PushContext 0x51321B4B:64, 0x14749F127:64, R11, RDX, RCX, RBX, RDI, RFL, R13, R15, RSI, R12, R10, RAX, R14, R9, RBP, R8, 0x0:64
  3. 0x1474744CA        Pop sp@0x90:64
  4. 0x1474744C5        Pop sp@0x30:64
  5. 0x1474744C0        Pop sp@0x98:64
  6. 0x1474744BB        Pop sp@0x88:64
  7. 0x1474744B6        Pop sp@0xB0:64
  8. 0x1474744B1        Pop sp@0x70:64
  9. 0x1474744AC        Pop sp@0xB8:64
  10. 0x1474744A7        Pop sp@0x40:64
  11. 0x1474744A2        Pop sp@0x38:64
  12. 0x14747449D        Pop sp@0x18:64
  13. 0x147474498        Pop sp@0x8:64
  14. 0x147474493        Pop sp@0x50:64
  15. 0x14747448E        Pop sp@0x78:64
  16. 0x147474489        Pop sp@0x68:64
  17. 0x147474484        Pop sp@0x28:64
  18. 0x14747447F        Pop sp@0x10:64
  19. 0x14747447A        Pop sp@0x0:64
  20. 0x147474475        Pop sp@0x60:64
  21. 0x147474470        Pop sp@0x20:64
  22. 0x14747446B        Pop sp@0x48:64
  23. 0x147474466        Push 0x0:16
  24. 0x147474460        Push 0x143DC5E30:64
  25. 0x147474454        ?
  26. 0x147474450        Pop sp@0x70:32
  27. 0x14747444B        Push 0x0:32
  28. 0x147474443        Pop sp@0x74:32
  29. 0x14747443E        Push sp@0x70:16
  30. 0x147474439        ?
  31. 0x147474435        Push 0x2:64
  32. 0x147474429        ?
  33. 0x147474425        Pop sp@0x28:64
  34. 0x147474420        Push 0xD8:64
  35. 0x147474414        ?
  36. 0x147474410        Pop sp@0x60:64
  37. 0x14747440B        ?
  38. 0x147474407        Push 0x147491236:64
  39. 0x1474743FB        Push 0x143DD24C8:64
  40. 0x1474743EF        ?
  41. 0x1474743EB        Push sp@0x0:64
  42. 0x1474743E6        Push sp@0x10:64
  43. 0x1474743E1        Push sp@0x48:64
  44. 0x1474743DC        Push sp@0x68:64
  45. 0x1474743D7        Push sp@0x78:64
  46. 0x1474743D2        Push sp@0x50:64
  47. 0x1474743CD        Push sp@0x8:64
  48. 0x1474743C8        Push sp@0x18:64
  49. 0x1474743C3        Push sp@0x38:64
  50. 0x1474743BE        Push sp@0x40:64
  51. 0x1474743B9        Push sp@0xB8:64
  52. 0x1474743B4        Push sp@0x70:64
  53. 0x1474743AF        Push sp@0xB0:64
  54. 0x1474743AA        Push sp@0x88:64
  55. 0x1474743A5        Push sp@0x98:64
  56. 0x1474743A0        Push sp@0x30:64
  57. 0x14747439B        PopContext R8, RBP, R9, R14, RAX, R10, R12, RSI, R15, R13, RFL, RDI, RBX, RCX, RDX, R11, RIP

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



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

Создано: 14 мая 2016 17:35 New!
Цитата · Личное сообщение · #22

По страничкам тыкну свои пять копеек.
Спасибо Dimosz , что сделал на этом акцент, а то галопом по европам, и как -то прошло мимо.
В общем стыренная команда исполняется в чистом виде.
Надо только зайти в страницу, и после первого джампа увидим родные опкоды.
Но...их бывает больше одной, и даже больше двух, у Dimosz во втором примере это показано.
В общем после ячейки с указателем на страницу указано сколько команд стырили..
Я рыдал целый час...

| Сообщение посчитали полезным: ELF_7719116, v00doo, Dimosz



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

Создано: 15 мая 2016 00:32 New!
Цитата · Личное сообщение · #23

Bronco пишет:
В общем стыренная команда исполняется в чистом виде.

На подобии такого было в старом старфорке, тоже вроде вм а после трассы, выходил на спёртые байты в чистом виде..

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

Создано: 15 мая 2016 19:29 · Поправил: 15 мая 2016 19:42 vden New!
Цитата · Личное сообщение · #24

Еще один пример вм-кода с точки входа

Code:
  1. Push RCX:64
  2. Push 0xFFFFFFFF86990E3F:64
  3. Push 0x1470B0EDD:64
  4. Push R13:64
  5. Push R15:64
  6. Push R10:64
  7. Push R9:64
  8. Push RBX:64
  9. Push R11:64
  10. Push R14:64
  11. Push RAX:64
  12. Push RDX:64
  13. Push RBP:64
  14. Push RSI:64
  15. Push RFL:64
  16. Push R12:64
  17. Push RDI:64
  18. Push R8:64
  19. Push 0x143EC936A:64
  20. Push 0x0:64
  21. Pop sp@0x10:64
  22. Pop sp@0x68:64
  23. Pop sp@0x0:64
  24. Pop sp@0x88:64
  25. Pop sp@0x60:64
  26. Pop sp@0x48:64
  27. Pop sp@0x90:64
  28. Pop sp@0xA8:64
  29. Pop sp@0x58:64
  30. Pop sp@0x20:64
  31. Pop sp@0x28:64
  32. Pop sp@0x98:64
  33. Pop sp@0x50:64
  34. Pop sp@0x38:64
  35. Pop sp@0x8:64
  36. Pop sp@0xB8:64
  37. Pop sp@0x78:64
  38. Pop sp@0xB0:64
  39. Pop sp@0xA0:64
  40. Pop sp@0x70:64
  41. Push 0x0:16
  42. Push 0x143ED5E90:64
  43. Pop v21:64
  44. v22:16 = ZeroExtend([v21:64]:8 to 16)
  45. Push v22:16
  46. Pop sp@0x20:32
  47. Push 0x0:32
  48. Pop sp@0x24:32
  49. Push sp@0x20:8
  50. Push RBP:64
  51. Push 0x2:64
  52. Pop v21:64
  53. Pop v22:64
  54. v23:64 = Add(v21:64, v22:64)
  55. Push v23:64
  56. Push RFL:64
  57. Pop sp@0x68:64
  58. Push 0xD8:64
  59. Pop v18:64
  60. Pop v19:64
  61. v20:64 = Add(v18:64, v19:64)
  62. Push v20:64
  63. Push RFL:64
  64. Pop sp@0xA0:64
  65. Pop v15:64
  66. Pop v16:8
  67. [v15:64]:8 = v16:8
  68. Push 0x14708B1A8:64
  69. Push 0x143EE24D8:64
  70. Pop v16:64
  71. v17:64 = [v16:64]:64
  72. Push v17:64
  73. Push sp@0x78:64
  74. Push sp@0xB8:64
  75. Push sp@0x8:64
  76. Push sp@0x38:64
  77. Push sp@0x50:64
  78. Push sp@0x98:64
  79. Push sp@0x28:64
  80. Push sp@0x20:64
  81. Push sp@0x58:64
  82. Push sp@0xA8:64
  83. Push sp@0x90:64
  84. Push sp@0x48:64
  85. Push sp@0x60:64
  86. Push sp@0x88:64
  87. Push sp@0x0:64
  88. Push sp@0x70:64
  89. Pop RCX:64
  90. Pop R8:64
  91. Pop RDI:64
  92. Pop R12:64
  93. Pop RFL:64
  94. Pop RSI:64
  95. Pop RBP:64
  96. Pop RDX:64
  97. Pop RAX:64
  98. Pop R14:64
  99. Pop R11:64
  100. Pop RBX:64
  101. Pop R9:64
  102. Pop R10:64
  103. Pop R15:64
  104. Pop R13:64
  105. Pop RIP:64


С трансформацией Push-Pop в Mov (хотя я пока не уверен что тут все корректно):

Code:
  1. sp@0x10:64 = 0x0:64
  2. sp@0x68:64 = 0x143EC936A:64
  3. sp@0x0:64 = R8:64
  4. sp@0x88:64 = RDI:64
  5. sp@0x60:64 = R12:64
  6. sp@0x48:64 = RFL:64
  7. sp@0x90:64 = RSI:64
  8. sp@0xA8:64 = RBP:64
  9. sp@0x58:64 = RDX:64
  10. sp@0x20:64 = RAX:64
  11. sp@0x28:64 = R14:64
  12. sp@0x98:64 = R11:64
  13. sp@0x50:64 = RBX:64
  14. sp@0x38:64 = R9:64
  15. sp@0x8:64 = R10:64
  16. sp@0xB8:64 = R15:64
  17. sp@0x78:64 = R13:64
  18. sp@0xB0:64 = 0x1470B0EDD:64
  19. sp@0xA0:64 = 0xFFFFFFFF86990E3F:64
  20. sp@0x70:64 = RCX:64
  21. v21:64 = 0x143ED5E90:64
  22. v22:16 = ZeroExtend([v21:64]:8 to 16)
  23. sp@0x20:32 = v22:16
  24. sp@0x24:32 = 0x0:32
  25. v21:64 = 0x2:64
  26. v22:64 = RBP:64
  27. v23:64 = Add(v21:64, v22:64)
  28. sp@0x68:64 = RFL:64
  29. v18:64 = 0xD8:64
  30. v19:64 = v23:64
  31. v20:64 = Add(v18:64, v19:64)
  32. sp@0xA0:64 = RFL:64
  33. v15:64 = v20:64
  34. v16:8 = sp@0x20:8
  35. [v15:64]:8 = v16:8
  36. Push 0x14708B1A8:64
  37. v16:64 = 0x143EE24D8:64
  38. v17:64 = [v16:64]:64
  39. RCX:64 = sp@0x70:64
  40. R8:64 = sp@0x0:64
  41. RDI:64 = sp@0x88:64
  42. R12:64 = sp@0x60:64
  43. RFL:64 = sp@0x48:64
  44. RSI:64 = sp@0x90:64
  45. RBP:64 = sp@0xA8:64
  46. RDX:64 = sp@0x58:64
  47. RAX:64 = sp@0x20:64
  48. R14:64 = sp@0x28:64
  49. R11:64 = sp@0x98:64
  50. RBX:64 = sp@0x50:64
  51. R9:64 = sp@0x38:64
  52. R10:64 = sp@0x8:64
  53. R15:64 = sp@0xB8:64
  54. R13:64 = sp@0x78:64
  55. RIP:64 = v17:64


Эта куча инструкций делает подготовку к вызову GetCommandLineW (0x143EE24D8), устанавливает адрес возврата 0x14708B1A8 и еще какую-то мелочь.

Это только один блок. В теории, если собрать все блоки (построить граф функции), убрать мусор, то можно было бы изучать вирт. код.

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



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

Создано: 15 мая 2016 20:31 New!
Цитата · Личное сообщение · #25

vden, а сколько в блоке может быть примитивов?

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

Создано: 15 мая 2016 20:42 · Поправил: 15 мая 2016 20:57 vden New!
Цитата · Личное сообщение · #26

Не знаю. Наверно, по-разному. В этом 105. В паре блоков я видел 130, 180.

Я пока получил неполный лог 3 блоков:
1. call GetCommandLineW
2. call CommandLineToArgvW
3. jcc


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

Создано: 18 мая 2016 09:55 · Поправил: 18 мая 2016 13:19 Bronco New!
Цитата · Личное сообщение · #27

BRO-HO-HO
Хз может и не попадалось раньше, но такое вижу в первый раз, приложение на плюсах имеет таблицу инициализаци...
Опечатали конечно дохрена, имеем пока две вм, одна основная, вторая для фунок из таблицы инит.
Антидамп забойный, дамп воркает одну сессию. после ребута пк, начинаются егоры.
Вобщем запустил дамп, отрисовался скрин_заставка и настройки, на меню игры падаем..))) Но дело сдвинулось..хотя работы не початый край.
Май фёрст картун
https://www.sendspace.com/file/r1lg0e

| Сообщение посчитали полезным: SER[G]ANT



Ранг: 147.7 (ветеран)
Статус: Участник
sv_cheats 1

Создано: 18 мая 2016 13:26 New!
Цитата · Личное сообщение · #28

Может мой вопрос будет слишком глуп и неуместен, но когда кряк?


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

Создано: 18 мая 2016 13:36 New!
Цитата · Личное сообщение · #29

SER[G]ANT пишет:
но когда кряк?

а хер его знает...сутками над ней не будешь висеть...так по часику за вечер. Задача минимум обойти антидамп на одном девайсе, потом разьираться с цпуид, ну а в завершение от стима отрывать..
SER[G]ANT, как думаешь сколько времени займёт?


Ранг: 72.1 (постоянный)
Статус: Участник

Создано: 18 мая 2016 18:31 · Поправил: 18 мая 2016 20:07 ==DJ==[ZLO] New!
Цитата · Личное сообщение · #30

Приветствую! Может кому будет интересно на riddit-e эмуль цпуид пишут.
--> reddit doom denuvo <--.


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

Создано: 19 мая 2016 22:19 New!
Цитата · Личное сообщение · #31

BRO-HO-HO
Мультик, Серия 2, ФИНАЛЬНАЯ !!!
--> Link <--
Задача минимум решена, антидамп Денуво пошёл лесом.
Эмуляция CPUID может и хорошее решение, но не гарантированное...хз стоит на это время тратить?
На 100 % не уверен, но часть родного OEP, всё таки целая, процедуру WinMain пожевали, что удивительно пожевали вмп2, то есть табличка примитивов на месте..и в идеале конечно, декомпилить WinMain и функи из таблицы инициализации, и тогда и CPUID и Steam идут лесом.

| Сообщение посчитали полезным: SER[G]ANT, inf1kek, alex208210, ClockMan, ==DJ==[ZLO], HandMill, hello, DICI BF, Dart87, MarShaLL22, OLEGator, 6oTBa, Exaktus_, mak, zNob, ELF_7719116, Jim DiGriz

<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 50 . 51 . >>
 eXeL@B —› Протекторы —› Crack SecuROM & DENUVO

Видеокурс ВЗЛОМ