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

 eXeL@B —› Протекторы —› Crack SecuROM & DENUVO
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 52 . 53 . >>
Посл.ответ Сообщение

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 марта 2012 14:24 · Поправил: ELF_7719116
· Личное сообщение · #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

▓▓
615d_22.09.2013_EXELAB.rU.tgz - Sony DADC SecuROM vulnerability.zip
c177_01.02.2017_EXELAB.rU.tgz - 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, anarh1st47


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

Создано: 03 февраля 2017 02:50 · Поправил: Haoose-GP
· Личное сообщение · #2

Bronco
> Где народ минимальный комплект взял загадка
Что же тут загадочного? Взят с бета-версии игры в стиме. Она уже доступна для журналистов/ютуберов (Весит 25,7 Гб). Для простых смертных она будет доступна немного позже, сегодня =) Можно поподробнее что там такого интересного в этой версии? )




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

Создано: 03 февраля 2017 03:06
· Личное сообщение · #3

Haoose-GP пишет:
Взят с бета-версии игры в стиме

да понятно что мы в лаптях...
меня интересует, была ли возможность активировать и запустить.
Haoose-GP пишет:
Можно поподробнее что там такого интересного в этой версии? )

весь шаблонный стартовый код как на ладошке.
Можешь сам посмотреть, забей в поиске команды
Code:
  1. NOP WORD PTR [RAX + RAX]
  2. или
  3. NOP DWORD PTR [RAX]

Но между методами какое-то линейное мясо, много статических нопов, коротких прыжков как в аспре.
Впечатление, что заготовка для чего то другого.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 03 февраля 2017 03:24
· Личное сообщение · #4

Bronco
Бета уже доступна для скачивания и игры (20 минут назад включили), так что да, возможность есть. Написал в ЛС.




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

Создано: 03 февраля 2017 03:42
· Личное сообщение · #5

Haoose-GP пишет:
Бета уже доступна для скачивания

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

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 03 февраля 2017 03:46
· Личное сообщение · #6

Bronco пишет:
Впечатление, что заготовка для чего то другого


Наверняка в торопях судорожно прикрутили новую навесную защиту вместо вмпрота, так как его вм уже
разобрана, в надежде что это задержит Спаев чуток подольше, чем 5 дней ) Ну и раз народ пишет, что
"dbdata" по другому выглядит, свою часть с генерацией лицухи поменяли, опять же чтобы у Спаев ушло
время на разбор нового алгоритма.




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

Создано: 03 февраля 2017 04:06
· Личное сообщение · #7

oldman пишет:
Наверняка в торопях судорожно прикрутили новую навесную защиту вместо вмпрота

вот зачистим и посмотрим что в остатке, а так то лучше посмотри сам...
oldman пишет:
Ну и раз народ пишет, что "dbdata" по другому выглядит,

да это всё мелочи, местами даже удобные, под каждый билд свой айди лицухи.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 03 февраля 2017 04:14 · Поправил: difexacaw
· Личное сообщение · #8

Bronco

> NOP WORD PTR [RAX + RAX]

Эта инструкция используется только для одной цели и по одной причине. Это примитивный морф(в ноп произвольный MRM). Нормальный есно такое не юзает. Годность морфа определяется по валидности графа данных - не связанный поток инструкций это легко вычищаемый треш. А ноп это ничего.

-----
vx





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

Создано: 03 февраля 2017 04:21
· Личное сообщение · #9

difexacaw, так их никто не юзает..хз может это маркеры, а может в х64 так адресацию выравнивают.
кто нопами, кто интами, в дельфе своё, просто после них по листингу дизасма идёт нормальный чистый код методов или подпрограм.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 03 февраля 2017 04:32
· Личное сообщение · #10

Bronco

Тогда этот ноп не выполняется, если вставлен для выравнивания. Кстате как это узнать без отладки

-----
vx





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

Создано: 03 февраля 2017 04:47
· Личное сообщение · #11

difexacaw пишет:
Кстате как это узнать без отладки

Да я пока занят передачей управления на такие участки
Но как пример есть и явное исполнение таких инструкций. и допустим jmp [addr] вполне влезет на 6 байтов.
Возможно так маркируют.
Code:
  1. 0000000145715CFD  | NOP DWORD PTR DS:[RAX]  
  2. 0000000145715D00  | SUB RSP, 18  
  3. 0000000145715D04  | OR EDX, FFFFFFFF   
  4. 0000000145715D07  | LEA R8, QWORD PTR DS:[141D38168]  | 141D38168:"Chapter"
  5. 0000000145715D0E  | MOV DWORD PTR SS:[RSP], EDX  
  6. 0000000145715D11  | LEA R9, QWORD PTR DS:[141CC50F0] 
  7. 0000000145715D18  | MOV AL, 43  
  8. 0000000145715D1A  | NOP WORD PTR DS:[RAX + RAX] 
  9. 0000000145715D20  | MOVZX ECX, BYTE PTR SS:[RSP]  
  10. 0000000145715D24  | LEA R8, QWORD PTR DS:[R8 + 1] 
  11. 0000000145715D28  | MOVZX EAX, AL 
  12. 0000000145715D2B  | XOR RCX, RAX 
  13. 0000000145715D2E  | MOV EAX, EDX
  14. 0000000145715D30  | SHR EAX, 8   
  15. 0000000145715D33  | MOV EDX, DWORD PTR DS:[R9 + RCX * 4] 
  16. 0000000145715D37  | XOR EDX, EAX  
  17. 0000000145715D39  | MOVZX EAX, BYTE PTR DS:[R8]  
  18. 0000000145715D3D  | MOV DWORD PTR SS:[RSP], EDX 
  19. 0000000145715D40  | TEST AL, AL  
  20. 0000000145715D42  | JNE sgw3.145715D20  
  21. 0000000145715D44  | NOT EDX  
  22. 0000000145715D46  | MOV DWORD PTR DS:[144AA60E4], EDX  
  23. 0000000145715D4C  | ADD RSP, 18  
  24. 0000000145715D50  | RET  


-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 03 февраля 2017 05:05
· Личное сообщение · #12

Bronco

Смотрите, нарушение DFG(инвалидный):

1. Если допустить x5D1A это выравнивание - выше не процедура, так как нет из неё возврата, тогда нет смысла в выравнивании(если не NPX).
2. DFG корреляция - перезапись регистра, mov al/mov eax.

По выборке данных - код валид, отсутствует инвалид адресация. Причём есть валид цикл. До 5D1A либо генерация треша автоматикой, либо это данные.

-----
vx




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

Создано: 03 февраля 2017 09:14 · Поправил: oldman
· Личное сообщение · #13

Bronco пишет:
вот зачистим и посмотрим что в остатке, а так то лучше посмотри сам...


По вызовам апи если смотреть, старого загрузчика походу нет вообще, почти сразу начинают получать
адреса стим-апи, далее читают файл лицухи. Как выше написали, его ждут в текстовом виде, идет вызов
lstrlenA от содержимого файла с лицухой. Ну далее уже под вм начинают эту "лицуху" извращать по
всякому, лень стало разбираться, так как ВМ реально гнусная, какая то 8 битная, перегруженная
обфускацией херня:

Code:
  1. 0000000145D1EC6C | lea     r10d, dword ptr ds:[edi + 30]
  2. 0000000145D1EC71 | not     r10b                         
  3. 0000000145D1EC74 | movsxd  r10, edi                     
  4. 0000000145D1EC77 | movsxd  r10, edi                     
  5. 0000000145D1EC7A | movzx   r10d, spl                    
  6. 0000000145D1EC7E | mov     qword ptr ds:[rcx + 48], rax 
  7. 0000000145D1EC82 | movzx   r10w, sil                    
  8. 0000000145D1EC87 | movzx   r10w, r8b                   
  9. 0000000145D1EC8C | not     r10b                        
  10. 0000000145D1EC8F | movsx   r10d, spl                   
  11. 0000000145D1EC93 | movzx   r10d, spl                   
  12. 0000000145D1EC97 | movsx   r10w, sil                   
  13. ....
  14. 0000000145D1ECA0 | not     r10d            
  15. 0000000145D1ECA3 | movsx   r10w, sil       
  16. 0000000145D1ECA8 | movsx   r10d, sil       
  17. 0000000145D1ECAC | movsx   r10w, dil       
  18. 0000000145D1ECB1 | mov     r10d, 472A7189
  19. 0000000145D1ECB7 | pushfq                  
  20. 0000000145D1ECB8 | add     r10d, CC2501C0  
  21. 0000000145D1ECB7 | pushfq                               
  22. 0000000145D1ECB8 | add     r10d, CC2501C0               
  23. 0000000145D1ECBF | jae     sgw3.147962544               
  24. 0000000145D1ECC5 | mov     r10d, dword ptr ss:[rsp + 8] 
  25. 0000000145D1ECCA | mov     r10d, dword ptr ss:[rsp + 8] 
  26. 0000000145D1ECCF | movzx   r10d, di                     
  27. 0000000145D1ECD3 | inc     r10d                         
  28. 0000000145D1ECD6 | add     r10d, r10d                   
  29. 0000000145D1ECD9 | mov     r10, qword ptr ss:[rsp]      


Верните старый добрый 64-битный вмпрот

Bronco пишет:
да это всё мелочи, местами даже удобные, под каждый билд свой айди лицухи.


не, я не про название файла, а про содержимое, Haoose пишет что текстовая стала, так и получается

---

Гыы:

Code:
  1. rbx=7ffe0000
  2.  
  3. 000000014A264F74 | add     ecx, dword ptr ds:[rbx + 27C]
  4. 000000014A264F7A | add     ecx, dword ptr ds:[rbx + 280]
  5. 000000014A264F80 | add     ecx, dword ptr ds:[rbx + 284]
  6. 000000014A264F86 | add     ecx, dword ptr ds:[rbx + 30]
  7. 000000014A264F89 | add     ecx, dword ptr ds:[rbx + 34]
  8. 000000014A264F8C | add     ecx, dword ptr ds:[rbx + 38]
  9. 000000014A264F8F | add     ecx, dword ptr ds:[rbx + 3C]
  10. 000000014A264F92 | add     ecx, dword ptr ds:[rbx + 40]
  11. 000000014A264F95 | add     ecx, dword ptr ds:[rbx + 44]
  12. 000000014A264F98 | add     ecx, dword ptr ds:[rbx + 48]
  13. 000000014A264F9B | add     ecx, dword ptr ds:[rbx + 4C] 
  14. 000000014A264F9E | add     ecx, dword ptr ds:[rbx + 26C]
  15. 000000014A264FA4 | add     ecx, dword ptr ds:[rbx + 270]
  16. 000000014A264FAA | add     ecx, dword ptr ds:[rbx + 2E8]
  17. 000000014A264FB0 | ret                                  


"Хэшики" с шары считаем




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

Создано: 03 февраля 2017 12:07
· Личное сообщение · #14

Какая суета а всё и за того что разрабы Conan Exiles - Barbarian Edition с начало выпустили игру с денуво а потом без неё видать блуковича передёрнуло после этого=)))

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





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

Создано: 03 февраля 2017 12:47 · Поправил: Bronco
· Личное сообщение · #15

oldman пишет:
а про содержимое, Haoose пишет что текстовая стала

как то она увеличилась в размере в 2 раза.
не ну я просто ляпнул что могут, а оно вон как...
но хз может из-за того что hextostring.
Символьный ряд для base64_mod присутствует, даже нашёлся указатель на него в этом мясе. Но сам алгоритм вроде как размазали, что косвенно намекает, что это новая реализация вм аля денуво. Но виртуалить ещё много чего не умеем.
Передача управления, после эпилога заканчивается вроде так
Code:
  1. 000000014565306E | 48 8B 49 40 | MOV RCX, QWORD PTR DS:[RCX + 40] 
  2. 0000000145653072 | C3               | RET 

oldman пишет:
ВМ реально гнусная, какая то 8 битная, перегруженная обфускацией херня:

хз что это я не спец по вм...но шняга цикличная, чем-то всякие солидшилды напоминает. спецы если нагрянут расскажут.
oldman пишет:
"Хэшики" с шары считаем

значит концепт старый, поздно батенька Блу баржоми пить..
difexacaw пишет:
До 5D1A либо генерация треша автоматикой, либо это данные.

Это валидный код процедуры, зачем эта инструкция по ходу дела выясним, пока она как "статик ноп".
add
и это ...а что собственно под беткой понимают...
18 гиг не многовато ли для бета теста, с учётом того что локализация ограничена.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 03 февраля 2017 13:28 · Поправил: oldman
· Личное сообщение · #16

difexacaw пишет:

По выборке данных - код валид, отсутствует инвалид адресация. Причём есть валид цикл. До 5D1A либо генерация треша автоматикой, либо это данные.


Ты особо не заморачивайся автоматикой и сложными теориями, в денувке всё попроще, в статике ты видешь:

Code:
  1. 0000000145715D18  | MOV AL, 43  
  2. 0000000145715D1A  | NOP WORD PTR DS:[RAX + RAX]


А в нужный момент это станет к примеру чем-нибудь типа:

Code:
  1. 0000000145715D18  | MOV EAX, dword ptr [Охеренно_важный_адрес]
  2.                                   | RET


И потом опять внезапно превратится в NOP

Добавлено спустя 3 минуты
Bronco пишет:
и это ...а что собственно под беткой понимают...
18 гиг не многовато ли для бета теста, с учётом того что локализация ограничена.


Как качнуть/поучавстовать? На сайте у них зарегался , ключ пока не шлют




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

Создано: 03 февраля 2017 13:37
· Личное сообщение · #17

oldman пишет:
Как качнуть/поучавстовать?

Поздно спохватились. Раньше надо было регаться )
Написал в ЛС ;)



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

Создано: 03 февраля 2017 14:24
· Личное сообщение · #18

Сорян за жесткий оффтоп. Вот, с хакерами-ператами тут гибридная война идет, и я подумал - а чего бы не пнуть Блу? Балуюсь Юнити. Про что бы сделать игру? Про нашу любимую защиту! :D

Жанр стеб-РПГ. Выбираешь персонажа - Bronco (если не против), mkdev, CPY (в виде Челентано, наверное), CODEX. Главных боссов 3 - сам Блу, его жена, и какой то их третий испанец. Враги - активаторы, форумные тролли, и какие то постоянно мутирующие персонажи, типа куски вм.

Подкидывайте идейки :D




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

Создано: 03 февраля 2017 16:06
· Личное сообщение · #19

BFG18 пишет:
если не против

ну что поделать, без популяризации , народ в тему(не в топ!) не подтянется.
Доктор Ливси не чего так типаж, после украинского мьюзикла, так ваще классический троль..
Но чего то мне мемом не хочется быть.
На самом деле у защиты есть чему поучиться, парни учли много аспектов, но на выходе, троллят по взрослому только потребителя, а не пиратов. Куча прологов_эпилогов, контекст то в сигментные регистры, то обратно, большинство данных от среды снимают в циклах, в обработчиках событий, а это с прологами_эпилогами, всё стопятцот раз по кругу. И ...всё это яйца выеденного не стоит, если главный аспект без которого не работают прогресс и сейвы, сертификат клиентского приложения.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 03 февраля 2017 20:12
· Личное сообщение · #20

translate not translating much xd wrong a bit



seems 32 bit old , added in 64 ver 4?


dump works on my cpu i5-750 http://www80.zippyshare.com/v/Byfjk1TE/file.html

but not working on other cpu , dumped same on other cpu worked there ok


cpuid... anything about this




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

Создано: 03 февраля 2017 20:30
· Личное сообщение · #21

mkdev пишет:
dump works on my cpu i5-750

--> re-read what users write <--
--> preferably more than once <--

Добавлено спустя 4 часа 33 минуты
oldman пишет:
Гыы:

отож...вмпрот ещё фору даст этой не до вм с метлой в хвосте, по скорости обработки данных и эмуляции логики.
С такими тормозами, сабжу приходится брать всё и сразу.
Все яйца в одну корзину...это что там свежая струя в команде..
Code:
  1. 0000000146E5E51E  0000000002450000  

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

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 04 февраля 2017 04:46
· Личное сообщение · #22

Какая прелесть. На это говнецо все игры при последующем обновлении (полу)автоматом перейдут? Или говномесам придётся доплачивать за "апгрейд" версии?




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

Создано: 04 февраля 2017 06:02
· Личное сообщение · #23

Bronco

> контекст то в сигментные регистры, то обратно

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

-----
vx


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


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

Создано: 04 февраля 2017 13:43 · Поправил: Bronco
· Личное сообщение · #24

difexacaw, ок..это мой косяк. я подразумевал 128 битные и выше.
--------------
Хз что это за вм, и вм ли это.
Основной метод стартового кода просто раскидан по секции защиты.
Безусловные переходы между участками, эмулируют 2 способами.
Первый тип разнообразный , но суть одинакова, как примеры:
Code:
  1. 1:
  2. 00000001459235F8  | LEA R9, QWORD PTR DS:[147CC39B2]  
  3. 00000001459235FF  | SUB R9, 5078  
  4. 0000000145923606  | JMP R9 
  5. 2:
  6. 000000014AE30498  | MOV EAX, 48762A0A  
  7. 000000014AE3049D  | ADD EAX, 46FAE23A  
  8. 000000014AE304A2  | JO sgw3.14610BFC9 
  9. Есть пустышки:
  10. 00000001466E4C32  | MOV R9D, 229A3D7A   
  11. 00000001466E4C45  | SUB R9D, 2E95E3E6 
  12. 00000001466E4C4C  | CMP R9D, F4045994   
  13. 00000001466E4C53  | JNE sgw3.1466E4A1B 

Второй тип работает по табличке.
Code:
  1. 000000014B10932A  | LEA RSI, QWORD PTR DS:[146D05C6D] | указатель на JMP R15 
  2. 000000014B109331  | PUSH RSI      
  3. 000000014B109332  | LEA RCX, QWORD PTR DS:[<Ordinal30>] | база образа 
  4. 000000014B109339  | MOVZX R15, WORD PTR DS:[R13] | ординал из таблицы
  5. 000000014B10933E  | LEA R13, QWORD PTR DS:[R13 + 2] | смещаем указатель на табличку (add r13,2)
  6. 000000014B109342  | MOVSXD R15, DWORD PTR DS:[RCX + R15 * 4 + 9375477] | берём из массива дельту
  7. 000000014B10934A  | LEA R10, QWORD PTR DS:[149375477] 
  8. 000000014B109351  | NOT R15   
  9. 000000014B109354  | SUB R15, R10 
  10. 000000014B109357  | NOT R15  
  11. 000000014B10935A  | RET   

в итоге имеем адрес следующего участка. можно сразу и поправить, и сохранить, чтобы не кружить.
Ещё эмулируют коллы, пока вникаю, ибо тут работает метла, подчищают всё что можно.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..


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

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

Создано: 05 февраля 2017 07:22
· Личное сообщение · #25

Ну что, можно наконец объявить, что в Снайпере 3 используется новая версия денувки?

1) Вмпрот выпилен, и заменён на тормозную псевдо-вм.

2) Сильно упрощён/убран загрузочный код, убрали страницы по 1000, вызовы VirtualQuery, и т.д.

3) Я всё ждал, когда это случится, ибо было неизбежно.. и вот оно.. теперь проверяют данные из шаредаты
и вызывают cpuid прямо во время игрового процесса!


Вызовы не частые, происходят судя по всему случайным образом, для примера за порядка 5 минут игры:

Code:
  1. cpuid rip=0000000146BBD51A eax=00000001
  2. cpuid rip=0000000146BBD51A eax=00000001
  3. cpuid rip=0000000001CFAD9C eax=00000001
  4. cpuid rip=0000000146BBD51A eax=00000001
  5. cpuid rip=0000000146BBD51A eax=00000001
  6. cpuid rip=00000001493756A5 eax=00000001
  7. cpuid rip=00000001493756A5 eax=00000001
  8. cpuid rip=0000000146CE4997 eax=80000002
  9. cpuid rip=0000000146CE4997 eax=80000003
  10. cpuid rip=0000000146CE4997 eax=80000004
  11. cpuid rip=0000000146C7D400 eax=00000001
  12. cpuid rip=0000000146C7D400 eax=00000001


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

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


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

Создано: 05 февраля 2017 14:10
· Личное сообщение · #26

oldman пишет:
Ну что, можно наконец объявить

это "типа король здох, да здравствует король!" ???
oldman пишет:
и вот оно..

угу, и дна у этого бес предела нет.
Но резюме уже со шлейфом, так что не за горами, очередное " ВЫ УВОЛЕНЫ !!"

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 05 февраля 2017 14:27 · Поправил: Haoose-GP
· Личное сообщение · #27

Очередной релиз от итальянцев: Battlefield.1-CPY

oldman
Исходя из вышенаписанного - взлом теперь будет легче или сложнее, по вашему мнению? CPY справятся? ))

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

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

Создано: 05 февраля 2017 14:33 · Поправил: oldman
· Личное сообщение · #28

Bronco пишет:
Но резюме уже со шлейфом, так что не за горами, очередное " ВЫ УВОЛЕНЫ !!"


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



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 05 февраля 2017 14:34
· Личное сообщение · #29

Так как все уже успели попинать новую убер-тормознутую версию "new wave" денувы (хотя в стиме и у разрабов не написано, что это denuvo. ну понятно, что если ВНЕЗАПНО взломают, то разрабы знают как отмазаться), и я внесу свой ничтожный вклад в разговор.
Bronco пишет:
Хз что это за вм, и вм ли это.

Это нечто больше приближенное к white-box cryptography. Здесь нет, как таковых лент p-code; есть некая структурная привязка к стеку; логика подачи данных на важные инструкции; если выбросить полиморф и обфускацию, то это такой же subroutine из оригинальной программы (часть инструкций даже совпадает с оригиналом, впрочем, это вероятно из-за сырости данной конструкции) , только с прикрученной системой обмена данных. Полагаю так-же что все эти переходы внутри (movsxd r15, dword ptr [r8 + r15*4 + 0x9375477] и статические lea,push, ret) формальны и определенных границ там, там скорее всего нет. Вязаться нужно к стеку. В частности, rsp пытаются прятать в другие регистры (впрочем, я давно так тоже делаю). Я полагаю, что некоторую ясность может внести mak, по данному вопросу.
Bronco пишет:
Передача управления, после эпилога заканчивается вроде так

По-существу:
Code:
  1. //начало псведо-функции (vm)//
  2. lea rsp, [rsp - 0x420] //sub rsp, 0x420 - первое выделение стека
  3. mov qword ptr [rsp], r11 //вaжнaя инcтрукция, если хотим быстро выйти в конец
  4. mov r11, rsp //r11 == rsp
  5. mov qword ptr ds:[r11+10],rbx //сейвим регистры
  6. mov qword ptr ds:[r11+50],rbp
  7. mov qword ptr ds:[r11+18],rsi
  8. mov qword ptr ds:[r11+38],rdx
  9. mov qword ptr ds:[r11+8],r13
  10. mov qword ptr ds:[r11+28],r14
  11.  
  12.  
  13. lea rsp, [rsp - 0x1a8] //sup rsp, 0x1a8 - второе выделение стека
  14. mov rbx, rsp //rbx == rsp
  15. lea rbx, [rbx + 0x5c8] //rbx, как rbp
  16. and rsp, 0xfffffffffffffff0 //характерное обнуление
  17. sub rsp, 8
  18. mov qword ptr [r11 + 0x140], rbx
  19.  
  20. // за это уже написали выше
  21. lea r13, [0x148507940] //инициализация shift-таблички
  22.  
  23. movzx r15, word ptr [r13]
  24. lea r13, [r13 + 2] //shift next (word)
  25.  
  26. lea r8, [0x140000000]
  27. movsxd r15, dword ptr [r8 + r15*4 + 0x9375477]
  28. lea rdx, [0x149375477]
  29. add r15, rdx
  30. jmp r15 //jmp next
  31. --------------------------
  32. mov r8,qword ptr ds:[r11+40] //вытаскиваем всех обратно
  33. mov rsp,qword ptr ds:[r11+140]
  34. mov r11,qword ptr ds:[r11] //ориентируясь по второй инструкции
  35. ret //конец

ещё начало-хвост:
Code:
  1. 00000001457465C0 | lea rsp,qword ptr ss:[rsp-420]   //sub rsp, 0x420                                 |
  2. 00000001457465C8 | mov qword ptr ss:[rsp+40],rcx                                     |
  3. ---------------------------------------
  4. 0000000148AA499D | add r8,0                                                          |
  5. 0000000148AA49A1 | mov r8,qword ptr ds:[r8]                                          |
  6. 0000000148AA49A4 | mov rsp,qword ptr ds:[rcx+118]                                    |
  7. 0000000148AA49AB | mov rcx,qword ptr ds:[rcx+40]    //+40                                 |
  8. 0000000148AA49AF | ret

Собственно некоторые критичные асм инструкции хорошо видны внутри:
Code:
  1. 000000014996EC47 | cmp qword ptr ds:[r10],0    // (HMODULE)steamclient64 == 0 
  2. ....
  3. 00000001498963D8 | mov rax,qword ptr ds:[rax]
  4. 00000001498963EB | cmp qword ptr ds:[rdx],0      //steamclient64.createinfterface == 0
  5.  
  6. 0000000148B2DF12 | movsx eax,byte ptr ds:[rcx+rax]   //decode  licence string (узнаваема, дааа)
  7. /////////////////////////////////////


Обфускация, чаще всего, связана с необходимостью перетасовать регистры. В данном случае mov r12, r10:
Code:
  1. 0000000147C52E73 | movabs r12,FFFFFFFF9D3F64F4                                     |
  2. 0000000147C52E7D | add r12,62C09B0C                                                | //r12 =0
  3. 0000000147C52E84 | add r10,r12                                                     | //r10+0=r10
  4. 0000000147C52E87 | inc r12d                                                        | //r12=1
  5. 0000000147C52E8A | test si,BA0                                                     | //trash
  6. 0000000147C52E8F | sub r12,r12                                                     | //1-1=0
  7. 0000000147C52E92 | add r12,r10                                                     | //mov r12, r10
  8. 0000000147C52E95 | add r12,0                                                       | //r12+0=r12
  9. 0000000147C52E99 | mov r12,qword ptr ds:[r12]                                      | //r12 = [r12]

oldman пишет:
Сильно упрощён/убран загрузочный код, убрали страницы по 1000, вызовы VirtualQuery, и т.д.

Разве что от единственного VirtualAlloc не отказались (он в отдельной секции, самая первая псевдо-функция передаёт туда управление):
Code:
  1. 000000014B281000 | lea rsp,qword ptr ss:[rsp-28]                     |
  2. 000000014B281008 | mov ecx,0                                         |
  3. 000000014B28100D | mov edx,15F30                                     |
  4. 000000014B281012 | mov r8d,3000                                      |
  5. 000000014B281018 | mov r9d,40                                        | 
  6. 000000014B28101E | call qword ptr ds:[<&VirtualAlloc>]      //понятно, что можно заменить сразу на статику         |
  7. 000000014B281024 | lea rcx,qword ptr ds:[147CF6CE1]                  |
  8. 000000014B28102B | cmp qword ptr ds:[rcx],0       //раскидываем значения                   |
  9. 000000014B28102F | je sgw3.14B281043                                 |
  10. 000000014B281031 | mov edx,dword ptr ds:[rcx+8]                      |
  11. 000000014B281034 | mov rbx,qword ptr ds:[rcx]                        |
  12. 000000014B281037 | mov qword ptr ds:[rbx],rax                        |
  13. 000000014B28103A | add qword ptr ds:[rbx],rdx                        |
  14. 000000014B28103D | add rcx,C                                         |
  15. 000000014B281041 | jmp sgw3.14B28102B                                |
  16. 000000014B281043 | lea rsp,qword ptr ss:[rsp+28]                     |
  17. 000000014B281048 | ret                                               |

Кстати, довольно интересно, что фиксированные оффсеты для динамики.
oldman пишет:
"Хэшики" с шары считаем

Небольшое уточнение - ещё для kernel32/kernelbase/ntdll, PEB и CPUID. Динамика (VirtualAlloc, что выше) + статика (в секции)
Code:
  1. //kernel32
  2. 000000014591648F | xor rsi,rax                                       |
  3. 0000000145916492 | mov eax,dword ptr ds:[rsi+3C]                     |
  4. 0000000145916495 | add rsi,rax                                       |
  5. 0000000145916498 | add rsi,88                                        |
  6. 000000014591649F | add edx,dword ptr ds:[rsi]                        |
  7. ....
  8. 00000001459164BF | add edx,dword ptr ds:[rsi+34]                     |
  9. 00000001459164C2 | ret                                               |
  10.  
  11. //kernelbase
  12. 000000014591648F | add rsi,rax                                       |
  13. 0000000145916492 | mov eax,dword ptr ds:[rsi+3C]                     |
  14. 0000000145916495 | add rsi,rax                                       |
  15. 0000000145916498 | add rsi,88                                        |
  16. 000000014591649F | add edx,dword ptr ds:[rsi]                        |
  17. ....
  18. 00000001459164BF | add edx,dword ptr ds:[rsi+34]                     |
  19. 00000001459164C2 | ret                                               |
  20.  
  21. //ntdll
  22. 000000014591648F | sub rsi,rax                                       |
  23. 0000000145916492 | mov eax,dword ptr ds:[rsi+3C]                     |
  24. 0000000145916495 | add rsi,rax                                       |
  25. 0000000145916498 | add rsi,88                                        |
  26. 000000014591649F | add edx,dword ptr ds:[rsi]                        |
  27. ...
  28. 00000001459164BF | add edx,dword ptr ds:[rsi+34]                     |
  29. 00000001459164C2 | ret                                               |
  30.  
  31. //PEB
  32. 000000014B316334 | mov rdi,qword ptr gs:[60]                                         |
  33. 000000014B31633D | mov ebx,dword ptr ds:[rdi+118]                                    |
  34. 000000014B316343 | add ebx,dword ptr ds:[rdi+11C]                                    |
  35. 000000014B316349 | add ebx,dword ptr ds:[rdi+12C]                                    |
  36. 000000014B31634F | add ebx,dword ptr ds:[rdi+130]                                    |
  37. 000000014B316355 | add ebx,dword ptr ds:[rdi+B8]                                     |
  38. 000000014B31635B | ret  
  39.  
  40. //cpuid
  41. 000000014B31DFA2 | xor esi,esi                                                       |
  42. 000000014B31DFA4 | mov edi,80000002                                                  |
  43. 000000014B31DFA9 | cmp edi,80000005                                                  |
  44. 000000014B31DFAF | je sgw3_dump_scy.14B31DFC1                                        |
  45. 000000014B31DFB1 | mov eax,edi                                                       |
  46. 000000014B31DFB3 | cpuid                                                             |
  47. 000000014B31DFB5 | add eax,ebx                                                       |
  48. 000000014B31DFB7 | add eax,ecx                                                       |
  49. 000000014B31DFB9 | add eax,edx                                                       |
  50. 000000014B31DFBB | add esi,eax                                                       |
  51. 000000014B31DFBD | inc edi                                                           |
  52. 000000014B31DFBF | jmp sgw3_dump_scy.14B31DFA9                                       |
  53. 000000014B31DFC1 | ret

oldman пишет:
Ну далее уже под вм начинают эту "лицуху" извращать по
всякому, лень стало разбираться

Две ступени (stage) декодирования:
1. Первый раз строку распаковывает
2. На втором уже со стандартным алго (base64_модификация) декодирования и дефолтным паттерном ключа превращает в DWORD табличку.
Licence DWORDs теперь уже 0x161 (353). В прошлых версиях что-то около 0xD8 (216). Вомзожно, сказываются хэши шары.
Code:
  1. 0000000148D121F5 | mov eax,dword ptr ds:[rdi+70]                                     |
  2. 0000000148D121F8 | mov dword ptr ds:[r14],eax                                        | раскидываем DWORD

Тот же XOR #, const. Правда, теперь процесс раскидывания из таблицы в разброс идёт, а не по тому порядку, как было ранее.
520 раз он должен раскидать. Если более, то адреса начнут повторятся в шахматном поряд

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

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 05 февраля 2017 14:38
· Личное сообщение · #30

(продолжение #29)
.... в шахматном порядке и это говорит о том, что декодированная таблица - фуфло (ну или по крайней мере какая-то часть данных).
Собственно, к примеру, первые ячейки DWORD с ключами,где #1 и #2 - номера в таблице после работы декодера (ес-но пропуская первое служебное двойное слово):
Code:
  1. Cell: 14922A3EB = #1 ^ 0xF8637852
  2. Cell: 147DDAEAC = #2 ^ 0xA42AA678
  3. ....


oldman пишет:
теперь проверяют данные из шаредаты
и вызывают cpuid прямо во время игрового процесса!

Таки да! Но опять же, там очень много фейковых вызовов.
oldman пишет:
cpuid rip=0000000146BBD51A eax=00000001
cpuid rip=0000000146BBD51A eax=00000001

Если Вы cpuid снизу дампите, то ... сэмулировать валидную лицуху не должно составить большой проблемы для Вас??! Или это не драйвер?

Обычным геймерам можно поплевать denuvo ещё вот за что: представьте ситуацию, что у Вас на винде установились заплатки (обыденная ситуация вообщем-то, хотя я на убунте часто разве что открытые видео-драйвера из репозитория http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu качаю. ну не важно, короче...). Установились заплатки и Вы, не заходя в игрушку, защищенную denuvo, выключили комп (ноутбук) и
а) интернет после этого у Вас отрубили (по тех. причинам или Вы не заплатили за него)
б) Вы уехали в деревню (на море, за границу), где инета нет или там супер-дорогой роуминг.
После вышесказанного приходит момент, когда Вы наконец садитесь за комп (ноутбук) и думаете, что в оффлайн-режиме сработает активация. Винда грузится, проходит установка обновлений, рабочий стол, запускается steam ... а игрушка не фурычит! А всё потому, что в 99% случаев, IMAGE_DATA_DIRECTORY у системных либ kernel32/ntdll/kernelbase после обновления будет другим! И разработчики denuvo об этом не догадываются ... или догадываются, но им плевать.

*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Собственно касаемо самой игры Sniper Ghost Warrior 3, то игра сама по себе полное дерьмо! Никакой оптимизации + денуво. Грузится минут 15, графика не фонтан, звук и изображение почему-то асинхронны. И самое смешное, что по геймплею это обычный и типичный FarCry 2, но последний хотя бы не требует ояебу самых дорогих в мире топовых железяк. И ещё там был секуром.




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

Создано: 05 февраля 2017 14:56
· Личное сообщение · #31

ELF_7719116 пишет:
По-существу:

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

без оригинала трудно оспаривать это утверждение, пока предположение что отсутствует только пролог-эпилог, его заменили на общий сейв-ресторе контекста. а исполнение инструкций разбавили тоннами бесполезного кода, у которого даже нет служебной нагрузки.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..



<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 52 . 53 . >>
 eXeL@B —› Протекторы —› Crack SecuROM & DENUVO
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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