eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Помогите доломать прогу (под все тотже DOS)
Посл.ответ Сообщение

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 15 апреля 2008 15:20 New!
Цитата · Личное сообщение · #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 распаковали этот файло , но при отладке (я юзал turbo debuger), отладчик просто уходил в даун

дос-проги я не реверсил, посему прошу помощи...

вопрос #1: почему отладчик вылетает (пробовал дебажить как в XP, так и в 98... надо ещё под дос попробовать )
#2: я нашел строки, в которых прога (по-крайне мере не распакованная) выдавала сообщение об превышении демо-лимта, но IDA не указала не одного референса к этой строке , а т.к. дебажить не могу, хз как мне нужный переход отыскать...

зарание спасибо!

Ранг: 5.4 (гость)
Статус: Участник

Создано: 15 апреля 2008 17:20 New!
Цитата · Личное сообщение · #2

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

Ранг: 24.1 (новичок)
Статус: Участник

Создано: 16 апреля 2008 10:53 New!
Цитата · Личное сообщение · #3

1. softice + win98
2. в ida смотри, весь ли код декомпилирован, и опознаны ли аргументы инструкций как смещения (скорее всего, стоят просто как числа)


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 16 апреля 2008 19:58 New!
Цитата · Личное сообщение · #4

а можно линк на RS exe
который запакованый и распакованый
погляжу...

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 16 апреля 2008 20:06 New!
Цитата · Личное сообщение · #5

здесь http://www.exelab.ru/f/index.php?action=vthread&forum=1&topic=11667

запакованный (в 1-ом посте), тамже найдешь и распакованный

буду очень признателен, а то чёт вобще застрял я на этой проге


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 16 апреля 2008 20:36 New!
Цитата · Личное сообщение · #6

а распакованый RS вообще хоть работает?


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 16 апреля 2008 20:54 New!
Цитата · Личное сообщение · #7

похоже распаковываеться неверно
поскольку ни одна из распакованых не создает file.log

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 16 апреля 2008 22:03 New!
Цитата · Личное сообщение · #8

и я про тоже...
прикол вот в чем:
отладчик (turbo debuger) улетает в даун тут:

; из TD:

cs0069: 9ADF3C0319 call 1903:3CDF



дальше в IDA-вобще бредятина:

seg001:0069 call far ptr sub_1AA2F ; < злополучный call
seg001:006E db 36h, 3Eh
seg001:006E imul cx, ds:8CE8h, 0E8FFh
seg001:0076 aad 3Eh


тот call ссылается на:


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:3CE5
seg001:3CE5 loc_1AA35: ; CODE XREF: sub_1AA2F+3p
seg001:3CE5 sbb [ebp+var_36+1], 0E8EC8B55h
seg001:3CE5 sub_1AA2F endp


ужоснах!

теперь 2 варианта:
1) аффтор извращенец и понамудрил тут, что сам черт ногу сломит...
2) распаковано не верно (сейчас очень хочется надеять на это )

кто-нить еще разбирал ЭТО ?

копаем дальше...


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 16 апреля 2008 22:52 New!
Цитата · Личное сообщение · #9

это упаковано pklite
можно распаковать
unpklite с опцией -i
можно cup386 /3 токо в чистом досе а не из под винды

там много сегментов
в голову пока что приходит токо то что помню из своего детства
1 это помоему в pklite а может в каком то и до упаковщике была опция запаковать без распаковки
когда там что то мешаеться а потом запаковываеться
2 возможно там оверлей(хотя непохоже)

решение - это поискать Turbo C++ скомпилить на нем какую нибудь прогу и посмотреть как он ее соберет
а потом разобрать
и сравнить наскоко это похоже
если непохоже
значит автор возможно переписал stub
либо чем то еще упаковано)
либо есть кусок упаковыный в самой проге

дерзай)


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 17 апреля 2008 01:11 New!
Цитата · Личное сообщение · #10

вообщем распаковываеться программа правильно
потом она еще и обфускачена и закручеными call прыгает в еще одни толи декриптор толи анпакер
потом левыми call возращаеться в нормальный main
почему не пашет распакованые версии
можно токо предполагать))и преположений как всегда много
пакер/криптор скорее всего от автора


Ранг: 520.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 17 апреля 2008 09:50 New!
Цитата · Личное сообщение · #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

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 17 апреля 2008 10:31 New!
Цитата · Личное сообщение · #12

мдаа... аффтор действительно постарался

OKOB пишет:
цепочка вызовов и мясо начинается вот тут

как раз на этом мясе отладчик и уходит в мир иной... (у него аж судорога начинается - курсор как сумасшедший начинает метаться по экрану )

reversecode пишет:
call возращаеться в нормальный main

а адресок перехода можно?

ЗЫ
Во не думал, что будет такое зап0дл0 с этой прогой...
ну надеюсь, что всеже осилить можно


Ранг: 520.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 17 апреля 2008 12:11 New!
Цитата · Личное сообщение · #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

и попробовать поискать к ним доступ в ИДЕ

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 17 апреля 2008 12:43 · Поправил: alexey_k New!
Цитата · Личное сообщение · #14

Не понял, что имелось в виду?
это причина по которой не создается файл FILE.LOG? или что?

зы
если есть желание, можно через аску общатся.. мое: 400366707

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 17 апреля 2008 15:24 New!
Цитата · Личное сообщение · #15

ОП!
ни один из распакованных файлов НЕ РАБОТАЕТ под Win98! При попытке просто его запустить (без отладчика), форточки сразу кроют матом типа: выполнила некоректную операцию.. бла бла бла...

вылетает на 03888:FFFF

хз как вобще боротся с этой прогой


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 17 апреля 2008 15:40 New!
Цитата · Личное сообщение · #16

написать прогу в которую впихнуть тот протектор с его базами итд
и запустить что бы он сам прошелся по всему
а потом результирующий код вписать обратно куда надо
и все
там побито токо начало
дальше вся программа чистая
если ida натравить на BCC/TCC компилер то он половину фунукций там понаходит

кстати то чтоты не то нашел
то что я нашел там уже процедура с offset на тот код который он проганяет и куда его потом нужно вписать

Ранг: 135.2 (ветеран)
Статус: Участник

Создано: 17 апреля 2008 15:50 New!
Цитата · Личное сообщение · #17

reversecode пишет:
написать прогу в которую впихнуть тот протектор с его базами итд
и запустить что бы он сам прошелся по всему
а потом результирующий код вписать обратно куда надо

с этим я врят-ли справлюсь...

reversecode пишет:
то что я нашел там уже процедура с offset на тот код который он проганяет и куда его потом нужно вписать

ща покопаю, посмотрю что там...

и ещё...

reversecode пишет:
там побито токо начало
дальше вся программа чистая


а нельзя-ли поступить так:
запустить запакованных exe-шник по дебугером
пройти всю распаковку + раскриптовку (после которой падали "распакованные" файлы)
потом уже слить дамп (ток как - хз, в SIce это можно сделать?) и подправить его...

+ кто-нить знает, инлайн патч для DOS-прог возможен?


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 17 апреля 2008 15:59 New!
Цитата · Личное сообщение · #18

я про такое незнаю
я у многих проги именно так снимаю защиты

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 17 апреля 2008 16:41 New!
Цитата · Личное сообщение · #19

alexey_k пишет:
ток как - хз, в SIce это можно сделать?

IceExt 0.70 by Sten тебе поможет
www.wasm.ru/toollist.php?list=10
alexey_k пишет:
+ кто-нить знает, инлайн патч для DOS-прог возможен?

А почему нет

Ранг: 2.0 (гость)
Статус: Участник

Создано: 15 мая 2008 09:00 New!
Цитата · Личное сообщение · #20

обратил внимание на
seg001:3CE2 call near ptr loc_1AA35+5
seg001:3CE5
seg001:3CE5 loc_1AA35: ; CODE XREF: sub_1AA2F+3p

call на 5 байтов дальше ссылки т.е. скорее всего на 1AA3А

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 16 мая 2008 14:33 New!
Цитата · Личное сообщение · #21

Не понял вы еще не обошли все проверки тогда вот вам: : почти oep (сегмент после снятия pklite:01e8) все что ниже этого адреса это уже нормальные проверки на не законное использование проги а все что исполнялось до проверки на дебагерство.


Ранг: 520.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 21 мая 2008 14:58 · Поправил: OKOB New!
Цитата · Личное сообщение · #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

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 22 мая 2008 10:10 New!
Цитата · Личное сообщение · #23

Согласен но только люди здесь вроде как уже инпатчер писать собирались...
 eXeL@B —› Основной форум —› Помогите доломать прогу (под все тотже DOS)

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS