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

 eXeL@B —› Протекторы —› SfLetter
Посл.ответ Сообщение


Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 08 июля 2014 16:36 · Поправил: Nightshade
· Личное сообщение · #1

СтарФорс запустили бесплатный сервис электронной почты.
Суть в том, что при отправке письма, оно конвертируется в пдф. Пдфка накрывается какой-то дрянью типа SFFS. При получении письма приходит ссыль на просмоторщик. Это FoxitReader накрытый старом.
И ссылка на само письмо. Представляет из себя пдф в sffs или чем то подобном.
При открытии письмо как-то само активируется. И ты получаешь возможность его просмотреть.
Пока сервис в стадии бета теста, можно поглядеть на последний стар и новую файловую систему бесплатно.
Все кому интересно могут топать --> Сюда <--



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

Создано: 08 июля 2014 16:45
· Личное сообщение · #2

не знают уже, где бабла нарубить, сцуки!
цитатаосновным отличием сервиса StarForce является ограничение на использование полученного сообщения: защищенное письмо нельзя переслать, сделать Print Screen, ... типа Print Screen старовский драйвер будет контролить?! бле, если оно на экран выводится, то делается это банально с помощью камеры телефона, смысл принтскрин блочить, вот же кретины законченные.



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

Создано: 08 июля 2014 18:00
· Личное сообщение · #3

Кошерная у них капча.

-----
TEST YOUR MIGHT




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

Создано: 08 июля 2014 18:33
· Личное сообщение · #4

Nightshade пишет:
Все кому интересно могут топать --> Сюда <--

специально для ленивых, качаем сразу: http://rghost.ru/56789306
специально для тех, кто в танке - первой получает управление sfcore.dll



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

Создано: 08 июля 2014 23:00 · Поправил: sivorog
· Личное сообщение · #5

ELF_7719116
если Вы увидите драйвер, то плиз, продемонстрируйте
легкий патч распакованной ДЛЛ - и, по крайней мере, TastStone Capture спокойно делает захват скрина,
а Протекту пофиг

ну а шифрование, честно, пока даже не нюхал

т.е., если реально сделать подмену HWID, то реально и открыть на др. машине?




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 07:03
· Личное сообщение · #6

Сейчас на твоих файлах превышение активаций. И их просто так не открыть



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

Создано: 09 июля 2014 11:16
· Личное сообщение · #7

распакованные sfcore.dll и FoxitReader.exe: http://rghost.ru/56799504 (или нормальный --> Link <--)

там, правда, допилить(в плане инициализации) sfcore.dll требуется, чтобы ексешник штатно запустился (из последнего, как обычно тянутся вызовы в protect.dll sfcore.dll).
* FoxitReader.exe OEP: 0x004C7F85
Code:
  1. 004C7F85    55              PUSH EBP
  2. 004C7F86    8BEC            MOV EBP,ESP
  3. 004C7F88    6A FF           PUSH -1
  4. 004C7F8A    68 5831A200     PUSH 00A23158
  5. 004C7F8F    68 3C934C00     PUSH 004C933C
  6. 004C7F94    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
  7. 004C7F9A    50              PUSH EAX
  8. 004C7F9B    64:8925 0000000 MOV DWORD PTR FS:[0],ESP
  9. 004C7FA2    83EC 58         SUB ESP,58
  10. 004C7FA5    53              PUSH EBX
  11. 004C7FA6    56              PUSH ESI
  12. 004C7FA7    57              PUSH EDI
  13. 004C7FA8    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
  14. 004C7FAB    FF15 94E4A000   CALL DWORD PTR DS:[<&kernel32.GetVersion>]
  15. 004C7FB1    33D2            XOR EDX,EDX
  16. 004C7FB3    8AD4            MOV DL,AH
  17. 004C7FB5    8915 9895CC00   MOV DWORD PTR DS:[0CC9598],EDX
  18. 004C7FBB    8BC8            MOV ECX,EAX
  19. 004C7FBD    81E1 FF000000   AND ECX,000000FF
  20. 004C7FC3    890D 9495CC00   MOV DWORD PTR DS:[0CC9594],ECX
  21. 004C7FC9    C1E1 08         SHL ECX,8
  22. 004C7FCC    03CA            ADD ECX,EDX
  23. ...

* ребилдер импорта из sfcore.dll(0x0DF2000) и ее лоадлибрару я прилепил на скорую руку сам(через petools долго сидеть, искать и править импорт). косо - криво, но на винд с aslr работать наверно должно
* проверки CRC и процессснабшот в sfcore.dll "пофикшены"



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 09 июля 2014 11:36 · Поправил: vden
· Личное сообщение · #8

-

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


Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 12:33 · Поправил: Nightshade
· Личное сообщение · #9

Как-то ты хреново длл распаковал. Релоков нет. Длл распаковывается обычным упх. Научись им пользоваться Но даже если ты распакуешь ехе, он не запустится. Нужна еще инициализация вм.
И глянь эти адреса.
0047DEB0
004BDB40
00893DA6
Тут код под вм. Без восстановления работать не будет.



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

Создано: 09 июля 2014 12:35
· Личное сообщение · #10

Наверное авторы с гневом читают эту тему, так что скоро будет обновка




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 12:44
· Личное сообщение · #11

Не будет. Открыть доки без рабочего серийника нельзя.



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

Создано: 09 июля 2014 13:18 · Поправил: ELF_7719116
· Личное сообщение · #12

Nightshade пишет:
Релоков нет

да, сори, за релоки забыл. но, с другой стороны, на 2к3 оно меня не сильно колышило, ибо адрес один и тот-же всегда
Nightshade пишет:
Длл распаковывается обычным упх.

мне впадлу было.
да и ексешник(за длл молчу) по сравнению с секуромом, до точки входа дойти и сдампить - так, нечего делать! уныло и просто. защита в вм, эт да - пойду покопаю.

там кстати еще пайп(pipe) создается...

Nightshade пишет:
0047DEB0
004BDB40
00893DA6
Тут код под вм.

там по-моему дохрена где его.

add: а есть готовый просмоторщик(viewer) регистров вм (по типу моего --> SPR I<--)?? отпишитесь плс в личку.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 14:08
· Личное сообщение · #13

ELF_7719116 пишет:
add: а есть готовый просмоторщик(viewer) регистров вм (по типу моего --> SPR I<--)??

Так edi указывает всегда на контекст вм.



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

Создано: 09 июля 2014 14:16
· Личное сообщение · #14

Nightshade пишет:
Так edi указывает всегда на контекст вм.

так мне ж чтоб красиво было а на какой хендл ESI указывает постоянно??
вм однопоточная(single thread) чтоли?! йобаный каменный век




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 14:44 · Поправил: Nightshade
· Личное сообщение · #15

Esi вроде база вм. Адрес начала секции вм. Используется для прыжков по вм. Типа еsi+смещение.
Сделай в окне дампа тип отображения long и перейди на edi и будет красиво. Только вот регистры 64 bit

Code:
  1. 64AAEE30    E8 00000000     CALL sfcore.64AAEE35
  2. 64AAEE35    5A              POP EDX                                  ; sfcore.64AAEE35
  3. 64AAEE36    C1FB 0D         SAR EBX,0xD
  4. 64AAEE39    81C2 146DCCFF   ADD EDX,0xFFCC6D14
  5. 64AAEE3F    8957 00         MOV DWORD PTR DS:[EDI],EDX
  6. 64AAEE42    E8 00000000     CALL sfcore.64AAEE47
  7. 64AAEE47    5A              POP EDX
  8. 64AAEE48    81C2 E4B3EFFF   ADD EDX,0xFFEFB3E4
  9. 64AAEE4E    8957 08         MOV DWORD PTR DS:[EDI+0x8],EDX
  10. 64AAEE51    E8 00000000     CALL sfcore.64AAEE56
  11. 64AAEE56    5A              POP EDX
  12. 64AAEE57    81C2 621EE5FF   ADD EDX,0xFFE51E62
  13. 64AAEE5D    8957 10         MOV DWORD PTR DS:[EDI+0x10],EDX
  14. 64AAEE60    E8 00000000     CALL sfcore.64AAEE65
  15. 64AAEE65    5A              POP EDX
  16. 64AAEE66    81C2 DB7DD6FF   ADD EDX,0xFFD67DDB
  17. 64AAEE6C    8957 18         MOV DWORD PTR DS:[EDI+0x18],EDX
  18. 64AAEE6F    E8 00000000     CALL sfcore.64AAEE74
  19. 64AAEE74    5A              POP EDX
  20. 64AAEE75    81C2 7D47C9FF   ADD EDX,0xFFC9477D
  21. 64AAEE7B    FFE2            JMP EDX

Так начинается вход в вм
[EDI], [EDI+0x8], [EDI+0x10], [EDI+0x18] - это 4 "eip" вм.
По этим 4 адресам берутся 4 qworda и ксорятся друг с другом. Так колучается лента байткода для вм.
3 адреса обычно указывают на реальный код и 1 на настоящую ленту. Поскольку при компиляции код им известен они пишут по последнему адресу "правильные" значения для ксора. В результате изменишь код - запорешь ленту вм байткода. Регистр "настоящего" байткода выбирается от балды и может меняться в любой момент между обработчиками вм.

Добавлено спустя 34 минуты
Начало любого хендлера вм
1)Берем значения по нашим 4 "vmeip"
Code:
  1. 647435F1    8B57 00         MOV EDX,DWORD PTR DS:[EDI]               
  2. 647435F4    8B42 00         MOV EAX,DWORD PTR DS:[EDX]
  3. 647F33B8    8B57 08         MOV EDX,DWORD PTR DS:[EDI+0x8]           ; sfcore.649AA22B
  4. 647F33C3    3342 00         XOR EAX,DWORD PTR DS:[EDX]
  5. 647F33C6    8B57 10         MOV EDX,DWORD PTR DS:[EDI+0x10]
  6. 647F33C9    3342 00         XOR EAX,DWORD PTR DS:[EDX]
  7. 647F33CC    8B57 18         MOV EDX,DWORD PTR DS:[EDI+0x18]
  8. 647F33CF    3342 00         XOR EAX,DWORD PTR DS:[EDX]

Ксорим и заносим в [EDI+0x20]
Code:
  1. 647F33D2    8947 20         MOV DWORD PTR DS:[EDI+0x20],EAX

2)Берем значения старшей части qword vmeip
Code:
  1. 647F33D5    8B57 00         MOV EDX,DWORD PTR DS:[EDI]
  2. 647F33D8    8B42 04         MOV EAX,DWORD PTR DS:[EDX+0x4]
  3. 647F33DB    8B57 08         MOV EDX,DWORD PTR DS:[EDI+0x8]
  4. 647F33DE    3342 04         XOR EAX,DWORD PTR DS:[EDX+0x4]
  5. 647F33E1    8B57 10         MOV EDX,DWORD PTR DS:[EDI+0x10]
  6. 649E84DC    3342 04         XOR EAX,DWORD PTR DS:[EDX+0x4]
  7. 649E84DF    8B57 18         MOV EDX,DWORD PTR DS:[EDI+0x18]
  8. 649E84E2    3342 04         XOR EAX,DWORD PTR DS:[EDX+0x4]

Ксорим и заносим в [EDI+0x24]
Code:
  1. 649E84E5    8947 24         MOV DWORD PTR DS:[EDI+0x24],EAX

2)Увеличиваем vmeip на длину ленты байткода текущей инструкции
Code:
  1. 649E84E8    C7C0 08000000   MOV EAX,0x8
  2. 649E84EE    0147 00         ADD DWORD PTR DS:[EDI],EAX
  3. 649E84FD    0147 08         ADD DWORD PTR DS:[EDI+0x8],EAX
  4. 649E8500    0147 10         ADD DWORD PTR DS:[EDI+0x10],EAX
  5. 6488D890    0147 18         ADD DWORD PTR DS:[EDI+0x18],EAX


3)Раскодированную ленту ксорим с [EDI+0x38] - там лежит служебная переменная для раскодировки байткода. Она меняется при выполнении любого хендлера.
Code:
  1. 648FE9B7    8B4F 26         MOV ECX,DWORD PTR DS:[EDI+0x26]
  2. 648FE9BA    C1E9 06         SHR ECX,0x6
  3. 648FE9BD    81E1 0F000000   AND ECX,0xF
  4. 648FE9C3    C7C0 01000000   MOV EAX,0x1
  5. 648FE9C9    D3E0            SHL EAX,CL
  6. 648FE9CB    C1FB 02         SAR EBX,0x2
  7. 648FE9CE    81E0 FF7F0000   AND EAX,0x7FFF
  8. 648FE9D4    2347 38         AND EAX,DWORD PTR DS:[EDI+0x38]
  9. 648FE9D7    3147 20         XOR DWORD PTR DS:[EDI+0x20],EAX
  10. 648FE9DA    8B4F 26         MOV ECX,DWORD PTR DS:[EDI+0x26]
  11. 648FE9DD    C1E9 01         SHR ECX,0x1
  12. 648FE9E0    81E1 0F000000   AND ECX,0xF
  13. 648FE9E6    C7C0 01000000   MOV EAX,0x1
  14. 648FE9EC    D3E0            SHL EAX,CL
  15. 648FE9EE    81E0 FF7F0000   AND EAX,0x7FFF
  16. 648FE9F4    2347 38         AND EAX,DWORD PTR DS:[EDI+0x38]
  17. 648FE9F7    3147 22         XOR DWORD PTR DS:[EDI+0x22],EAX
  18. 648FE9FA    8B4F 24         MOV ECX,DWORD PTR DS:[EDI+0x24]
  19. 648FE9FD    C1E9 05         SHR ECX,0x5
  20. 648FEA00    81E1 0F000000   AND ECX,0xF
  21. 648FEA06    8B47 26         MOV EAX,DWORD PTR DS:[EDI+0x26]


4)Заносим в [EDI+0x38] новую переменную расшифровки байткода
Code:
  1. 648FEA09    81E0 01000000   AND EAX,0x1
  2. 648FEA0F    09C0            OR EAX,EAX
  3. 648FEA11    0F85 10000000   JNZ sfcore.648FEA27
  4. 648FEA17    C7C0 FEFFFFFF   MOV EAX,-0x2
  5. 648FEA1D    D3C0            ROL EAX,CL
  6. 648FEA1F    2147 38         AND DWORD PTR DS:[EDI+0x38],EAX
  7. 648FEA22  - E9 A801F2FF     JMP sfcore.6481EBCF
  8. 648FEA27    C7C0 01000000   MOV EAX,0x1
  9. 648FEA2D    D3C0            ROL EAX,CL
  10. 648FEA2F    0947 38         OR DWORD PTR DS:[EDI+0x38],EAX

Мусор
Code:
  1. 648FEA32    C1EA 02         SHR EDX,0x2
  2. 648FEA35    89D1            MOV ECX,EDX
  3. 648FEA37    C1E8 02         SHR EAX,0x2
  4. 648FEA3A    01C2            ADD EDX,EAX
  5. 648FEA3C    31C8            XOR EAX,ECX
  6. 648FEA3E    39D1            CMP ECX,EDX
  7. 648FEA40  - 0F86 8901F2FF   JBE sfcore.6481EBCF

5)Дальше идет разбор ленты на флаги и эмулирование асм кода.
Code:
  1. 6481EBCF    8B57 20         MOV EDX,DWORD PTR DS:[EDI+0x20]




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

Создано: 09 июля 2014 15:41
· Личное сообщение · #16

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




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 15:51 · Поправил: Nightshade
· Личное сообщение · #17

Пример разбора
Это предыдущая инструкция сохранения переменной расшифровки байткода (для наглядности)
6491F9C4 0947 38 OR DWORD PTR DS:[EDI+0x38],EAX
Получаем номер регистра вм
Code:
  1. 6491F9C7    8B47 21         MOV EAX,DWORD PTR DS:[EDI+0x21]
  2. 6491F9CA    C1E8 01         SHR EAX,0x1
  3. 6491F9CD    81E0 1F000000   AND EAX,0x1F
  4. 6491F9D3    C1E0 03         SHL EAX,0x3
  5. 6491F9D6    01F8            ADD EAX,EDI

Получаем номер второго регистра вм
Code:
  1. 6491F9D8    8B57 21         MOV EDX,DWORD PTR DS:[EDI+0x21]
  2. 6491F9DB    C1EA 06         SHR EDX,0x6
  3. 6491F9DE    81E2 FFFF0000   AND EDX,0xFFFF

Получаем размер опкода(byte, word, dword, qword)
Code:
  1. 6491F9E4    8B5F 20         MOV EBX,DWORD PTR DS:[EDI+0x20]
  2. 6491F9E7    C1EB 07         SHR EBX,0x7
  3. 6491F9EA    81FE 00000000   CMP ESI,0x0 мусор
  4. 6491F9F0    E9 316C0F00     JMP sfcore.64A16626 мусор
  5.  
  6. 64A16626    0F84 14ED0100   JE sfcore.64A35340
  7. 64A1662C    81E3 03000000   AND EBX,0x3

Прыгаем на "нужный размер"
Code:
  1. 64A16632    80FB 00         CMP BL,0x0
  2. 64A16635    0F84 1B000000   JE sfcore.64A16656
  3. 64A1663B    80FB 01         CMP BL,0x1
  4. 64A1663E    0F84 20000000   JE sfcore.64A16664
  5. 64A16644    80FB 02         CMP BL,0x2
  6. 64A16647    0F84 25000000   JE sfcore.64A16672
  7. 64A1664D    80FB 03         CMP BL,0x3
  8. 64A16650    0F84 27000000   JE sfcore.64A1667D

Размер byte
Code:
  1. 64A16656    01FA            ADD EDX,EDI
  2. 64A16658    8A12            MOV DL,BYTE PTR DS:[EDX]
  3. 64A1665A    8910            MOV DWORD PTR DS:[EAX],EDX
  4. 64A1665C    E9 4D180B00     JMP sfcore.64AC7EAE

word
Code:
  1. 64A16661    C1F9 1E         SAR ECX,0x1E
  2. 64A16664    01FA            ADD EDX,EDI
  3. 64A16666    21D1            AND ECX,EDX
  4. 64A16668    66:8B12         MOV DX,WORD PTR DS:[EDX]
  5. 64A1666B    8910            MOV DWORD PTR DS:[EAX],EDX
  6. 64A1666D    E9 3C180B00     JMP sfcore.64AC7EAE

dword
Code:
  1. 64A16672    01FA            ADD EDX,EDI
  2. 64A16674    8B12            MOV EDX,DWORD PTR DS:[EDX]
  3. 64A16676    8910            MOV DWORD PTR DS:[EAX],EDX
  4. 64A16678    E9 31180B00     JMP sfcore.64AC7EAE

qword
Code:
  1. 64A1667D    01FA            ADD EDX,EDI
  2. 64A1667F    81FC 00000000   CMP ESP,0x0 мусор
  3. 64A16685  - 0F85 E7D5D8FF   JNZ sfcore.647A3C72 мусор
  4.  
  5. 647A3C72    8B0A            MOV ECX,DWORD PTR DS:[EDX]
  6. 647A3C74    8908            MOV DWORD PTR DS:[EAX],ECX
  7. 647A3C76    8B4A 04         MOV ECX,DWORD PTR DS:[EDX+0x4]
  8. 647A3C79    8948 04         MOV DWORD PTR DS:[EAX+0x4],ECX
  9. 647A3C7C    81CA 330A4C1E   OR EDX,0x1E4C0A33 мусор
  10. 647A3C82  - 0F85 1B423200   JNZ sfcore.64AC7EA3 мусор
  11.  
  12. 64AC7EA3    8D8F 50000000   LEA ECX,DWORD PTR DS:[EDI+0x50] Мусор
  13. 64AC7EA9    E9 00000000     JMP sfcore.64AC7EAE

Получаем адрес следующей инструкции вм
Code:
  1. 64AC7EAE    8B57 20         MOV EDX,DWORD PTR DS:[EDI+0x20]
  2. 64AC7EB1    81E2 7F000000   AND EDX,0x7F
  3. 64AC7EB7  ^ E9 3337EFFF     JMP sfcore.649BB5EF
  4.  
  5. 649BB5EF    C1E2 02         SHL EDX,0x2
  6. 649BB5F2    E8 00000000     CALL sfcore.649BB5F7
  7. 649BB5F7    58              POP EAX
  8. 649BB5F8    89C1            MOV ECX,EAX
  9. 649BB5FA    81C0 61FC0300   ADD EAX,0x3FC61
  10. 649BB600    81C1 09CAD7FF   ADD ECX,0xFFD7CA09
  11. 649BB606    01C2            ADD EDX,EAX
  12. 649BB608    8B12            MOV EDX,DWORD PTR DS:[EDX]
  13. 649BB60A    01CA            ADD EDX,ECX
  14. 649BB60C    FFE2            JMP EDX
- прыжок на следующий хендлер
Это была виртуализованная mov vmreg, vmreg



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

Создано: 09 июля 2014 15:56 · Поправил: Veliant
· Личное сообщение · #18

Nightshade пишет:
mov vmreg, vmreg

Айнане. Это MOV R1, [EDI+OFFSET]

Code:
  1. 6491F9DE    81E2 FFFF0000   AND EDX,0xFFFF

для регистров маска 0x1F как у первого

Nightshade пишет:
edi+offset - еще не известно чем считать. Переменные вм или регистры.

Согласен, но все же чистые регистры это R0-R31 которые с оффсетами 0-F8, что выше адресуется оффсетом




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 16:00 · Поправил: Nightshade
· Личное сообщение · #19

VeliantМожет это и расписывалось, но пусть будет описание для общего представления о вм. Вон эльфу интересно. Может тоже поковыряет вм.
edi+offset - еще неизвестно чем считать. Переменные вм или регистры.

Добавлено спустя 13 минут
В вм часто встречаются такие куски.
Code:
  1. 64AC8E9A    89C0            MOV EAX,EAX
  2. 64AC8E9C    C7C0 25C0F2FF   MOV EAX,0xFFF2C025
  3. 64AC8EA2    8987 20250000   MOV DWORD PTR DS:[EDI+0x2520],EAX
  4. 64AC8EA8    C7C0 74110000   MOV EAX,0x1174
  5. 64AC8EAE    8987 B8050000   MOV DWORD PTR DS:[EDI+0x5B8],EAX
  6. 64AC8EB4    C7C2 04000000   MOV EDX,0x4
  7. 64AC8EBA    8997 68380000   MOV DWORD PTR DS:[EDI+0x3868],EDX
  8. 64AC8EC0    8997 04230000   MOV DWORD PTR DS:[EDI+0x2304],EDX
  9. 64AC8EC6    8B8F E8220000   MOV ECX,DWORD PTR DS:[EDI+0x22E8]
  10. 64AC8ECC    038F 20250000   ADD ECX,DWORD PTR DS:[EDI+0x2520]
  11. 64AC8ED2    898F E8220000   MOV DWORD PTR DS:[EDI+0x22E8],ECX
  12. 64AC8ED8    C7C3 02000000   MOV EBX,0x2
  13. 64AC8EDE    C1E8 03         SHR EAX,0x3
  14. 64AC8EE1    899F D8460000   MOV DWORD PTR DS:[EDI+0x46D8],EBX
  15.  
  16.  

Если считать всё, что больше edi+7f переменными вм. То это код, который выполняется на "переменных" вм без ленты байткода и хендлеров. Я считаю, что это "сильно обфусцированный код", но уже не вм.



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

Создано: 09 июля 2014 16:25 · Поправил: ELF_7719116
· Личное сообщение · #20

Господа, вы еще про одну, немного интересную, вещь забываете:
мы выбираем область для хранения регистров(хранилище):
Code:
  1. 1029D288      56            PUSH ESI                                 ; sfcore.1029D288(guessed Arg1)
  2. 1029D289      57            PUSH EDI
  3. 1029D28A      8B31          MOV ESI,DWORD PTR DS:[ECX]
  4. 1029D28C  |.  85F6          TEST ESI,ESI
  5. 1029D28E  |.  74 6F         JE SHORT 1029D2FF
  6. ...

куда складываем по смещению:
+0 указатель на новое хранилище, если это заблокированно (имхо: жалкое и костыльное подобие многопоточной вм. видимо, автор самой вм давно свалил из конторы, а дописывал ее к новым версиям защиты какой-то нуб. по факту вм - single thread). результат работы VirtualAlloc внизу.
+4 lock dword, аналогично секуромоскому(+0x24) блочим текущее хранилище с регистрами
Code:
  1. -1 (FFFFFFFF) - хранилище свободно
  2. -2 (FFFFFFFE) - хранилище занято

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

Code:
  1. C
  2. 1029D2BF  |.  B8 01000000   MOV EAX,1
  3. 1029D2C4  |.  0FA2          CPUID
  4. 1029D2C6  |.  0FBAE2 19     BT EDX,19

а привязка по CPUID есть?




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2014 20:58 · Поправил: Nightshade
· Личное сообщение · #21

Привязка идет по Cpuid, pid, версии винды. (6.1, 6.2 и тд)
Pid и версия винды читается из всяких fs:0
GetSystemDirectoryA
GetVolumeInformationA VolumeSerial
GlobalMemoryStatusEx
ProductId из реестра
При инициализации вм, эти значения кодируются рандомным алго и полученное значение хранится в секции вм. Потом в некоторых функах оно сравнивается и, если не соответствует, вм идет по неправильной ветке и почти всегда вылетает с ошибкой доступа к памяти.



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

Создано: 10 июля 2014 10:12 · Поправил: sivorog
· Личное сообщение · #22

Nightshade
не совсем по теме, но всё же: где ещё Вы встречали реализацию SFFS без драйверов?
т.е., там, если я правильно понял, CreateFileA/W и другие функции заменены на ring-3 переходники
если файл есть на диске, то вызывается системная API
если нет, то вызывается SF API
...просто я щас ковыряю одну игру под Molebox'ом, начал понимать, как это работает в принципе

З.Ы. Product Guid - это ж вот это?

Code:
  1. [HKEY_CURRENT_USER\Software\StarForce\PCDoc\Keys\License0]
  2. "Type"=dword:00000000
  3. "Version"=dword:00000007
  4. "Number"="(...*censored*...)"
  5. "Guid"="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" <----





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 10 июля 2014 10:38
· Личное сообщение · #23

Без драйверов видел всего один раз. Это была какая-то игрушка из серии LockOn. Там нет никаких переходников. Разработчики игрушки изначально использовали проприетарные функи для работы с ресурсами.



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

Создано: 17 июля 2014 18:54
· Личное сообщение · #24

Так Nightshade пишет:
При открытии письмо как-то само активируется.

Типа, как SecuROM PA чтоли - отсылаем реквест код с HWID на сервер, а в ответ ключик, которым расшифровывает смс? И кол-во таких запросов ограничено? И закреплено одной машиной?
С другой стороны, чем хуже запхнуть файлы в архив с заранее оговоренным паролем в ~16-20 символов и отправить по почте? выгода очевидна - платить этим козлам ничего не надо(имеется ввиду решения для бизнеса).



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

Создано: 01 сентября 2014 05:28 · Поправил: Admintools
· Личное сообщение · #25

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



Ранг: 20.4 (новичок), 8thx
Активность: 0.030
Статус: Участник

Создано: 10 мая 2015 23:23
· Личное сообщение · #26

в качестве информации:
https://youtube.com/channel/UC3OSbaiqnLNNgauJM9ZkkQA
Эти мудаки, около года назад, новый канал на ютубе завели, специально под рекламу sfletter. Однако там уже немного поднагажено Старый (ilovestarforce) они благополучно слили.



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

Создано: 11 мая 2015 00:24
· Личное сообщение · #27

hello пишет: Старый (ilovestarforce) они благополучно слили.

Скоро весь подобный мусор отправится на свалку истории.
Аппаратные DRM, облака и подписи, вот нынешние тенденции.
Протекторы по большей части уже исчезли, остались виртуальные машины и на те уже снижается спрос.


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


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