![]() |
eXeL@B —› Вопросы новичков —› ошибка PEid или такая защита? |
Посл.ответ | Сообщение |
|
Создано: 15 октября 2011 15:48 · Личное сообщение · #1 Доброе время суток. Я скачал программу условно-бесплатную, пропустил её через PEid он показал что прога упакована ASProtect 1.23 RC4 - 1.3.08.24. Я прочитал статью про распаковку ASProtect 1.23 RC4 - 1.3.08.24, но когда открыл прогу в Olly, то обнаружил вот это: 00401000 >/$ 68 01806400 PUSH erbaccar.00648001 00401005 |. E8 01000000 CALL erbaccar.0040100B 0040100A \. C3 RETN 0040100B $ C3 RETN 0040100C 2C DB 2C ; CHAR ',' 0040100D 1F DB 1F 0040100E 67 DB 67 ; CHAR 'g' 0040100F C0 DB C0 00401010 7D DB 7D ; CHAR '}' 00401011 55 DB 55 ; CHAR 'U' 00401012 4A DB 4A ; CHAR 'J' 00401013 BA DB BA 00401014 5E DB 5E ; CHAR '^' 00401015 BF DB BF 00401016 3F DB 3F ; CHAR '?' 00401017 DC DB DC 00401018 DA DB DA 00401019 1D DB 1D 0040101A A4 DB A4 0040101B 27 DB 27 ; CHAR ''' 0040101C 8C DB 8C 0040101D 64 DB 64 ; CHAR 'd' 0040101E 90 NOP 0040101F 75 DB 75 ; CHAR 'u' 00401020 47 DB 47 ; CHAR 'G' 00401021 E9 DB E9 00401022 DB DB DB 00401023 CA DB CA 00401024 A7 DB A7 00401025 79 DB 79 ; CHAR 'y' 00401026 BE DB BE 00401027 5F DB 5F ; CHAR '_' 00401028 6B DB 6B ; CHAR 'k' 00401029 > 27 DAA 0040102A . CF IRETD 0040102B . 8A8D ACE5CC4B MOV CL,BYTE PTR SS:[EBP+4BCCE5AC] 00401031 E9 DB E9 00401032 83 DB 83 00401033 E6 DB E6 00401034 6A DB 6A ; CHAR 'j' 00401035 82 DB 82 00401036 34 DB 34 ; CHAR '4' 00401037 26 DB 26 ; CHAR '&' 00401038 D9 DB D9 00401039 7A DB 7A ; CHAR 'z' 0040103A 74 DB 74 ; CHAR 't' 0040103B E0 DB E0 0040103C 6E DB 6E ; CHAR 'n' 0040103D 74 DB 74 ; CHAR 't' 0040103E EA DB EA 0040103F B6 DB B6 В статьях говориться что мол когда открываешь запакованную ASProtect 1.23 RC4 - 1.3.08.24 прогу то там сохраняеться в стэк регистры PUSHAD. А тут тем и непахнет... что делать? ![]() |
|
Создано: 15 октября 2011 15:51 · Личное сообщение · #2 |
|
Создано: 15 октября 2011 18:04 · Личное сообщение · #3 В olly 1.10 я прошелся по f7 и вышел на код распаковщика. В видиоуроке на диске exelab dvd посвещённому распаковке Bad_guy говорит, что надо поставить бряк в стеке. В Olly 1.10 я несмог поставить бряк в стеке, это возможно только в Olly 2.01, но если загрузить мою исследуемую программу в olly 2.01, то переход по f7 уже ничего не даст, так я немогу добраться до кода распаковщика. ![]() |
|
Создано: 15 октября 2011 18:23 · Личное сообщение · #4 |
|
Создано: 15 октября 2011 21:21 · Личное сообщение · #5 Спосибо tihiy_grom за направление, но это так и нерешило проблему. Ознакомился с частью 1 выпуска 2, и возникли следующие проблемы во-первых нет PhantOm v1.54. Сайты находил где он, а скачать так и не смог, там всё по-английски ничего не понятно. Во-вторых несмог остановить программу после распаковки Asprotect.dll так как бряк на GetSystemTime не сработал, остался только как было выше сказано переход по f7. Ну а что потом делать? Если нет возможности установить бряк на стеке. ![]() |
|
Создано: 15 октября 2011 22:13 · Личное сообщение · #6 |
|
Создано: 15 октября 2011 22:37 · Личное сообщение · #7 |
|
Создано: 15 октября 2011 22:56 · Личное сообщение · #8 итак мне удалось поймать GetSystemTime! И вот что я увидел. 7C80176F > 8BFF MOV EDI,EDI 7C801771 55 PUSH EBP 7C801772 8BEC MOV EBP,ESP 7C801774 83EC 18 SUB ESP,18 7C801777 A1 1800FE7F MOV EAX,DWORD PTR DS:[7FFE0018] 7C80177C 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 7C80177F 8B0D 1400FE7F MOV ECX,DWORD PTR DS:[7FFE0014] 7C801785 894D F8 MOV DWORD PTR SS:[EBP-8],ECX 7C801788 3B05 1C00FE7F CMP EAX,DWORD PTR DS:[7FFE001C] 7C80178E ^75 E7 JNZ SHORT kernel32.7C801777 7C801790 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18] 7C801793 50 PUSH EAX 7C801794 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8] 7C801797 50 PUSH EAX 7C801798 FF15 C810807C CALL DWORD PTR DS:[<&ntdll.RtlTimeToTime>; ntdll.RtlTimeToTimeFields 7C80179E 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 7C8017A1 66:8B4D E8 MOV CX,WORD PTR SS:[EBP-18] 7C8017A5 66:8908 MOV WORD PTR DS:[EAX],CX 7C8017A8 66:8B4D EA MOV CX,WORD PTR SS:[EBP-16] 7C8017AC 66:8948 02 MOV WORD PTR DS:[EAX+2],CX 7C8017B0 66:8B4D F6 MOV CX,WORD PTR SS:[EBP-A] 7C8017B4 66:8948 04 MOV WORD PTR DS:[EAX+4],CX 7C8017B8 66:8B4D EC MOV CX,WORD PTR SS:[EBP-14] 7C8017BC 66:8948 06 MOV WORD PTR DS:[EAX+6],CX 7C8017C0 66:8B4D EE MOV CX,WORD PTR SS:[EBP-12] 7C8017C4 66:8948 08 MOV WORD PTR DS:[EAX+8],CX 7C8017C8 66:8B4D F0 MOV CX,WORD PTR SS:[EBP-10] 7C8017CC 66:8948 0A MOV WORD PTR DS:[EAX+A],CX 7C8017D0 66:8B4D F2 MOV CX,WORD PTR SS:[EBP-E] 7C8017D4 66:8948 0C MOV WORD PTR DS:[EAX+C],CX 7C8017D8 66:8B4D F4 MOV CX,WORD PTR SS:[EBP-C] 7C8017DC 66:8948 0E MOV WORD PTR DS:[EAX+E],CX 7C8017E0 C9 LEAVE 7C8017E1 C2 0400 RETN 4 7C8017E4 90 NOP 7C8017E5 90 NOP 7C8017E6 90 NOP 7C8017E7 90 NOP 7C8017E8 90 NOP 7C8017E9 > 8BFF MOV EDI,EDI 7C8017EB 55 PUSH EBP 7C8017EC 8BEC MOV EBP,ESP 7C8017EE A1 1800FE7F MOV EAX,DWORD PTR DS:[7FFE0018] В Части первой сказано что область кода asprotect.dll выглядит по-другому, и что точку входа в область кода asprotect.dll можно увидеть если несколько раз перейти по ctrl+f9 после остановки на бряке. Но ничего похожего я неувидел, сколько не переходил.... ![]() |
|
Создано: 15 октября 2011 23:05 · Личное сообщение · #9 |
|
Создано: 15 октября 2011 23:48 · Личное сообщение · #10 ARCHANGEL спосибо за подсказку, я понял что статьи в моём случае врятли помогут... ничего похожего я нигде не встречу... вобщем я нажал минус и очутился тут... 00401000 >/$ 2003 AND BYTE PTR DS:[EBX],AL 00401002 |? C3 RETN 00401003 |? 3999 91A20032 CMP DWORD PTR DS:[ECX+3200A291],EBX 00401009 |? 1E PUSH DS 0040100A \. 6F OUTS DX,DWORD PTR ES:[EDI] ; I/O command 0040100B $ 2E:2C 1F SUB AL,1F ; Superfluous prefix 0040100E 67 DB 67 ; CHAR 'g' 0040100F C0 DB C0 00401010 7D DB 7D ; CHAR '}' 00401011 55 DB 55 ; CHAR 'U' 00401012 4A DB 4A ; CHAR 'J' 00401013 BA DB BA 00401014 5E DB 5E ; CHAR '^' 00401015 BF DB BF 00401016 3F DB 3F ; CHAR '?' 00401017 DC DB DC 00401018 DA DB DA 00401019 1D DB 1D 0040101A A4 DB A4 0040101B 27 DB 27 ; CHAR ''' 0040101C 8C DB 8C 0040101D 64 DB 64 ; CHAR 'd' 0040101E 90 NOP 0040101F 75 DB 75 ; CHAR 'u' 00401020 47 DB 47 ; CHAR 'G' 00401021 E9 DB E9 00401022 DB DB DB 00401023 CA DB CA 00401024 A7 DB A7 00401025 79 DB 79 ; CHAR 'y' 00401026 BE DB BE 00401027 5F DB 5F ; CHAR '_' 00401028 6B DB 6B ; CHAR 'k' 00401029 > 27 DAA 0040102A . CF IRETD 0040102B . 8A8D ACE5CC4B MOV CL,BYTE PTR SS:[EBP+4BCCE5AC] 00401031 E9 DB E9 00401032 83 DB 83 00401033 E6 DB E6 00401034 6A DB 6A ; CHAR 'j' 00401035 82 DB 82 00401036 34 DB 34 ; CHAR '4' 00401037 26 DB 26 ; CHAR '&' Что дальше? ![]() |
|
Создано: 16 октября 2011 01:35 · Личное сообщение · #11 во первых, надо выйти из функции, а не нажать минус, нажав минус вы выйдите на тот участок кода, который был открыт вами ранее. Во вторых, чтобы выйти из функции, надо дождаться её выполнения, модно это сделать нажав ctrl+f9 или поставить бряк на Code:
на retn 4 потом f7 и вы выйдете из функции. Кстати в eax лежит возвращаемое ей значение(если конечно не знаете). В третьих, в последнем участке кода видно, что распаковщик изменил тело вашей программы, но не всё, ибо затёрты только первые команды. Удачи. ![]() |
|
Создано: 16 октября 2011 02:45 · Личное сообщение · #12 |
|
Создано: 16 октября 2011 09:34 · Личное сообщение · #13 Спосибо парни. Я вышел из функции нажав два раза ctrl+f9, но как вы сами понимаете то что надо искать дальше, а так же то почему это надо искать я незнаю... ведь в статьях одно а на самом деле всё по-другому... вот код на который я вышел... 01052692 C3 RETN 01052693 90 NOP 01052694 83EC 0C SUB ESP,0C 01052697 9B WAIT 01052698 D93C24 FSTCW WORD PTR SS:[ESP] 0105269B 9B WAIT 0105269C D92D 1C600601 FLDCW WORD PTR DS:[106601C] 010526A2 DF7C24 04 FISTP QWORD PTR SS:[ESP+4] 010526A6 9B WAIT 010526A7 D92C24 FLDCW WORD PTR SS:[ESP] 010526AA 59 POP ECX 010526AB 58 POP EAX 010526AC 5A POP EDX 010526AD C3 RETN 010526AE 8BC0 MOV EAX,EAX 010526B0 56 PUSH ESI 010526B1 57 PUSH EDI 010526B2 89C7 MOV EDI,EAX 010526B4 31C0 XOR EAX,EAX 010526B6 8A07 MOV AL,BYTE PTR DS:[EDI] 010526B8 89D6 MOV ESI,EDX 010526BA 31C9 XOR ECX,ECX 010526BC 8A0E MOV CL,BYTE PTR DS:[ESI] 010526BE 46 INC ESI 010526BF 88C2 MOV DL,AL 010526C1 00CA ADD DL,CL 010526C3 72 0A JB SHORT 010526CF 010526C5 8817 MOV BYTE PTR DS:[EDI],DL 010526C7 47 INC EDI 010526C8 01C7 ADD EDI,EAX 010526CA F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] 010526CC 5F POP EDI 010526CD 5E POP ESI 010526CE C3 RETN 010526CF FEC2 INC DL 010526D1 28D1 SUB CL,DL 010526D3 B2 FF MOV DL,0FF 010526D5 ^EB EE JMP SHORT 010526C5 010526D7 C3 RETN 010526D8 56 PUSH ESI 010526D9 57 PUSH EDI 010526DA 89C7 MOV EDI,EAX 010526DC 31C0 XOR EAX,EAX ![]() |
|
Создано: 16 октября 2011 09:59 · Личное сообщение · #14 Может, всё же проще сходить в запросы? Или всё же самому посидеть и подумать немного хотя бы? Или вообще отложить до лучших времён? Вопросами засыпаешь по каждой нажатой кнопке с кучей бесполезного кода. Учитывая, что и кнопки жмёшь наобум. По статье далеко не всегда получается 1 в 1, но это не значит, что спрашивать надо вообще каждый шаг. ![]() |
|
Создано: 16 октября 2011 10:26 · Личное сообщение · #15 |
|
Создано: 16 октября 2011 10:29 · Личное сообщение · #16 |
|
Создано: 17 октября 2011 17:50 · Личное сообщение · #17 Молодец, это правильное решение. Я тоже когда то прочитал статью по снятию ASProtect и нифига не понял, начал читать все статьи на эту тему и форум cracklab, я даже боялся тут зарегистрироваться, вдруг залошат. Так я ГОД читал статьи, читал кряклаб, наконец распаковал свою софтину, поломал и только тогда порегался тут. Так что правильной дорогой идете товарищ. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 17 октября 2011 20:42 · Личное сообщение · #18 ProgLab пишет: В видиоуроке на диске exelab dvd посвещённому распаковке Bad_guy говорит, что надо поставить бряк в стеке. В Olly 1.10 я несмог поставить бряк в стеке, "надо поставить бряк в стеке." - Это не означает что бряк нужно ставить в окне стека. Не так ли? Бряк можно поставить на любой адрес, если перейти на него в окне дампа (Ctrl+G). И ставить бряк нужно соответственно на этот адрес уже в окне дампа. Прочтите цикл статей Нарвахи. ![]() |
|
Создано: 17 октября 2011 20:49 · Личное сообщение · #19 |
|
Создано: 17 октября 2011 20:55 · Личное сообщение · #20 |
|
Создано: 17 октября 2011 21:31 · Личное сообщение · #21 |
|
Создано: 18 октября 2011 01:15 · Личное сообщение · #22 |
![]() |
eXeL@B —› Вопросы новичков —› ошибка PEid или такая защита? |