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

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

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2012 21:34
· Личное сообщение · #1

Всем поклон!
Помогите пожалуйста сообразить как завершить процедуру без закрытия программы и ошибок.

Эта программа называется Pro Tools 10 и имеет защиту usb-ключем ILok 2 и службой PACE Anti-Piracy.

В принципе в ней всё доломано почти кроме одного момента:

программа полностью работает и запускается НО - почти в каждую функцию программы вшита рандомная кросспроверка целостности кода. И когда начинаешь юзать функцию через какое-то время появляется ошибка MF application has been compromised...приходится нажимать ок и программа закрывается. Так работает защита...любое несоответствие в следствие проверки целостности кода вызывает в dll программы стандартную процедуру MFortress и потом jmp на exit)))

выглядит в dll это так:

text:1223FE40 ; —-------------------------------------------------------------------------
.text:1223FE40 jg short near ptr loc_1223FE51+1
.text:1223FE42 push 0
.text:1223FE44 push offset aMfApplicationH ; "MF: application has been compromised"
.text:1223FE49 push 0
.text:1223FE4B call ds:MessageBoxA
.text:1223FE51
.text:1223FE51 loc_1223FE51: ; CODE XREF: .text:1223FE40 j
.text:1223FE51 push 0FFFFFFFFh
.text:1223FE53 call ds:exit

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

а в hex обозначении выглядит это так:

6a 10 6a 00 68 a8 ba c0 12 6a 00 ff 15 64 bb ac
12 6a ff ff (это начиная от 0223fe40 и заканчивая 0223fe53)

если можете подсказать чем это заменить или завершить в hex то было бы просто обалденно.
Помогите пожалуйста. собственного разума не хватает)



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

Создано: 15 ноября 2012 21:42
· Личное сообщение · #2

Смотри откуда вызывается этот код. Или например поставь hw бряк на доступ на пропатченный код. Так найдешь место где идет проверка.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 15 ноября 2012 21:44
· Личное сообщение · #3

А если не нажимать OK, а спрятать окно с ошибкой целостности и дальше работать с программой?



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2012 21:59
· Личное сообщение · #4

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

не знаю как посмотреть откуда вызывается)) в отладчике не знаю такую функцию))) подскажите?
как делат hw бряк??

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

ещё был вариант чтоб заместо байта 6a вначале поставить c3....так запускается но выдает (видимо когда происходит проверка и вызов) access violation unable to read))) можно нажать ок и работать дальше)

но это не канает))) лучше уж что-то сделать с этой ерундой...как-то завершить...



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2012 22:00
· Личное сообщение · #5

кстати перед тем как вызвать эту ошибку защита заметает следы))



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 15 ноября 2012 22:20 · Поправил: crypto
· Личное сообщение · #6

mukundas
Поставь по адресу 1223FE40 ret. Может поможет?
Вижу, что уже пробовал. Нужна программа, а так сказать практически нечего...



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 ноября 2012 10:41
· Личное сообщение · #7

c3 канает в принципе...но ошибок куча выскакивает...access violation unable to read)))) это расстраивает...и надоедает....хотелось бы как-нибудь завершить этот поток вообще...и чтоб без побочных эффектов....как-то через обработчик исключений или ещё как -то))) я просто не знаю как практически это делать...и какие ещё варинаты в таком случае могут быть. подскажите!!!!




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 16 ноября 2012 11:14
· Личное сообщение · #8

Сказали тебе уже, программу выложи, хватит пальцем в небо тыкать.



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

Создано: 16 ноября 2012 12:48
· Личное сообщение · #9

Поток просто так не убить, раз не нажав ОК нельзя работать с прогой нормально (поток встает на MessageBoxA до тех пор, пока ОК не нажмешь). Значит, этот поток за что-то отвечает. Надо искать источник этого дела, а не исполнение выхода, потому что не понятно, как сюда происходит переход. Например, если это jmp, в стеке нет адреса возврата и нельзя использовать ret, соответственно.


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


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