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

 eXeL@B —› Вопросы новичков —› снять защиту от измены
Посл.ответ Сообщение

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

Создано: 23 марта 2007 18:28
· Личное сообщение · #1

Дайте пожалуйста ссылочек ПОЧИТАТЬ про обход проверки CRC и других проверок от изменения кода. Про "поставьте бряк на мессажбокс, поднимитесь выше и измените переход" - не сканает, там что-то хитрее.
Гугл, немногословен. Метод случайного тыка по статьям кряк лаба тоже результатов не даёт кроме "поставьте бряк на мессажбокс...."




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 23 марта 2007 18:32
· Личное сообщение · #2

Плагин crc32 или FixCrc из набора в разделе "скачать".
Про почитать - инфы не видел... Кроме црц и примитивнейших проверок спасает только патч кода проверки имхо.



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

Создано: 23 марта 2007 18:41
· Личное сообщение · #3

FixCrc фиксит и глупо улыбается ;) но не помогает, crc32 вообщем то тоже.

Канал на распакованном файле пишет следующее:

BASE64 table :: 00091774 :: 00492374
BASE64 table :: 000DBA58 :: 004DC658
CRC32 :: 005FD380 :: 009FE180
MD4 :: 000DB394 :: 004DBF94
MD5 :: 000CF57A :: 004D017A
RIJNDAEL [S] [long] :: 005FF0D0 :: 009FFED0
RIJNDAEL [S-inv] [long] :: 0060E63C :: 00A0F43C
RIJNDAEL [S-inv] [long] :: 00CE0B13 :: 0119B313
SHA1 [Compress] :: 000D0B27 :: 004D1727
{Big number} :: 004E418C :: 008E4D8C
{Big number} :: 004E41D8 :: 008E4DD8
{Big number} :: 004E4238 :: 008E4E38
{Big number} :: 004E4344 :: 008E4F44
{Big number} :: 004E78CC :: 008E84CC
{Big number} :: 004E7958 :: 008E8558
{Big number} :: 0050CFFC :: 0090DBFC
{Big number} :: 0050D088 :: 0090DC88

Одну проверку я уже нашел и обезвредил, ту самую простую, о которой везде написано, но есть ещё и не одна похоже




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 23 марта 2007 19:25 · Поправил: HoBleen
· Личное сообщение · #4

Смотри какая проверка запарывает малину и подменяй результат/нопь переход. Ставь бряки на измененные участки кода в памяти и CreateFile(ProgaExeName).

Simz пишет:
Метод случайного тыка по статьям кряк лаба тоже результатов не даёт кроме "поставьте бряк на мессажбокс...."

А что ты еще хочешь? Где тонко - там и рвётся, если алгоритм проверки не предоставляет лёгких путей, то надо патчить сам код.



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

Создано: 24 марта 2007 14:42
· Личное сообщение · #5

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

уже совсем не знаю как искать и что делать...

Помогите!!!



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

Создано: 24 марта 2007 14:50
· Личное сообщение · #6

ссылочку на прогу дай




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

Создано: 24 марта 2007 15:56
· Личное сообщение · #7

Simz пишет:
Дайте пожалуйста ссылочек ПОЧИТАТЬ про обход проверки CRC


читай

slil.ru/24128633

-----
Ни одно доброе дело не должно остаться безнаказанным !!!




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

Создано: 24 марта 2007 17:41 · Поправил: MilitaryMan
· Личное сообщение · #8

Simz пишет:
Если проге сунуть правильные данные или на лету поменять значения регистров то прога запустится

Так почему бы не дописатьв свободном месте запись этих данных в регистры??? Или это данные не по обходу проверки crc???



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

Создано: 24 марта 2007 18:47
· Личное сообщение · #9

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

Я вот думаю если Канал пишет следующее: CRC32 :: 005FD380 :: 009FE180
то диапазон 005FD380-009FE180 подвергается проверке?? по адресу 005FD380 стоит FFFFFF по адресу
009FE180 стоит 000000. я даже специально для этого куска CRC восстановливал всё равно не получилось.

еще помучаюсь если так ничо в голову не придёт дам ссылку.
[EXE]_cutor спасибо за знания




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

Создано: 24 марта 2007 19:15
· Личное сообщение · #10

Simz пишет:
Я вот думаю если Канал пишет следующее: CRC32 :: 005FD380 :: 009FE180
то диапазон 005FD380-009FE180 подвергается проверке??


клацни по плюсу напротив CRC32 в канале, появится адрес где расположена CRC. либо нопишь её вызов либо правишь джамп.
ВСЕ !

-----
Ни одно доброе дело не должно остаться безнаказанным !!!




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

Создано: 26 марта 2007 14:49
· Личное сообщение · #11

Всё сдаюсь!
вот прога
hxxp://slil.ru/24113063
hxxp://ifolder.ru/1440092

Вот то что я узнал об экзе. Peid на хардкоре пишет ASPack 2.x (without poly) -> Alexey Solodovnikov [Overlay] и это похоже действительно Аспак - руками снимал, на аспак очень походит. Без проблем распаковывается QU1.0.5 и QU1.0.8; QU 1RC тоже распаковывает, но почему то подвисает. После распаковки Peid пишет, что это Borland Delphi 6.0 - 7.0 (файл же после распаковки весит 13,2 Мб). Первая проверка от измены проверяет контрольную сумму CRC32 и длину файла на диске и находится она здесь:

008E85FC |. E8 9BFAFFFF CALL tmpgencd.008E809C
008E8601 |. 84C0 TEST AL,AL
008E8603 |. 75 1A JNZ SHORT tmpgencd.008E861F

НО! Если её обойти это дело палит вторая проверка и файл се равно никогда не запустится. Совершенно случайно нашел одно место на изменение которого Вторая проверка не реагирует:

00404610 53 PUSH EBX - вот тута написал С3 RETN
…………………………………….
004046D2 . 50 PUSH EAX ; /ExitCode => 0
004046D3 . E8 10CCFFFF CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess

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

008E434B . 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
и вот здесь:
008E43B3 . 85C0 TEST EAX,EAX
в EAX был нуль.

Вторая проверка бдит чтобы код программы в памяти оставался нетронутым то есть если что-нить пропатчить или бряков наставить то прога гденить да кильнётся на эксепшенах.
Также присутстувует антиотладка, убийство потоков иногда не плохо помогает
Вторая проверка по-моему находится вот тут:

008E7FB9 . E8 4A150000 CALL tmpgencd.008E9508
и вот тут:
008E7FF5 E8 26B9B1FF CALL tmpgencd.00403920

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

P.S. кстати прога старая вроде и защита несложная, а в сети кряка ни одного нету – странно. Это вторая версия для первой версии программы кряков полно было…

P.S.S. 23 марта появился крэк для 3 версии на руборде, меня же поломанный файл не интресует, хочу знать как её надо было побеждать




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 26 марта 2007 15:28
· Личное сообщение · #12

[EXE]_cutor пишет:
клацни по плюсу напротив CRC32 в канале, появится адрес где расположена CRC. либо нопишь её вызов либо правишь джамп.
ВСЕ !

садись, два =) канал найдет референс на поли.. на команду вида mov exx, poly_const.. Ну, допустим это crc32.. занопишь ты вызовы и что? Если прога и юзает crc32 для проверки контр.суммы, то нопом вызова ее получения пробелма не решиться. Вот джамп поправить можно.. хотя если все таки црц32, то можно и подогнать
Simz пишет:
Я вот думаю если Канал пишет следующее: CRC32 :: 005FD380 :: 009FE180
то диапазон 005FD380-009FE180 подвергается проверке??

клацни на плюс.. увидишь строку вида Referenced at.. и ctrl+g->полученный адрес, в ольке. и вникай =)

-----
Тут не могла быть ваша реклама




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

Создано: 26 марта 2007 17:12
· Личное сообщение · #13

CRC32 :: 005FD380 :: 009FE180
The reference is above.

нету в референсах не фига
одну проверку я и так нашел
008E85FC |. E8 9BFAFFFF CALL tmpgencd.008E809C
008E8601 |. 84C0 TEST AL,AL
008E8603 |. 75 1A JNZ SHORT tmpgencd.008E861F


а вот вторую.....

2All_Guru: посмотрите пожалуйста


и вот ещё файл лицензии, почти валидный, чтоб легче было slil.ru/24138071




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

Создано: 26 марта 2007 19:58
· Личное сообщение · #14

lord_Phoenix пишет:
садись, два =) канал найдет референс на поли.. на команду вида mov exx, poly_const.. Ну, допустим это crc32.. занопишь ты вызовы и что? Если прога и юзает crc32 для проверки контр.суммы, то нопом вызова ее получения пробелма не решиться. Вот джамп поправить можно.. хотя если все таки црц32, то можно и подогнать


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

---------------------------->
Твои CRC - неправильные, и делают неправильный мед.
два мало. чытыри давай. 8)

-----
Ни одно доброе дело не должно остаться безнаказанным !!!




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

Создано: 27 марта 2007 13:40
· Личное сообщение · #15

Сегодня читал статью ARCHANGEL Взлом Total Commander 6 - прикосновение к великому:

....Но все эти проверки можно условно разделить на две части:
1. Проверка кода на диске.
2. Проверка кода в памяти.
У каждого из них есть свои сильные и слабые стороны......

есть-таки люди на креклабе которые в курсе за проверки в памяти.... интресно почему молчат??

offtop:Пару дней назад на каком то форуме русификаторщегов читал как один из них хвалил "запросы на взлом" на креклабе: в 4 часа утра сделал запрос а в 11 утра уже кряк готов был.....
Наверно сломать легче чем объяснить как...
может мне в запросы написать???

P.S. тут хотел сравнить оргинал и крякнутый экзэ с руборда так там на него Фемиду нацепили - анализ через сравнение не удался...




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 27 марта 2007 14:26
· Личное сообщение · #16

Simz пишет:
есть-таки люди на креклабе которые в курсе за проверки в памяти.... интресно почему молчат??

ага, это когда не скeatefile,readfile,а прямо от байтиков в памяти считается контрольная сумма =)
[EXE]_cutor пишет:
Твои CRC - неправильные, и делают неправильный мед.
два мало. чытыри давай. 8)

ээ, обоснуйте..а пока - двойко =)

-----
Тут не могла быть ваша реклама




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

Создано: 28 марта 2007 08:36
· Личное сообщение · #17

lord_Phoenix
на какие АПИ надо ставить бряки, чтобы поймать проверку в памяти??

ReadProcessMemory
ZwReadVirtualMemory
OpenProcess, CreateRemoteThread

таких АПИ там нету



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

Создано: 28 марта 2007 09:26
· Личное сообщение · #18

Simz, а ты поставь Breakpoint -> Memory on access на тот участок кода, который будет проверятся - как раз должен будешь выпасть в процедуру проверки.

-----
все багрепорты - в личные сообщения




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

Создано: 28 марта 2007 14:10
· Личное сообщение · #19

HandMill

Спасибо большое, славил её таки. буду смотреть
Спасибо ещё раз.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 28 марта 2007 16:53
· Личное сообщение · #20

Simz
дада, делай как ХандМилл сказал.. зачем же ReadProcessMemory и OpenProccess, если процесс проверяет _свою_ память.. ставь мемори аццесс на секцию кода

-----
Тут не могла быть ваша реклама




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

Создано: 29 марта 2007 16:28 · Поправил: HandMill
· Личное сообщение · #21

lord_Phoenix а если процесс тупо считывает память типа:

mov eax, dword ptr ds:[ebx]

// начало цикла
add eax, dword ptr ds:[ebx] ; операция подсчета некоторой контрольной суммы
inc ebx
// конец цикла

cmp eax, dword ptr ds:[заветный_адрес_где_лежит_оригинал_некоторой_контрольной_суммы] ; или что-нить
;в этом роде

-----
все багрепорты - в личные сообщения




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

Создано: 01 апреля 2007 08:19 · Поправил: Simz
· Личное сообщение · #22

HandMill
таки получилось всё
там была вот такая вот фигня:

008E8BA7 > 50 PUSH EAX
008E8BA8 . 2D B64A1E00 SUB EAX,1E4AB6
008E8BAD . B9 9F920700 MOV ECX,7929F
008E8BB2 . 33D2 XOR EDX,EDX
008E8BB4 > D1C2 ROL EDX,1
008E8BB6 . 3310 XOR EDX,DWORD PTR DS:[EAX]
008E8BB8 . 83C0 04 ADD EAX,4
008E8BBB . 49 DEC ECX
008E8BBC .^75 F6 JNZ SHORT TMPGEncD.008E8BB4

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



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

Создано: 01 апреля 2007 11:50
· Личное сообщение · #23

Simz пишет:
По моему оч хитро получилось, нигде о таком не читал. ;)

Потому что это глупо вот и не читал..



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

Создано: 01 апреля 2007 12:31
· Личное сообщение · #24

pavka
да не вопрос а как надо?
кроме насмешек только!




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 01 апреля 2007 12:35
· Личное сообщение · #25

HandMill пишет:
а если процесс тупо считывает память типа:

не понял о чем ты..я это и имел ввиду.. просто легко найти такое место поставив бряк на аццесс :P
Simz пишет:
По моему оч хитро получилось, нигде о таком не читал. ;)

так делают почти все, чтобы не бороться с проверками целостности.. инлайн патчит..потом возвращает..и сам затирается =)

-----
Тут не могла быть ваша реклама




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

Создано: 01 апреля 2007 18:54
· Личное сообщение · #26

Simz пишет:
да не вопрос а как надо?
кроме насмешек только!

Там одна проверка
008E85FC E8 9BFAFFFF CALL TMPGEncD.008E809C
008E8601 84C0 TEST AL,AL
008E8603 EB 1A JMP SHORT TMPGEncD.008E861F
008E8605 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
008E8608 A1 6C21A100 MOV EAX,DWORD PTR DS:[A1216C]
дамп запускается без проблемм ........



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

Создано: 17 апреля 2007 08:36 · Поправил: Simz
· Личное сообщение · #27

pavka пишет:
дамп запускается без проблемм ........


ога! окно регистрации без проблем запускается

эту проверку я сразу нашел. Еще 26 марта о ней здесь написал


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


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