Сейчас на форуме: Magister Yoda, subword (+9 невидимых) |
![]() |
eXeL@B —› Основной форум —› Помогите доломать прогу (под все тотже DOS) |
Посл.ответ | Сообщение |
|
Создано: 15 апреля 2008 15:20 · Личное сообщение · #1 Вобщем дело такое. Есть прога: www.nsk.su/~vlad_shil/steklo/ "Программа раскроя стекла" 4.16 Demo... сама система эта состоит из двух главных файлов: Autonest.exe и RS.exe (его можно отрыть в папке RASKROY)... Autonest.EXE яв-ся оболочкой, т.к. удобно создает конфигурационные файлы, которые в проследствие использует RS.EXE... саму оболочку я уже отлучил от благого мата, при привышении ограничений: rapidshare.com/files/107668603/autonest_patch.exe.html (20 кб) а вот с RS.exe - трабла... mADmAT и ajax распаковали этот файло ![]() ![]() дос-проги я не реверсил, посему прошу помощи... вопрос #1: почему отладчик вылетает (пробовал дебажить как в XP, так и в 98... надо ещё под дос попробовать ![]() #2: я нашел строки, в которых прога (по-крайне мере не распакованная) выдавала сообщение об превышении демо-лимта, но IDA не указала не одного референса к этой строке ![]() зарание спасибо! ![]() |
|
Создано: 15 апреля 2008 17:20 · Личное сообщение · #2 |
|
Создано: 16 апреля 2008 10:53 · Личное сообщение · #3 |
|
Создано: 16 апреля 2008 19:58 · Личное сообщение · #4 |
|
Создано: 16 апреля 2008 20:06 · Личное сообщение · #5 здесь http://www.exelab.ru/f/action=vthread&forum=1&topic=11667 запакованный (в 1-ом посте), тамже найдешь и распакованный ![]() буду очень признателен, а то чёт вобще застрял я на этой проге ![]() ![]() |
|
Создано: 16 апреля 2008 20:36 · Личное сообщение · #6 |
|
Создано: 16 апреля 2008 20:54 · Личное сообщение · #7 |
|
Создано: 16 апреля 2008 22:03 · Личное сообщение · #8 и я про тоже... прикол вот в чем: отладчик (turbo debuger) улетает в даун тут:
дальше в IDA-вобще бредятина:
тот call ссылается на:
ужоснах! ![]() теперь 2 варианта: 1) аффтор извращенец и понамудрил тут, что сам черт ногу сломит... ![]() 2) распаковано не верно (сейчас очень хочется надеять на это ![]() кто-нить еще разбирал ЭТО ![]() копаем дальше... ![]() |
|
Создано: 16 апреля 2008 22:52 · Личное сообщение · #9 это упаковано pklite можно распаковать unpklite с опцией -i можно cup386 /3 токо в чистом досе а не из под винды там много сегментов в голову пока что приходит токо то что помню из своего детства 1 это помоему в pklite а может в каком то и до упаковщике была опция запаковать без распаковки когда там что то мешаеться а потом запаковываеться 2 возможно там оверлей(хотя непохоже) решение - это поискать Turbo C++ скомпилить на нем какую нибудь прогу и посмотреть как он ее соберет а потом разобрать и сравнить наскоко это похоже если непохоже значит автор возможно переписал stub либо чем то еще упаковано) либо есть кусок упаковыный в самой проге дерзай) ![]() |
|
Создано: 17 апреля 2008 01:11 · Личное сообщение · #10 вообщем распаковываеться программа правильно потом она еще и обфускачена и закручеными call прыгает в еще одни толи декриптор толи анпакер потом левыми call возращаеться в нормальный main почему не пашет распакованые версии можно токо предполагать))и преположений как всегда много пакер/криптор скорее всего от автора ![]() |
|
Создано: 17 апреля 2008 09:50 · Личное сообщение · #11 alexey_k пишет: seg001:3CDF sub_1AA2F proc near ; CODE XREF: seg001:0005P seg001:3CDF ; seg001:loc_16DB9P ... seg001:3CDF seg001:3CDF var_36 = dword ptr -36h seg001:3CDF seg001:3CDF push bp seg001:3CE0 mov bp, sp seg001:3CE2 call near ptr loc_1AA35+5 ............................... ужоснах! цепочка вызовов и мясо начинается вот тут seg001:40D2 push bp seg001:40D3 mov bp, sp seg001:40D5 sub sp, 12h seg001:40D8 push si seg001:40D9 push di seg001:40DA mov si, ax seg001:40DC mov di, bx seg001:40DE mov [bp+_DX], dx seg001:40E1 mov [bp+_CX], cx seg001:40E4 mov word ptr [bp+src_addr], si seg001:40E7 mov word ptr [bp+src_addr+2], cs seg001:40EA mov word ptr [bp+dst_addr], di seg001:40ED mov word ptr [bp+dst_addr+2], cs seg001:40F0 push 0 seg001:40F2 call sub_1401A ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 17 апреля 2008 10:31 · Личное сообщение · #12 мдаа... аффтор действительно постарался ![]() OKOB пишет: цепочка вызовов и мясо начинается вот тут как раз на этом мясе отладчик и уходит в мир иной... (у него аж судорога начинается - курсор как сумасшедший начинает метаться по экрану ![]() reversecode пишет: call возращаеться в нормальный main а адресок перехода можно? ЗЫ Во не думал, что будет такое зап0дл0 с этой прогой... ну надеюсь, что всеже осилить можно ![]() ![]() |
|
Создано: 17 апреля 2008 12:11 · Личное сообщение · #13 нужно взять значение базы доступа к данным из word_1CB34 seg001:4296 mov bx, word_1CB34 seg001:429A shl bx, 2 seg001:429D les bx, [bx+1C96h] вычислить смещение к строкам относительно этой базы dseg:07CF aVhimahieSpabot db 0Ah dseg:07CF db 'ВHИМАHИЕ:',0Ah dseg:07CF db 'сpаботала защита пpивязки пpогpаммы к компьютеpу!',0Ah dseg:07CF db 'Пеpеустановите пpогpамму для ее дальнейшей pаботы',0Ah dseg:07CF db 'или обpатитесь к pазpаботчику пpогpаммы по адpесу',0Ah dseg:07CF db 'E-Mail: vlad_shil@risp.ru',0Ah,0 и попробовать поискать к ним доступ в ИДЕ ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 17 апреля 2008 12:43 · Поправил: alexey_k · Личное сообщение · #14 |
|
Создано: 17 апреля 2008 15:24 · Личное сообщение · #15 |
|
Создано: 17 апреля 2008 15:40 · Личное сообщение · #16 написать прогу в которую впихнуть тот протектор с его базами итд и запустить что бы он сам прошелся по всему а потом результирующий код вписать обратно куда надо и все там побито токо начало дальше вся программа чистая если ida натравить на BCC/TCC компилер то он половину фунукций там понаходит кстати то чтоты не то нашел то что я нашел там уже процедура с offset на тот код который он проганяет и куда его потом нужно вписать ![]() |
|
Создано: 17 апреля 2008 15:50 · Личное сообщение · #17 reversecode пишет: написать прогу в которую впихнуть тот протектор с его базами итд и запустить что бы он сам прошелся по всему а потом результирующий код вписать обратно куда надо ![]() reversecode пишет: то что я нашел там уже процедура с offset на тот код который он проганяет и куда его потом нужно вписать ща покопаю, посмотрю что там... и ещё... reversecode пишет: там побито токо начало дальше вся программа чистая а нельзя-ли поступить так: запустить запакованных exe-шник по дебугером пройти всю распаковку + раскриптовку (после которой падали "распакованные" файлы) потом уже слить дамп (ток как - хз, в SIce это можно сделать?) и подправить его... + кто-нить знает, инлайн патч для DOS-прог возможен? ![]() |
|
Создано: 17 апреля 2008 15:59 · Личное сообщение · #18 |
|
Создано: 17 апреля 2008 16:41 · Личное сообщение · #19 |
|
Создано: 15 мая 2008 09:00 · Личное сообщение · #20 |
|
Создано: 16 мая 2008 14:33 · Личное сообщение · #21 |
|
Создано: 21 мая 2008 14:58 · Поправил: OKOB · Личное сообщение · #22 на распакованном файле до 1E8 не дойдет, вспоткнется на проверке целостности (байт 52h по смещению 18h - адрес таблицы релоков) seg001:009A push ds seg001:009B push offset aRb ; "rb" seg001:009E les bx, [bp+argc] seg001:00A1 push word ptr es:[bx+2] seg001:00A5 push word ptr es:[bx] seg001:00A8 call FILE_open ; open self seg001:00AD add sp, 8 seg001:00B0 mov word ptr _FILE_self, ax seg001:00B3 mov word ptr _FILE_self+2, dx seg001:00B7 mov begUninitData_step1, 1 seg001:00BD mov ax, 2Bh seg001:00C0 call proc4_someDestroy_skip6 seg001:00C0 ; ---------------------------------------------------------------------- ----- seg001:00C5 dw 1 seg001:00C7 dw 21h seg001:00C9 dw 687h seg001:00CB ; ---------------------------------------------------------------------- ----- seg001:00CB mov di, 22h seg001:00CE call far ptr skip_some_bytes seg001:00CE ; ---------------------------------------------------------------------- ----- seg001:00D3 db 2Eh, 36h, 0EAh seg001:00D6 ; ---------------------------------------------------------------------- ----- seg001:00D6 push cs ; far call seg001:00D7 call near ptr checkTrace_skip5 seg001:00D7 ; ---------------------------------------------------------------------- ----- seg001:00DA db 0E8h, 0D5h, 3Eh, 0C7h, 8Eh seg001:00DF ; ---------------------------------------------------------------------- ----- seg001:00DF mov ax, 0B1h seg001:00E2 call proc2 seg001:00E7 mov ax, word ptr _FILE_self seg001:00EA or ax, word ptr _FILE_self+2 seg001:00EE jnz short ok_open seg001:00F0 jmp err_open seg001:00F3 ; ---------------------------------------------------------------------- ----- seg001:00F3 seg001:00F3 ok_open: ; CODE XREF: _MAIN+CCj seg001:00F3 push 0 seg001:00F5 push 0 seg001:00F7 push 18h seg001:00F9 push word ptr _FILE_self+2 seg001:00FD push word ptr _FILE_self seg001:0101 call FILE_seek seg001:0106 add sp, 0Ah seg001:0109 or ax, ax seg001:010B jnz short err_seek seg001:010D push word ptr _FILE_self+2 seg001:0111 push word ptr _FILE_self seg001:0115 push 1 seg001:0117 push 1 seg001:0119 push ss seg001:011A lea ax, [bp+check_buf] seg001:011D push ax seg001:011E call FILE_read seg001:0123 add sp, 0Ch seg001:0126 cmp ax, 1 seg001:0129 jnz short err_seek seg001:012B call far ptr skip_some_bytes seg001:012B ; ---------------------------------------------------------------------- ----- seg001:0130 db 66h, 67h, 81h seg001:0133 ; ---------------------------------------------------------------------- ----- seg001:0133 cmp [bp+check_buf], 52h ; relocation table address seg001:0137 jz short ok_check ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 22 мая 2008 10:10 · Личное сообщение · #23 |
![]() |
eXeL@B —› Основной форум —› Помогите доломать прогу (под все тотже DOS) |