Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 32

Тема: SN

  1. #11
    Member Аватар для Looker
    Регистрация
    16.01.2005
    Адрес
    Severodonetsk, Ukraine
    Сообщений
    92
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RomanRom2
    и вообще, горд за нижний новгород - законодатель мод в обработке спектрумовских файлов

    ЗЫ. кстати, в процессе ознакомления с контентом первое на что наткнулся, так на тему http://zx.pk.ru/showthread.php?t=5 и фразу:

    Еще спрашивает!!!
    Да я без них жить не могу!!!
    Всяческие Спектрум-нафигаторы отпадают как класс.


    был приятно удивлен.
    извини, тезка, не хотел обидеть.
    Я просто имелл ввиду, что не нужны дополнитульные утилиты..
    А то, что законодатель мод - это "де факто".

    Кстати, это именно мы когда-то подкинули тебе наши сорцы для работы с реальными дисками.

  2. #12
    Member Аватар для RomanRom2
    Регистрация
    09.02.2005
    Адрес
    Нижний Новгород
    Сообщений
    146
    Спасибо Благодарностей отдано 
    49
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    38 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да я и не обиделся кто сказал что я обиделся?

    да, сорцов кто только мне не кидал, давно это было, я уж и не помню. даже пауль павлов дал мне исходники ADM Copier...

    один фиг я свои в итоге написал, взяв за основу те, что прислал мне миха орехов, который ком загрузчик на асме написал.

  3. #13
    Member
    Регистрация
    30.01.2005
    Сообщений
    62
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RomanRom2
    да я и не обиделся кто сказал что я обиделся?

    да, сорцов кто только мне не кидал, давно это было, я уж и не помню. даже пауль павлов дал мне исходники ADM Copier...

    один фиг я свои в итоге написал, взяв за основу те, что прислал мне миха орехов, который ком загрузчик на асме написал.
    Привет! Разобрался как под XP иметь прямой доступ к портам? Я вроде, нашел пару программ, которые позволяют это делать. Или это fake - не знаю даже ...

  4. #14
    Member Аватар для RomanRom2
    Регистрация
    09.02.2005
    Адрес
    Нижний Новгород
    Сообщений
    146
    Спасибо Благодарностей отдано 
    49
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    38 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    футы нуты, смотри ка, кто тут у нас! ))

    я совершенно точно знаю, что попасть в нулевое кольцо защиты виндов можно. у меня были где то даже сорцы, и для 95(9х) и для НТ. только я их не пробовал, аккуратненько сложил куда-то, куда именно - конечно же благополучно забыл.

    надо п поискать еще...

    ЗЫ. а почему в сообщении нельзя поставить более 4 смайликов? я понимаю, что это политика/религия такая но почему четырех?

  5. #15
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот пример, как прочитать MSR из ring0. порты аналогично.
    Код:
    #pragma pack(1)
    struct CALLGATE_DESCRIPTOR
    {
      WORD Offset_0_15;
      WORD Selector;
      union {
         struct {
            WORD ParamCount   : 5;
            WORD Unused       : 3;
            WORD Type         : 4;
            WORD System       : 1;
            WORD DPL          : 2;
            WORD Present      : 1;
         };
         WORD misc;
      };
      WORD Offset_16_31;
    };
    typedef struct CALLGATE_DESCRIPTOR GDT_DESCRIPTOR;
    
    struct GDTR
    {
      WORD wGDTLimit;
      DWORD dwGDTBase;
    };
    #pragma pack()
    
    unsigned gdt_index = 0;
    HANDLE hSection;
    GDT_DESCRIPTOR *pGDTDescriptor;
    unsigned r0_p1, r0_p2;
    
    DWORD __inline QuasiMmGetPhysicalAddress(DWORD va) {
       // only for NT and for 0x80000000 <= va <= 0xA0000000
       return (va & 0x1FFFF000); // physical address (page aligned)
    }
    
    DWORD ring0(void *func, DWORD param1, void *param2 = 0) 
    {
       if (!func && !gdt_index) return 1;
    
       if (!gdt_index) { // try to allocate GDT entry
    
          struct GDTR gdtr;
          __asm sgdt [gdtr]
          pGDTDescriptor = (GDT_DESCRIPTOR*)gdtr.dwGDTBase;
    
          if (!running9x) { // map physical memory
             if (!nt_imports() || !advapi32_imports()) return 0;
             UNICODE_STRING PhMem;
             _RtlInitUnicodeString(&PhMem, L"\\Device\\PhysicalMemory");
             OBJECT_ATTRIBUTES oa = { sizeof oa, 0, &PhMem, OBJ_CASE_INSENSITIVE };
             int r = _NtOpenSection(&hSection, SECTION_MAP_WRITE, &oa);
             if (r) {
                r = _NtOpenSection(&hSection, READ_CONTROL | WRITE_DAC, &oa);
                if (r) { printerr1(_RtlNtStatusToDosError(r), "can't open PhysicalMemory"); return 0; }
    
                r = _SetSecurityInfo(hSection, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION,
                                       0, 0, 0, 0); // this will give access to everyone!
                if (r) { printerr1(r, "can't SetSecurityInfo for PhysicalMemory"); return 0; }
                CloseHandle(hSection);
                r = _NtOpenSection(&hSection, SECTION_MAP_WRITE, &oa);
                if (r) { printerr1(_RtlNtStatusToDosError(r), "can't open section"); return 0; }
             }
             DWORD offset = gdtr.dwGDTBase & 0x0FFF;
             pGDTDescriptor = (GDT_DESCRIPTOR*)MapViewOfFile(hSection, SECTION_MAP_WRITE, 0,
                          QuasiMmGetPhysicalAddress(gdtr.dwGDTBase),
                          align(gdtr.wGDTLimit + offset, 0x1000));
             if (!pGDTDescriptor) { printerr("MapViewOfFile()"); return 0; }
             pGDTDescriptor = (GDT_DESCRIPTOR*)((char*)pGDTDescriptor + (gdtr.dwGDTBase & 0x0FFF));
          }
          // create callgate
          for (int index = 1; index < gdtr.wGDTLimit/8; index++)
             if (!pGDTDescriptor[index].misc) {
                gdt_index = index;
                #define pCallgate pGDTDescriptor[index]
                pCallgate.misc = 0xEC00;
                pCallgate.Selector = running9x ? 0x28 : 0x08;
                #undef pCallgate
                break;
             }
       }
       if (!gdt_index) { printf("can't find free GDT entry\n"); return 0; }
       if (func) {
          WORD callgate[3];
          callgate[2] = (gdt_index << 3) | 3;
          #define pCallgate pGDTDescriptor[gdt_index]
          pCallgate.Offset_0_15 = LOWORD(func);
          pCallgate.Offset_16_31 = HIWORD(func);
          #undef pCallgate
          *(volatile unsigned*)func; // pagein! system hangs,if function not in RAM
          *(volatile unsigned*)((int)func+0x1000);
    
          __asm pushad
          __asm push ebp
          __asm mov eax, [param1]
          __asm mov ecx, [param2]
          __asm call fword ptr [callgate]
          __asm pop ebp
          __asm mov [param1], eax
          __asm mov [r0_p1], ecx
          __asm mov [r0_p2], edx
          __asm popad
          return param1;
    
       } else { // delete callgate at gdt_index
          *(unsigned*)&pGDTDescriptor[gdt_index] =
          *(unsigned*)((char*)&pGDTDescriptor[gdt_index]+4) = 0;
          if (!running9x) {
             UnmapViewOfFile(pGDTDescriptor);
             CloseHandle(hSection);
          }
          gdt_index = 0;
          return 1;
       }
    }
    
    __declspec(naked) void readMSR_r0(unsigned index) 
    {
       __asm mov ecx, eax
       __asm rdmsr
       __asm retf
    }
    
    unsigned readMSR_DWORD(unsigned index) 
    {
       unsigned res = ring0(readMSR_r0, index);
       ring0(0,0); // заделываем дырку назад. это можно сделать перед окончанием операции с ring0
       return res;
    }

  6. #16
    Activist
    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Arrow omniflop

    Цитата Сообщение от RomanRom2
    я совершенно точно знаю, что попасть в нулевое кольцо защиты виндов можно. у меня были где то даже сорцы, и для 95(9х) и для НТ. только я их не пробовал, аккуратненько сложил куда-то, куда именно - конечно же благополучно забыл.
    Не так давно наткнулся на утилиту OmniFlop (http://www.8bs.com/othrdnld/utilitie...p/OmniFlop.htm) предназначенную для чтения дискет нестандартных форматов и поддерживающую NT-системы. Вместе с ней поставляется свой WDM драйвер дисковода. Программа умеет читать все виды дискет кроме TR-DOS . Но там есть анализатор формата, так что она может прочитать всё. Но! Для чтения дискет не-DOS нужна бесплатная регистрация Я уже отправил письмо, но пока не получал ответа .
    Насчёт этого драйвер флоппи. С ним доступ в винде к дискетам осуществляется как-то очень странно - голова ёрзает по сто раз для того, чтобы прочитать файл. Также попробовал досовские утилиты для форматирования/чтения спековских дискет - вроде низкоуровневый доступ даётся, но они ничего не могут прочитать, пишут, что плохой сектор или ещё что-нить. А как у вас? У меня Win2k SP4.
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    пашет и на 9x, надо running9x=1, а _RtlInitUnicodeString,_NtOpenSection,_SetSecurityI nfo - указатели на соответствующие функции, беруться GetProcAddress'ом - не импортировать. если NT-only, то подчеркивание можно безболезненно стереть

  9. #18
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уважаемые программисты под win. Может все же кто-нибудь переделает SN под Win Xp?
    axor/Perspective
    http://abzac.retropc.ru/

  10. #19
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А смысл?
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  11. #20
    Master
    Регистрация
    17.01.2005
    Адрес
    Старый Оскол
    Сообщений
    537
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    4 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Уважаемые программисты под win. Может все же кто-нибудь переделает SN под Win Xp?
    А чем ZX плагины для FAR не подходят ?

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •