Ещё пробовал установить таймаут 256 мс, тоже самое потом вылазит ошибка. Похоже что этот участок что-то проверяет,может быть контрольную сумму или же это антидампы?
Ранг: 6.3 (гость) Активность: 0.01↘0 Статус: Участник
Создано: 07 декабря 2012 16:16 · Поправил: normanCRC · Личное сообщение · #5
А как можно узнать,по какой причине объект 0x000000ec не переходит в сигнальное состояние? Т.е. это косяк распаковки или же срабатывает защита от взлома?
Ранг: 65.3 (постоянный), 10thx Активность: 0.02↘0 Статус: Участник
Создано: 08 декабря 2012 01:27 · Поправил: tomac · Личное сообщение · #9
normanCRC Ну вот совершенно не очевидно. Чего угодно она может ждать. Вообще, с точки зрения программирования WaitForSingleObject в Main thread - штука неправильная. Только если это не в процессе загрузки. Смотри, откуда такой hObject берется. Странно, что функция вызывается косвенно по EDI, похоже, что она - метод класса. Но тут могу ошибаться, например, это может быть особенностью ExeCryptor'a, о которой я не знаю.
main 004CC82DMOVEAX,DWORDPTRDS:[513970]EAX=004C96F1
main 004CC832TESTEAX,EAX
main 004CC834JESHORT004CC83D
main 004CC836PUSHDWORDPTRSS:[ARG.1]ESP=0012FEA4
main 004CC83ACALLEAXEAX=0009001F,ECX=00030000,EDX=00000300
main 004CC83CPOPECXECX=00000001,ESP=0012FEA8
main 004CC83DPUSHESIESP=0012FEA4
main 004CC83EPUSHEDIESP=0012FEA0
main 004CC83FMOVECX,0050007CECX=0050007C
main 004CC844MOVEDI,00500094EDI=00500094
main 004CC849XOREAX,EAXEAX=00000000
main 004CC84BCMPECX,EDI
main 004CC84DMOVESI,ECXESI=0050007C
main 004CC84FJNBSHORT004CC868
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=00000000
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85DADDESI,4ESI=00500080
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=004C99FA
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85BCALLECXECX=00000080,EDX=00000080
main 004CC85DADDESI,4ESI=00500084
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=004D07AD
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85BCALLECXECX=00000003,EDX=00513EF0
main 004CC85DADDESI,4ESI=00500088
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=004D1A2F
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85BCALLECX
main 004CC85DADDESI,4ESI=0050008C
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=004D2566
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85BCALLECXECX=BB40E64E,EDX=00000001
main 004CC85DADDESI,4ESI=00500090
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC851TESTEAX,EAX
main 004CC853JNESHORT004CC894
main 004CC855MOVECX,DWORDPTRDS:[ESI]ECX=004D1BB6
main 004CC857TESTECX,ECX
main 004CC859JESHORT004CC85D
main 004CC85BCALLECXECX=00004121,EDX=7C93845C
main 004CC85DADDESI,4ESI=00500094
main 004CC860CMPESI,EDI
main 004CC862JBSHORT004CC851
main 004CC864TESTEAX,EAX
main 004CC866JNESHORT004CC894
main 004CC868PUSH004D4630ESP=0012FE9C
main 004CC86DCALL004C9A5AECX=004D4630,EDX=00000004
main 004CC872MOVESI,00500000ESI=00500000
main 004CC877MOVEAX,ESIEAX=00500000
main 004CC879MOVEDI,00500078EDI=00500078
main 004CC87ECMPEAX,EDI
main 004CC880POPECXESP=0012FEA0
main 004CC881JNBSHORT004CC892
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=00000000
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC88BADDESI,4ESI=00500004
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004CFF4D
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=A76906E1,ECX=0012FE60,EDX=7C93845C
main 004CC88BADDESI,4ESI=00500008
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004DD571
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=00000000,ECX=004DD748,EDX=00000008
main 004CC88BADDESI,4ESI=0050000C
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004DD230
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=00000000,ECX=004DD590,EDX=0000000C
main 004CC88BADDESI,4ESI=00500010
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004DD250
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=00000000,ECX=004DD5D0,EDX=00000010
main 004CC88BADDESI,4ESI=00500014
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004DD270
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=00000000,ECX=004DD5A0,EDX=00000014
main 004CC88BADDESI,4ESI=00500018
main 004CC88ECMPESI,EDI
main 004CC890JBSHORT004CC883
main 004CC883MOVEAX,DWORDPTRDS:[ESI]EAX=004DD290
main 004CC885TESTEAX,EAX
main 004CC887JESHORT004CC88B
main 004CC889CALLEAXEAX=00000000,ECX=7C80172E,EDX=00000007,EBX=01BF0048,ESP=0012F4E0,EBP=01BF00A8,ESI=00DC2000,EDI=01BF0000
-------- Logging stopped
Не пойму,что проверяется в этом цикле.Похоже на контрольную сумму. Замена JE SHORT 004CC88B на JMP приводит к ошибке. Результат - зацикливание с загрузкой процессора.
Vovan666 У ExeCryptor же привязка к железу,значит мой файл у вас не запустится. Такая проверка во многих протекторах применяется походу дела, смысл в том что многократно прогоняется один и тот же цикл,в конце которого стоит команда JMP EAX. Так вот, 20-30 раз он прогоняется правильно, а затем EAX получает неверное значение и дамп падает. Непонятно,как можно это пропатчить - ведь таких проверок сотни ,если не тысячи.
normanCRC пишет: У ExeCryptor же привязка к железу,значит мой файл у вас не запустится. Т.Е у вас программа с лиц ключём привязанная к вашей машине? или вы что-то другое имели в веду?
----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.
Vovan666 Проверку после DeviceIoControl можно исправить,только дальше пошла эта хрень с динамическими прыжками. Там хитрость в чем: есть например адрес 12345678 JMP EAX , прога его может 3-4 раза проходить и значение EAX всегда разное. Если я его заменю на JMP ABCD1234 ,то первый раз оно сработает,а потом опять крякнется. Как эту головоломку решить, весь мозг сломал