• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 利用驱动程序读取硬盘序列号的汇编程序

利用驱动程序读取硬盘序列号的汇编程序

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了三菱程序序列号,千月蓝牙驱动序列号,野狼外置驱动序列号,千月驱动序列号,夏普打印机驱动序列号等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div> 这里有个小程序hdsn32.asm,是我2000年写的,在win9x下读取硬盘的序列号,它利用了类似CIH病毒的办法获得ring0权限,在win2000下不能运行.
   ;  hdsn32.asm
   .386
   .model flat, stdcall ; 32 bit memory model
   option casemap :none ; case sensitive
   
   include \masm32\include\windows.inc
   include \MASM32\INCLUDE\shell32.inc
   include \MASM32\INCLUDE\masm32.inc
   include \masm32\include\user32.inc
   include \masm32\include\kernel32.inc
   
   includelib \MASM32\LIB\shell32.lib
   includelib \MASM32\LIB\masm32.lib
   includelib \masm32\lib\user32.lib
   includelib \masm32\lib\kernel32.lib
   
.data

IDTR    df 0      ; This will receive the contents of the IDTR
              ; register

SavedGate  dq 0      ; We save the gate we replace in here

OurGate   dw 0      ; Offset low-order word
      dw 028h     ; Segment selector
      dw 0EE00h    ;
      dw 0      ; Offset high-order word
BUFF1 DW 256 DUP(20H)       
hdsn_1 db '硬盘C序列号:',0DH,0AH
hdsn_2 db 256 dup(0)
hdsn_3 db 20 dup(0)
szCaption db 'hdsn32 v1.0 for win9x 山东海化集团 盛玉增 编制 2000.12.21',0
name_buffer db 'hdsn.bin',0

.data?
hFile HANDLE ?
SizeReadWrite DWORD ?

.code
Start:
   mov   eax, offset Ring0Proc
   mov   [OurGate], ax       ; Put the offset words
   shr   eax, 16          ; into our descriptor
   mov   [OurGate+6], ax

   sidt   fword ptr IDTR
   mov   ebx, dword ptr [IDTR+2]  ; load IDT Base Address
   add   ebx, 8*3          ; Address of int 3 descriptor in ebx

   mov   edi, offset SavedGate
   mov   esi, ebx
   movsd                ; Save the old descriptor
   movsd                ; into SavedGate

   mov   edi, ebx
   mov   esi, offset OurGate
   movsd                ; Replace the old handler
   movsd                ; with our new one

   int  3h              ; Trigger the exception, thus
                     ; passing control to our Ring0
                     ; procedure

   mov   edi, ebx
   mov   esi, offset SavedGate
   movsd                ; Restore the old handler
   movsd
   
   invoke MessageBox,NULL,addr hdsn_1,addr szCaption,MB_OK

  invoke CreateFile,ADDR name_buffer,\
       GENERIC_READ or GENERIC_WRITE ,\
       FILE_SHARE_READ or FILE_SHARE_WRITE,\
       NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,\
       NULL
  mov hFile,eax
   push offset hdsn_2
   pop esi
   push offset hdsn_3
   pop edi
   mov ecx,20
jm_1:   
   lodsb
   xor al,36h
   stosb
   loop jm_1
  invoke WriteFile,hFile,ADDR hdsn_3,20,\
       ADDR SizeReadWrite,NULL
  invoke CloseHandle,hFile
   invoke ExitProcess,eax

Ring0Proc PROC
start_1:
   mov edx,1f7h
   in al,dx
   cmp al,50h
   jnz start_1
   dec dx
   mov al,0a0h
   out dx,al
   mov dx,1f7h
   mov al,0ech
   out dx,al
   mov dx,1f7h
st_1: 
   in al,dx
   cmp al,58h
   jnz st_1
   mov dx,1f0h
   mov edi,offset BUFF1
   mov ecx,0
   mov cx,256
st_2: 
   in ax,dx
   xchg ah,al
   stosw
   loop st_2
   sti
   push offset BUFF1[20]
   pop esi
   push offset hdsn_2
   pop edi
   mov ecx,20
   rep movsb
   iretd
   
Ring0Proc ENDP
  end Start
</div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 利用驱动程序读取硬盘序列号的汇编程序

相关文章

  • 2017-06-28了解汇编命令行参数
  • 2017-06-1780x86寻址方式
  • 2017-06-17伪操作
  • 2017-06-285个DOS专用文件的6种io重定向(实现管道原理)
  • 2017-06-28内存映射文件原理及实例
  • 2017-06-17I/O设备的数据传送方式
  • 2017-06-17汇编程序功能
  • 2017-06-28汇编源代码之获得操作系统版本
  • 2017-06-28扩展Int 13H调用规范
  • 2017-06-28汇编源码系列之alarm

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 汇编结构类型转换快速操作
    • 汇编教程:获得结果
    • 汇编语言的基本知识
    • 中断传送方式
    • 如何分析未文档化的数据结构
    • MASM的反反汇编技术
    • 汇编数据转换操作小技巧
    • 一个汇编hello world程序
    • 汇编源代码之简单密码输入
    • 对“如何在运行时得到某处的实际地址”的补充

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有