Сейчас на форуме: _MBK_ (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Прямой доступ к диску. Помощь. |
Посл.ответ | Сообщение |
|
Создано: 27 марта 2007 01:19 · Личное сообщение · #1 Есть 16 разрядная порога (см. аттач) написанна на паскале... И вот с ней возникла небольшая проблемка, которую я никак не могу решить... Она пытается обратиться напрямую к диску и прочитать метку, однако ХР такое приложение блокирует (в 9х работает). И вот сколько не ищу где убить это проверку, найти не могу. Задача - запустить под ХР. Может кто моможет/подскажет? нашол кучу фугкций обращений к винту, нашол так же сообщение "метка не найдена", однако подняться по коду выше и вычислить,гуде это все проверяется у меня не вышло... буду рад полезному совету в решении этой проблемки... P.S. пПрограмма для исселование в архиве - AOPS_N.EXE ![]() ----- -=истина где-то рядом=- ![]() |
|
Создано: 27 марта 2007 03:37 · Личное сообщение · #2 KingSise попробуй изменить программу ,чтобы она читала метку на диске А: (flopy),винда прямое обращение к флоповоду недолжна блокировать.Вовсяком случаи когда я делал запись секторов диска через int 26h у меня получалось только с дискетой,с HDD получал облом-типа напрямую обращаться к жесткому диску нельзя ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 27 марта 2007 04:07 · Личное сообщение · #3 Да не причём тут обращение к диску. В этой проге вот здесь: 0003E3C4: CB retf выполняется хитрый переход (видимо к какой-то ДОСовской подпрограмме). Под хрюшкой там совсем другой код, то есть дальше выполняется мусор. У меня, например, хрень ругается после кода C4,C4... (нет такого опкода). ----- Всем привет, я вернулся ![]() |
|
Создано: 27 марта 2007 08:29 · Личное сообщение · #4 |
|
Создано: 27 марта 2007 09:39 · Личное сообщение · #5 |
|
Создано: 27 марта 2007 16:53 · Личное сообщение · #6 |
|
Создано: 27 марта 2007 18:28 · Личное сообщение · #7 Возможна, это работа напрямую (in/out)? В аттаче небольшая демка как читаецца серийный нумер винчестера (256 словей dw). ![]() ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 27 марта 2007 21:45 · Личное сообщение · #8 |
|
Создано: 27 марта 2007 21:59 · Личное сообщение · #9 ok, I'll try. Как я это вижу для начала: проги из V86 легко ловяцца на доступе к портам через I/O permission map (в 98-ой даже есть специальные сервисы на уровне ядра для виртуализации таких вещей как саунд-карты - наверное и в XP есть?) или же через bpio (DRx). Т.е. я начал бы именно с этого - бряки на доступ к IDE-портам в айсе или типа того... ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 27 марта 2007 22:14 · Поправил: bash · Личное сообщение · #10 KingSise А может попробовать запустить её с правами системы? Не знаю как это сделать, но может прописать её в ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" в ключе userinit после запятой... Ну или вместо скринсейвера scrnsave.scr способ такой есть. Поможет или нет? ![]() |
|
Создано: 27 марта 2007 22:42 · Личное сообщение · #11 bash I suppose it's impossible. Но вот пробить IO permission map для конкретной задачи из драйвера можно - давным давно я читал статью как чел так делал чтобы ускорить работу с девайсом из win32. Остаецца только опасение как они подружацца с виндовым драйвером диска (за винт fight) ;) ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 27 марта 2007 23:50 · Поправил: KingSise · Личное сообщение · #12 Chingachguk пишет: так делал чтобы ускорить работу с девайсом из win32. И естькакие либо результаты? bash пишет: А может попробовать запустить её с правами системы? Не знаю как это сделать, но может прописать её в ветке " попробовать можно, но результата 0. Также можно запустить ее как слуюбу (встречал подобные программки), но в результате тоже сомневаюсь... ----- -=истина где-то рядом=- ![]() |
|
Создано: 28 марта 2007 00:05 · Личное сообщение · #13 |
|
Создано: 28 марта 2007 01:29 · Личное сообщение · #14 Так. Итак. Открыл и посмотрел. Непонятно. В большой проге (265472) вроде как нету работы с портами ввода-вывода. Sice тоже ничего не сказал приятного. Хотел было написать только то, что выше - но посмотрел еще и setarm. Вот тут уже интереснее, там есть работа с винтом и именно через int 13h. Например: seg000:001F subWriteSector_1F proc near ; CODE XREF: PROGRAM+F9p seg000:001F seg000:001F Buffer = dword ptr 4 seg000:001F Sector = byte ptr 8 seg000:001F Track = byte ptr 0Ah seg000:001F Head = byte ptr 0Ch seg000:001F Drive = byte ptr 0Eh И красивый один xRef на нее! Запись вроде идет в дефолтный первый жесткий драйф, скорее всего хотела немного загадить в "неиспользованных" секторах рядом с MBR (обычно там размещали свои тела boot-вирусы). Прога слегонцухи обработана PKLITE'ом - это старый DOS-пакер. Я на скорую ручку запустил че-то типа: PKLITE.EXE SETARM.EXE -x ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 28 марта 2007 01:45 · Личное сообщение · #15 Ахха. Кажецца понятна как она зовет int 13h в основном приложении! Была вот такая хрень - функция intr(прерывание, &регистры) - вызофф прерывания с заданным нумером. Вот что я вижу: seg013:000B ; INTR(BYTE,REGISTERS far &) seg013:000B @INTR$q4BYTEm9REGISTERS proc far ; CODE XREF: seg000:0049P Она воопчето Сишная вроде а кот поскальный... Ну да вот и первый кроссенг: seg000:0022 mov byte ptr [bp-21Dh], 2 seg000:0027 mov byte ptr [bp-21Eh], 1 seg000:002C mov byte ptr [bp-219h], 0 seg000:0031 mov byte ptr [bp-21Ah], 1 seg000:0036 mov byte ptr [bp-218h], 80h ; 'А' seg000:003B mov byte ptr [bp-217h], 0 seg000:0040 seg000:0040 loc_40: ; DATA XREF: sub_3770A+16r seg000:0040 ; unknown_libname_13+2Br ... seg000:0040 mov al, 13h seg000:0042 push ax seg000:0043 lea di, [bp-21Eh] seg000:0047 push ss seg000:0048 push di seg000:0049 call @INTR$q4BYTEm9REGISTERS ; DATA XREF: seg015:1065r Знакомые мотивы, aren't they? ![]() ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 28 марта 2007 02:10 · Личное сообщение · #16 bash пишет: может попробовать запустить её с правами системы? Не знаю как это сделать, но может прописать её в ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" в ключе userinit после запятой... Да ключ реестра хороший для прятанья троев,только я непонимаю причём здесь запуск с правами системы? ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 28 марта 2007 02:45 · Личное сообщение · #17 |
|
Создано: 28 марта 2007 03:46 · Личное сообщение · #18 Chingachguk пишет: > C4,C4... www.wasm.ru/forum/viewtopic.php?id=7025 Это типа хитрый call gate Вот уж не знал про такое. Chingachguk, огромное спасибо за ссылку! Люблю такие топики. =) KingSise пишет: И вот сколько не ищу где убить это проверку, найти не могу. Задача - запустить под ХР. Может кто моможет/подскажет? В свете того, что сейчас прочёл про BOP, тем более ясно, после кода: 0003E38B: 55 push bp
мы "улетаем" на прерывание, а не на выход из этой процедуры. И, если я правильно понял, под NT данное прерывание "мессажет" нам о том, что прога попыталась его вызвать, а этого, дескать, делать нельзя. Я прав? Или туплю по утру ![]() ----- Всем привет, я вернулся ![]() |
|
Создано: 28 марта 2007 05:24 · Поправил: MACKLIA · Личное сообщение · #19 Chingachguk пишет: Прога слегонцухи обработана PKLITE'ом - это старый DOS-пакер Чем дольше тем интереснее ![]() Следующий интересный момент файл AOPSPTH.Открываю его FlexHex 'ом и вижу => ''pk..BGIDevice Driver (EGAVGA) 2.00 - Mar 21 1988..Copyright (c) 1987,1988 Borland International'' Хоть по Windows 3.11 запускай ![]() ![]() ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 28 марта 2007 13:58 · Личное сообщение · #20 Bitfry Не совсем, как я понимаю - это что-то типа: pushf call dword ptr 0000:[Interrupt_Num*4] Т.е. в явном виде команды int 13h там нет - вот не искалось. Прога вроде никак не защищаецца от патча, разве что где-то crc, так что (наверное) проще будет патч, или - если не хочецца - написать резидента (дос) на int 13h который чекает запросы от этой проги или отдает дальше настоящему int 13h. ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 28 марта 2007 23:21 · Личное сообщение · #21 |
![]() |
eXeL@B —› Основной форум —› Прямой доступ к диску. Помощь. |
Эта тема закрыта. Ответы больше не принимаются. |