<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[ご鋶謃‰ 's Blog-]]></title>
  <subtitle type="html"><![CDATA[我自横刀向天笑,谁敢拔剑对我狂！]]></subtitle>
  <id>http://www.7i00.com/blog/</id>
  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.7i00.com/blog/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2008-11-07T19:14:33+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[OD常用断点解析]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-11-07T19:14:33+08:00</updated>
	  <published>2008-11-07T19:14:33+08:00</published>
		  <summary type="html"><![CDATA[破解常用断点设置<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 软件破解的主要工具是OllyD，如何在OllyD中设置好断点对于破解的成功是非常重要的，<br/>面列举了 一些常用的断点设置，这些断点同样适合于softice/Trw2000，两者基本上是兼容的。<br/><br/><br/>bpx hmemcpy 破解万能断点，拦截内存拷贝动作 (注意：Win9x专用断点，XP无效)<br/>bpx Lockmytask 当你用其它断点都无效时可以试一下，这个断点拦截按键的动作 <br/><br/>实在找不到断点可以试下面的方法： <br/>bmsg handle wm_gettext 拦截注册码（handle为对应窗口的句柄） <br/>bmsg handle wm_command 拦截OK按钮（handle为对应窗口的句柄）<br/><br/><br/>拦截窗口：<br/><br/><br/>bpx Cr&#101;ateWindow 创建窗口 <br/>bpx Cr&#101;ateWindowEx(A/W) 创建窗口 <br/>bpx ShowWindow 显示窗口 <br/>bpx Up&#100;ateWindow 更新窗口 <br/>bpx GetWindowText(A/W) 获取窗口文本 <br/><br/><br/>拦截消息框： <br/><br/><br/>bpx MessageBox(A) 创建消息框 <br/>bpx MessageBoxExA 创建消息框 <br/>bpx MessageBoxIndirect(A) 创建定制消息框 <br/><br/><br/>拦截警告声： <br/><br/><br/>bpx MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声) <br/><br/><br/>拦截对话框：<br/><br/><br/>bpx DialogBox 创建模态对话框 <br/>bpx DialogBoxParam(A/W) 创建模态对话框 <br/>bpx DialogBoxIndirect 创建模态对话框 <br/>bpx DialogBoxIndirectParam(A/W) 创建模态对话框 <br/>bpx Cr&#101;ateDialog 创建非模态对话框 <br/>bpx Cr&#101;ateDialogParam(A) 创建非模态对话框 <br/>bpx Cr&#101;ateDialogIndirect 创建非模态对话框 <br/>bpx Cr&#101;ateDialogIndirectParam(A/W) 创建非模态对话框 <br/>bpx GetDlgItemText(A/W) 获取对话框文本 <br/>bpx GetDlgItemInt 获取对话框整数值<br/><br/><br/>拦截剪贴板：<br/><br/><br/>bpx GetClipboardData 获取剪贴板数据 <br/><br/><br/>拦截注册表： <br/><br/><br/>bpx RegOpenKey(A) 打开子健 ( 例：bpx RegOpenKey(A) if *(esp+8)==&#39;****&#39; ) <br/>bpx RegOpenKeyEx 打开子健 ( 例：bpx RegOpenKeyEx if *(esp+8)==&#39;****&#39; ) <br/>bpx RegQueryValue(A) 查找子健 ( 例：bpx RegQueryValue(A) if *(esp+8)==&#39;****&#39; ) <br/>bpx RegQueryValueEx 查找子健 ( 例：bpx RegQueryValueEx if *(esp+8)==&#39;****&#39; ) <br/>bpx RegSetValue(A) 设置子健 ( 例：bpx RegSetValue(A) if *(esp+8)==&#39;****&#39; ) <br/>bpx RegSetValueEx(A) 设置子健 ( 例：bpx RegSetValueEx(A) if *(esp+8)==&#39;****&#39; )<br/>注意:“****”为指定子键名的前4个字符，如子键为“Regcode”，则“****”= “Regc” <br/><br/>==================<br/><br/>功能限制拦截断点： <br/><br/><br/>bpx EnableMenuItem 禁止或允许菜单项 <br/>bpx EnableWindow 禁止或允许窗口 <br/>bmsg hMenu wm_command 拦截菜单按键事件，其中hMenu为菜单句柄 <br/>bpx K32Thk1632Prolog 配合bmsg hMenu wm_command使用，可以通过这个断点进入菜单处理程序<br/><br/>应用示例： <br/><br/><br/>CALL [KERNEL32!K32Thk1632Prolog] <br/>CALL [......] &lt;-- 由此跟踪进入菜单处理程序 <br/>CALL [KERNEL32!K32Thk1632Epilog] <br/><br/>======================<br/><br/>拦截时间： <br/><br/><br/>bpx GetLocalTime 获取本地时间 <br/>bpx GetSystemTime 获取系统时间 <br/>bpx GetFileTime 获取文件时间 <br/>bpx GetTickCount 获得自系统成功启动以来所经历的毫秒数 <br/>bpx GetCurrentTime 获取当前时间（16位） <br/>bpx SetTimer 创建定时器 <br/>bpx TimerProc 定时器超时回调函数 <br/><br/><br/>拦截文件： <br/><br/><br/>bpx Cr&#101;ateFileA 创建或打开文件 (32位) <br/>bpx OpenFile 打开文件 (32位) <br/>bpx ReadFile 读文件 (32位) <br/>bpx WriteFile 写文件 (32位) <br/>bpx _lcreat 创建或打开文件 (16位) <br/>bpx _lopen 打开文件 (16位) <br/>bpx _lread 读文件 (16位) <br/>bpx _lwrite 写文件 (16位) <br/>bpx _hread 读文件 (16位) <br/>bpx _hwrite 写文件 (16位) <br/><br/><br/>拦截驱动器： <br/><br/><br/>bpx GetDrivetype(A/W) 获取磁盘驱动器类型 <br/>bpx GetLogicalDrives 获取逻辑驱动器符号 <br/>bpx GetLogicalDriveStringsA(W) 获取当前所有逻辑驱动器的根驱动器路径 <br/><br/><br/>拦截狗： <br/><br/><br/>bpio -h 378(或278、3BC) R 378、278、3BC是并行打印端口 <br/>bpio -h 3F8(或2F8、3E8、2E8) R 3F8、2F8、3E8、2E8是串行端口 <br/><br/><br/>+++++++++++VB程序专用断点：++++++++++ <br/><br/><br/>bp__vbaFreeStr&nbsp;&nbsp; 偶发现了VB杀手断点.不管是重起验证.还是有错误提示的VB..下这个断点通杀<br/><br/>bpx msvbvm50!__vbaStrCmp 比较字符串是否相等 <br/>bpx msvbvm50!__vbaStrComp 比较字符串是否相等 <br/>bpx msvbvm50!__vbaVarTstNe 比较变量是否不相等 <br/>bpx msvbvm50!__vbaVarTstEq 比较变量是否相等 <br/>bpx msvbvm50!__vbaStrCopy 复制字符串 <br/>bpx msvbvm50!__vbaStrMove 移动字符串 <br/>bpx MultiByteToWideChar ANSI字符串转换成Unicode字符串 <br/>bpx WideCharToMultiByte Unicode字符串转换成ANSI字符串<br/>上面的断点对应VB5程序，如果是VB6程序则将msvbvm50改成msvbvm60即可 <br/><br/>VB程序的破解<br/><br/>VB程序使很多朋友感到头痛，主要是VB程序反编译时产生大量的垃圾代码，而且也找不到有<br/>用的信息，在动态调试过程中，垃圾代码太多，往往迷失于冗余的代码中，找不到方向。　　　记住VB常用的<br/><br/>一些函数：<br/>MultiByteToWideChar 将ANSI字符串转换成UNICODE字符<br/>WideCHatToMultiByte　　将UNICODE字符转换成ANSI字符<br/>rtcT8ValFromBstr　　　 把字符转换成浮点数　　<br/>vbaStrCmp　　　　　　　 比较字符串（常用断点）<br/>vbaStrComp　　　　　　 字符串比较（常用断点）<br/>vbaStrCopy　　　　　　 复制字符串<br/>StrConv　　　　　　　　转换字符串<br/>vbaStrMove　　　　　　 移动字符串<br/>__vbaVarCat 连接字符串<br/>rtcMidCharVar 在字符串中取字符或者字符串!<br/>__vbaLenBstr 取字符串的长度<br/>vbaVarTstNe　　　　　　变量比较<br/>vbaVarTstEq　　　　　　变量比较<br/>rtcMsgBox　　　　　　　显示对话框<br/>VarBstrCmp　　　　　　 比较字符串<br/>VarCyCmp　　　　　　　 比较字符串<br/>　　 <br/>用OD载入脱壳后的程序，在命令行输入：bpx hmemcpy，然后回车，会弹出程序运行调用的所有的函数，在每个<br/><br/>函数上设置好断点！说明：我破VB程序喜欢用这个断点设置方法，通过一步步跟踪，基本可以把握程序保护的<br/><br/>思路，所以我破VB程序基本用这个断点，当然你可以用其它的断点，只要能找到关键，任何断点都是用意义的<br/><br/>。<br/><br/>关于VB的程序，注册没有提示的二个办法：<br/>第一（提示错误）：用GetVBRes来替换里面的提示串，一般是以‘111111’，‘222222’之类的替换<br/>因为：VB，用的字来存放提示还有加了点东东，我们用的工具一般是字节分析。换成‘22222’之类的就是字节<br/><br/>了，用静态分析，就有你该的串了。GetVBRes（网上很多，自己下吧）<br/><br/>第二（没有提示）：用vbde这个工具（不知道，有没有用过DEDE，是一样思路），主要是找出破解的按钮窗口<br/><br/>的位置，来进行跟踪。 <br/><br/>先给出修改能正确反编译VB程序的W32DASM的地址： <br/>====================== <br/>offsets 0x16B6C-0x16B6D <br/><br/>修改机器码为： 98 F4 <br/>====================== <br/><br/>VB程序的跟踪断点： <br/><br/>============ <br/>MultiByteToWideChar, <br/>rtcR8ValFromBstr, <br/>WideCharToMultiByte, <br/>__vbaStrCmp <br/>__vbaStrComp <br/>__vbaStrCopy <br/>__vbaStrMove <br/>__vbaVarTstNe <br/>rtcBeep <br/>rtcGetPresentDate (时间API) <br/>rtcMsgBox <br/>========= <br/><br/>时间限制断点： <br/><br/>================ <br/>CompareFileTime <br/>GetLocalTime <br/>GetSystemTime <br/>GetTimeZoneInformation <br/>msvcrt.diffTime() <br/>msvcrt.Time() <br/>================ <br/><br/>VB断点查找方法 <br/><br/>1，VB6.0编写，OD载入程序调出注册窗口，alt+e调出可执行模块窗口找到X:\WINDOWS\system32\MSVBVM60.DLL <br/>双击，在ctrl+n调出窗口找到，名称XXXXXXE区段=ENGINE 导出__vbaVarMove双击来到下面地址(可以直接在命<br/><br/>令行 bp __vbaVarMove) <br/>回到程序注册窗口点注册被拦断在刚才下断的地址，断后在ctrl+F9，F8回 <br/>2，OD载入程序，命令行下断点。 <br/>bp rtcMsgBox <br/>堆栈友好提示 <br/>确定注册失败按钮返回。接着向上找出点注册按钮执行的代码第一句，可以吗？当然行，根据我们知道程序员<br/><br/>写一个事件执行的代码是如这种， <br/>各种语言都差不多。 <br/>3，OD载入程序，命令行下断点。 <br/>bp rtcMsgBox <br/>任意填入伪注册码 9999999999999999999 <br/>确定后中断 <br/>堆栈友好提示 <br/>确定注册失败按钮返回。 <br/>W32Dasm反汇编程序，Shiht+F12 <br/>4，VB中的messagebox是一个消息框,汇编中用rtcMsgBox下断点.用olldbg载入程序,Alt+e,在可执行文件模块中<br/><br/>找到Msvbvm60.dll,双击它, <br/>在代码窗口点右键-搜索-当前模块中的名称中的rtcMsgBox函数,双击它,在6A362F29 55 PUSH EBP这一句双击下<br/><br/>断点,关掉多余的窗口,只留下 <br/>cpu调试主窗口,F9运行程序,点?号按钮,随便输入987654321后,回车后立即中断,然后Ctrt+f9执行到返回地址,<br/><br/>因为这是msvbvm60的领空, <br/>我们要回到程序领空.秘密记事本弹出message错误提示信息,点确定,向上看 ,再按F8就回到 <br/>5，为Microsoft Visual Basic 6.0。先用SmartCheck找到程序比较注册码点， <br/>6，用vb常用比较断点 <br/>vbastrcmp <br/>vbastrcomp <br/>vbavartsteq <br/>在od中设断点找注册码 <br/>7，用Od载入程序，运行，填入上面的注册码和顺序号。在Od中下断点,Alt+E,双击Msvbvm60运行库，右键－搜<br/><br/>索当前模块中的名称，找到Vbastrcmp，双击下断点。 <br/><br/><br/>--------------------------<br/><br/><br/>注意：VB程序仍然可以使用普通API函数，只要函数“最终”CALL了这个函数 <br/>上面的断点对应VB6程序，如果是VB5程序则将msvbvm60改成msvbvm50即可<br/><br/><br/>★注意：上面所列函数末尾有带“A”的，有带“W”的，有不带后缀的；一般说来，如果函数同时可以有后缀<br/><br/>也可以没有后缀（形如：MessageBox(A/W)）， 则不带后缀的表示16位的函数（MessageBox），带后缀的<br/><br/>（MessageBoxA、MessageBoxW）表示32位的函数；通常优先使用带后缀（A或W）的断点，带A后缀的一般用于<br/><br/>WIN9X系统， 而带W后缀的一般用于NT系统；如果函数没有任何后缀，则表示这是个通用的跨平台的API函数。 <br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=89" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=89</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[破解基础]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-05-15T18:22:34+08:00</updated>
	  <published>2008-05-15T18:22:34+08:00</published>
		  <summary type="html"><![CDATA[以下的东西对破解编程是很有帮助的<br/>所以在这条路上的人<br/>可以反复的记忆<br/>这些都不知道··那就无论破解了<br/><br/>机械码,又称机器码.<br/>ultraedit打开,编辑exe文件时你会看到<br/>许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码<br/>就是机器码.<br/>修改程序时必须通过修改机器码来修改exe文件.<br/><br/>二.需要熟练掌握的全部汇编知识(只有这么多)<br/>不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了<br/>cmp a,b 比较a与b<br/>mov a,b 把b的值送给a<br/>ret 返回主程序<br/>nop 无作用,英文“no operation”的简写，意思是“do nothing”(机器码90)***机器码的含义参看上面<br/>(解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)<br/>call 调用子程序<br/>je 或jz 若相等则跳(机器码74 或0F84)<br/>jne或jnz 若不相等则跳(机器码75或0F85)<br/>jmp 无条件跳(机器码EB)<br/>jb 若小于则跳<br/>ja 若大于则跳<br/>jg 若大于则跳<br/>jge 若大于等于则跳<br/>jl 若小于则跳<br/>jle 若小于等于则跳<br/>pop 出栈<br/>push 压栈<br/><br/>三.常见修改(机器码)<br/>74=&gt;75 74=&gt;90 74=&gt;EB<br/>75=&gt;74 75=&gt;90 75=&gt;EB<br/><br/>jnz-&gt;nop<br/>75-&gt;90(相应的机器码修改)<br/><br/>jnz -&gt; jmp<br/>75 -&gt; EB(相应的机器码修改)<br/><br/>jnz -&gt; jz<br/>75-&gt;74 (正常) 0F 85 -&gt; 0F 84(特殊情况下,有时,相应的机器码修改)<br/><br/>四.两种不同情况的不同修改方法<br/>1.修改为jmp<br/>je(jne,jz,jnz) =&gt;jmp相应的机器码EB （出错信息向上找到的第一个跳转）jmp的作用是绝对跳，无条件跳，从而跳过下面的出错信息<br/><br/>xxxxxxxxxxxx 出错信息，例如：注册码不对，sorry,未注册版不能...，&#34;Function Not Avaible in Demo&#34; 或 &#34;Command Not Avaible&#34; 或 &#34;Can’t save in Shareware/Demo&#34;等 （我们希望把它跳过，不让它出现）<br/>。。。<br/>。。。<br/>xxxxxxxxxxxx 正确路线所在<br/><br/>2.修改为nop<br/>je(jne,jz,jnz) =&gt;nop相应的机器码90 （正确信息向上找到的第一个跳转） nop的作用是抹掉这个跳转，使这个跳转无效，失去作用，从而使程序顺利来到紧跟其后的正确信息处<br/><br/>xxxxxxxxxxxx 正确信息，例如：注册成功，谢谢您的支持等（我们希望它不被跳过，让它出现，程序一定要顺利来到这里）<br/>。。。<br/>。。。<br/>xxxxxxxxxxxx 出错信息（我们希望不要跳到这里，不让它出现）它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.<br/><br/><br/>一、数据传输指令<br/>───────────────────────────────────────<br/>它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.<br/>1. 通用数据传送指令.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV 传送字或字节.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVSX&nbsp;&nbsp; 先符号扩展,再传送.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVZX&nbsp;&nbsp; 先零扩展,再传送.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 把字压入堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP 把字弹出堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSHAD&nbsp;&nbsp; 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSWAP&nbsp;&nbsp; 交换32位寄存器里字节的顺序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XADD 先交换再累加.( 结果在第一个操作数里 )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XLAT 字节查表转换.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0-FFH); 返回 AL 为查表结果. ( [BX+AL]-&gt;AL )<br/>2. 输入输出端口传送指令.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其范围是 0-65535.<br/>3. 目的地址传送指令.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEA 装入有效地址.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LEA DX,string&nbsp;&nbsp; ;把偏移地址存到DX.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDS 传送目标指针,把指针内容装入DS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LDS SI,string&nbsp;&nbsp; ;把段地址:偏移地址存到DS:SI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LES 传送目标指针,把指针内容装入ES.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LES DI,string&nbsp;&nbsp; ;把段地址:偏移地址存到ES:DI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LFS 传送目标指针,把指针内容装入FS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LFS DI,string&nbsp;&nbsp; ;把段地址:偏移地址存到FS:DI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LGS 传送目标指针,把指针内容装入GS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LGS DI,string&nbsp;&nbsp; ;把段地址:偏移地址存到GS:DI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LSS 传送目标指针,把指针内容装入SS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例: LSS DI,string&nbsp;&nbsp; ;把段地址:偏移地址存到SS:DI.<br/>4. 标志传送指令.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LAHF 标志寄存器传送,把标志装入AH.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAHF 标志寄存器传送,把AH内容装入标志寄存器.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSHF&nbsp;&nbsp; 标志入栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POPF 标志出栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSHD&nbsp;&nbsp; 32位标志入栈.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POPD 32位标志出栈.<br/><br/>二、算术运算指令<br/>───────────────────────────────────────<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADD 加法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADC 带进位加法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INC 加 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAA 加法的ASCII码调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAA 加法的十进制调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB 减法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SBB 带借位减法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC 减 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NEC 求反(以 0 减之).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAS 减法的ASCII码调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAS 减法的十进制调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MUL 无符号乘法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMUL 整数乘法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAM 乘法的ASCII码调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIV 无符号除法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDIV 整数除法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上两条,结果回送:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 商回送AL,余数回送AH, (字节运算);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;&nbsp; 商回送AX,余数回送DX, (字运算).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAD 除法的ASCII码调整.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)<br/><br/>三、逻辑运算指令<br/>───────────────────────────────────────<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND 与运算.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&#114;&nbsp;&nbsp;&nbsp;&nbsp; 或运算.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XOR 异或运算.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT 取反.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHL 逻辑左移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAL 算术左移.(=SHL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHR 逻辑右移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAR 算术右移.(=SHR)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROL 循环左移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROR 循环右移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RCL 通过进位的循环左移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RCR 通过进位的循环右移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上八种移位指令,其移位次数可达255次.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 移位一次时, 可直接用操作码.&nbsp;&nbsp; 如 SHL AX,1.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 移位&gt;1次时, 则由寄存器CL给出移位次数.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如&nbsp;&nbsp; MOV CL,04<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHL AX,CL<br/><br/>四、串指令<br/>───────────────────────────────────────<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DS:SI&nbsp;&nbsp; 源串段寄存器&nbsp;&nbsp; :源串变址.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ES:DI&nbsp;&nbsp; 目标串段寄存器:目标串变址.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CX&nbsp;&nbsp;&nbsp;&nbsp;重复次数计数器.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AL/AX&nbsp;&nbsp; 扫描值.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D标志&nbsp;&nbsp; 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Z标志&nbsp;&nbsp; 用来控制扫描或比较操作的结束.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVS 串传送.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( MOVSB&nbsp;&nbsp; 传送字符. MOVSW&nbsp;&nbsp; 传送字. MOVSD&nbsp;&nbsp; 传送双字. )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMPS 串比较.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( CMPSB&nbsp;&nbsp; 比较字符. CMPSW&nbsp;&nbsp; 比较字. )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCAS 串扫描.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把AL或AX的内容与目标串作比较,比较结果反映在标志位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LODS 装入串.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把源串中的元素(字或字节)逐一装入AL或AX中.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( LODSB&nbsp;&nbsp; 传送字符. LODSW&nbsp;&nbsp; 传送字. LODSD&nbsp;&nbsp; 传送双字. )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STOS 保存串.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是LODS的逆过程.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当CX/ECX&lt;&gt;0时重复.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPE/REPZ&nbsp;&nbsp;&nbsp;&nbsp;当ZF=1或比较结果相等,且CX/ECX&lt;&gt;0时重复.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX&lt;&gt;0时重复.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当CF=1且CX/ECX&lt;&gt;0时重复.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPNC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当CF=0且CX/ECX&lt;&gt;0时重复.<br/><br/>五、程序转移指令<br/>───────────────────────────────────────<br/>1&gt; 无条件转移指令 (长转移)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP 无条件转移指令<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL 过程调用<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET/RETF过程返回.<br/>2&gt; 条件转移指令 (短转移,-128到+127的距离内)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( 当且仅当(SF XOR OF)=1时,OP1&lt;OP2 )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JA/JNBE 不小于或不等于时转移.(意思就是大于则就跳）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAE/JNB 大于或等于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JB/JNAE 小于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JBE/JNA 小于或等于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上四条,测试无符号整数运算的结果(标志C和Z).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JG/JNLE 大于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JGE/JNL 大于或等于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JL/JNGE 小于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JLE/JNG 小于或等于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上四条,测试带符号整数运算的结果(标志S,O和Z).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JE/JZ&nbsp;&nbsp; 等于转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNE/JNZ 不等于时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JC&nbsp;&nbsp;&nbsp;&nbsp;有进位时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNC 无进位时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNO 不溢出时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNP/JPO 奇偶性为奇数时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNS 符号位为 &#34;0&#34; 时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JO&nbsp;&nbsp;&nbsp;&nbsp;溢出转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JP/JPE&nbsp;&nbsp; 奇偶性为偶数时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JS&nbsp;&nbsp;&nbsp;&nbsp;符号位为 &#34;1&#34; 时转移.<br/>3&gt; 循环控制指令(短转移)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX不为零时循环.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOOPE/LOOPZ CX不为零且标志Z=1时循环.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOOPNE/LOOPNZ&nbsp;&nbsp; CX不为零且标志Z=0时循环.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JCXZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX为零时转移.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JECXZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ECX为零时转移.<br/>4&gt; 中断指令<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INT 中断指令<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTO 溢出中断<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRET 中断返回<br/>5&gt; 处理器控制指令<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HLT 处理器暂停, 直到出现中断或复位信号才继续.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESC 转换到外处理器.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOCK 封锁总线.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP 空操作.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STC 置进位标志位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLC 清进位标志位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMC 进位标志取反.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STD 置方向标志位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLD 清方向标志位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STI 置中断允许位.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLI 清中断允许位.<br/><br/>六、伪指令<br/>───────────────────────────────────────<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DW&nbsp;&nbsp;&nbsp;&nbsp;定义字(2字节).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PROC 定义过程.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDP 过程结束.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SEGMENT 定义段.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ASSUME&nbsp;&nbsp; 建立段寄存器寻址.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDS 段结束.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END 程序结束.]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=88" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=88</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[入侵一台服务器发现别人上传的一只小马]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=9" label="网页脚本" /> 
	  <updated>2008-04-02T09:57:14+08:00</updated>
	  <published>2008-04-02T09:57:14+08:00</published>
		  <summary type="html"><![CDATA[这只小马写的也不错。传上来供大家使用，不要干坏事就OK了<br/><img src="http://www.7i00.com/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.7i00.com/blog/attachments/month_0804/a20084295712.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=87" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=87</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[发一只非常不错的ASP小马]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=9" label="网页脚本" /> 
	  <updated>2008-04-02T09:54:00+08:00</updated>
	  <published>2008-04-02T09:54:00+08:00</published>
		  <summary type="html"><![CDATA[<img src="http://www.7i00.com/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.7i00.com/blog/attachments/month_0804/920084295517.rar" target="_blank">点击下载此文件</a><br/><br/>呼呼~~~不要干坏事哦<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=86" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=86</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[脱Aspr2.XX SKE脱壳脚本]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=7" label="工具收集" /> 
	  <updated>2008-03-30T14:37:23+08:00</updated>
	  <published>2008-03-30T14:37:23+08:00</published>
		  <summary type="html"><![CDATA[偷段自已解决。只提供脱壳脚本呵。<img src="http://www.7i00.com/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.7i00.com/blog/attachments/month_0803/j2008330143721.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=85" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=85</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[搞了一天的穿山甲也没脱成功先存个Armadillo脚本集吧]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=7" label="工具收集" /> 
	  <updated>2008-03-20T18:40:39+08:00</updated>
	  <published>2008-03-20T18:40:39+08:00</published>
		  <summary type="html"><![CDATA[非常郁闷今天，脱了一下午穿山甲愣是没搞定，哎。<br/>找了一大堆脚本也别浪费掉，发上来收藏之。。。<br/>呼呼。。。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=84" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=84</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[重启验证软件破解过程记录]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-03-20T18:14:00+08:00</updated>
	  <published>2008-03-20T18:14:00+08:00</published>
		  <summary type="html"><![CDATA[<br/>1、运行软件输入注册信息，点注册后。一般软件会提示你重新运行软件，以便验证注册信息的正确性（如FlashGet）； <br/>也有的只在你输入正确的注册信息时才有这个提示，不然会告诉你输入的注册信息有问题（此软件就属这类） <br/><br/>2、要破解这种软件，首先是判断一下她把注册信息存在哪里（因为她重启验证时要用）。大致有两种存放方式，第一种是放在注册表里；第二种是放在文件里。（我们可以在输入注册信息，点击确定前，利用监视类软件来查看一下，如FileMon和RegShot等） <br/><br/>3、知道她的注册信息的存放地点后，就可以选则相应的API断点，来调试了 <br/><br/>访问注册表类常用API <br/>bp RegOpenKeyA&nbsp;&nbsp;打开一个现有的注册表项&nbsp;&nbsp;**** <br/>bp RegOpenKeyExA&nbsp;&nbsp;打开一个现有的注册表项 **** <br/>bp RegCr&#101;ateKeyA 在指定的项下创建或打开一个项 <br/>bp RegCr&#101;ateKeyExA 在指定项下创建新项的更复杂的方式 <br/>bp RegDel&#101;teKeyA 删除现有项下方一个指定的子项 <br/>bp RegDel&#101;teValueA 删除指定项下方的一个值 <br/>bp RegQueryValueA 获取一个项的设置值 <br/>bp RegQueryValueExA 获取一个项的设置值 <br/>bp RegSetValueA 设置指定项或子项的值&nbsp;&nbsp; <br/>bp RegSetValueExA 设置指定项的值 <br/>bp RegCloseKey 关闭系统注册表中的一个项（或键） <br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=83" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=83</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[破解常用断点]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-03-20T18:12:29+08:00</updated>
	  <published>2008-03-20T18:12:29+08:00</published>
		  <summary type="html"><![CDATA[ 密码常用中断<br/>Hmemcpy (win9x专用)<br/>GetDlgItemTextA <br/>GetDlgItemInt<br/>vb:<br/>getvolumeinformationa 　<br/>vbastrcomp (trw)<br/>Bpx __vbaStrComp (记得是两个 &#39;;_&#39;;)<br/>MSVBVM60!_vbastrcomp|sofice<br/>MSVBVM50!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |　<br/>VBAI4STR　<br/>Ctrl+D <br/>bpx msvbvm60!__vbastrcomp do &#34;d *(esp+0c)&#34;(softice) <br/>按几次F5出册码出来了。 <br/>bpx regqueryvalueexa do “d esp－&gt;8”(trw)　<br/>vbaVarTstEq 判断是否注册的函数<br/>(0042932F 66898580FEFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov word ptr [ebp+FFFFFE80], ax<br/>改为0042932F 66898580FEFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov word ptr [ebp+FFFFFE80], bx)<br/>时间常用中断<br/>GetSystemTime<br/>GetLocalTime<br/>GetTickCount<br/>vb:<br/>rtcGetPresentDate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得当前日期　<br/>杀窗常用中断<br/>Lockmytask (win9x专用)<br/>DestroyWindow<br/>mouse_event (鼠标中断)<br/>postquitmessage (Cracking足彩xp,很有用^_^)<br/>vb:<br/>_rtcMsgBox　<br/>ini文件内容常用中断<br/>GetPrivateProfileStringA<br/>GetPrivateProfileProfileInt　<br/>key文件:<br/>getprivateprofileint<br/>ReadFile<br/>Cr&#101;ateFileA　<br/>注册表常用中断<br/>RegQueryvalueA<br/>RegQueryvalueExA　<br/>狗加密中断<br/>BPIO -h 278 R<br/>BPIO -h 378 R 　<br/>其它常用函数断点<br/>Cr&#101;ateFileA (读狗驱动程序), <br/>DeviceIOControl, <br/>FreeEnvironmentStringsA (对付HASP非常有效). <br/>Prestochangosel&#101;ctor (16-bit HASP&#39;;s), &#39;;7242&#39;; 查找字符串 (对付圣天诺).具体含义参考下面的范例。　<br/>光盘破解中断<br/>16:<br/>getvolumeinformation<br/>getdrivetype<br/>int 2fh (dos)<br/>32:<br/>GetDriveTypeA&nbsp;&nbsp;<br/>GetFullPathNameA<br/>GetWindowsDirectoryA　<br/>读磁盘中断<br/>GETLASTERROR 返回扩充出错代码 　<br/>限制中断<br/>EnableMenuItem 允许、禁止或变灰指定的菜单条目 <br/>EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目（禁止时菜单变灰） 　<br/>不知道软盘中断是什么了？还有其它特殊中断，不知道其他朋友可否说一下了？<br/>如:Lockmytask and mouse_event，这些就不是api32函数？<br/>win9x 与 win2k进行破解，以上中断有部分已经不能用了？<br/>不知道在win2k上，以上常用中断函数是什么了？<br/>也就是问密码、时间、窗口、ini、key、注册表、加密狗、光盘、软盘、限制等！<br/>了解常用的中断，对破解分析可以做到事半功倍！<br/>请大家说一下！还有如何破解了某个软件时，一重启就打回原形？<br/>不知道下什么中断了？可以分为三种情况：<br/>1.比较可能在注册表中<br/>2.比较在特殊文件(*.key *.ini *.dat等)<br/>3.比较在程序中，没有任何错误提示或者反译也找不到明显字符(这个就是我想问的)　<br/>还有一个是最难的，就是去掉水印！<br/>也可以三种情况：<br/>A.水印是位图文件(bitblt,creatBITMAP等位图函数)<br/>B.水印是明显字符(反译分析)<br/>C.水印不是明显字符(如：This a demo!它只是显示在另一个制作文件上,可是*.htm *.exe等)<br/>C.才是最难搞，也是很多人想知道的！包括我在内。不知道高手们有何提示了？　<br/>广告条：<br/>可以分两种情况:<br/>A.从创建窗口进手,可以用到movewindow或者其它窗口函数!<br/>B.从位图进手,也可以用到bitblt或者其它位图函数!<br/>最后可以借助一些现有工具(如:api27,vwindset,freespy之类的工具)　<br/>葡萄虽无树，藤生棚中秧。<br/>人处凡尘中，岂不惹尘埃?　<br/>小球[CCG] <br/>那要看是在哪作的标记，通常是在注册表中留下信息！ <br/>在softice中就要用bpx regqueryvalueexa do &#34;d esp-&gt;8&#34;来中断看看，<br/>在trw中要用bpx regqueryvalueexa do &#34;d*(esp+8)&#34;来中断看看。<br/>还有的是在本目录下留下注册信息，常见的有.dat .ini .dll等等，<br/>我是用bpx readfile来中断的，还有的是在windows目录下留下注册信息。<br/>你可以借助专用的工具帮助你查看，入filemon等！ 　<br/>vb:　<br/>1、__vbaVarTstNe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//比较两个变量是否不相等 <br/>2、rtcR8ValFromBstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把字符串转换成浮点数 <br/>3、rtcMsgBox&nbsp;&nbsp;显示一信息对话框&nbsp;&nbsp;<br/>4、rtcBeep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//让扬声器叫唤 <br/>5、rtcGetPresentDate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得当前日期 　<br/>针对字串: <br/>__vbaStrComp <br/>__vbaStrCmp <br/>__vbaStrCompVar <br/>__vbaStrLike <br/>__vbaStrTextComp <br/>__vbaStrTextLike <br/>针对变量: <br/>__vbaVarCompEq <br/>__vbaVarCompLe <br/>__vbaVarCompLt <br/>__vbaVarCompGe <br/>__vbaVarCompGt <br/>__vbaVarCompNe 　<br/>VB的指针:<br/>THROW 　<br/>VB DLL还调用了oleauto32.dll中的部分函数。oleauto32.dll是个通用的proxy/stub DLL，其每个函数的原型在中定义，并在MSDN中有详细描述。这也有助于理解VB DLL中的函数的作用。 　<br/>举例： 　<br/>LEA EAX, [EBP-58] <br/>PUSH EAX <br/>CALL [MSVBVM60!__vbaI4Var] 　<br/>执行call之前敲dd eax+8，得到的值为3； <br/>执行完call之后，eax = 3 <br/>从而可知__vbaI4Var的作用是将一个VARIANT转换为I4（即一个长整数）。　<br/>__vbaVarTstNe似乎是用来进行自校验的，正常情况下返回值为0。 <br/>已知适用的软件有：网络三国智能机器人、音乐贺卡厂。当这两个软件被脱壳后都回出错，网络三国智能机器人会产生非法*作，而音乐贺卡厂会告诉你是非法拷贝，通过修改__vbaVarTstNe的返回值都可让它们正常运行。 <br/>所以当您遇到一个VB软件，脱壳后无法正常运行，而又找不出其它问题时，可试试拦截这个函数，说不定会有用哦。8-）　<br/>API不太知道,也许可以通过BIOS在98平台上读写扇区,不过在2000/NT下可以通过内黑ATAPI,HAL写扇区 <br/>machoman[CCG]<br/>bpx WRITE_PORT_BUFFER_USHORT <br/>NT/2000下这个断点,当edx=1f0h,时,可以看见EDI地址内数据为扇区位置数据,必须先 在winice.dat 中装入hal.sys 详细内容看ATAPI手册 　<br/>补充篇:<br/>关于对VB程序和时间限制程序的断点<br/>CrackerABC<br/>先给出修改能正确反编译VB程序的W32DASM的地址： <br/>====================== <br/>offsets 0x16B6C-0x16B6D 　<br/>修改机器码为： 98 F4 <br/>====================== 　<br/>VB程序的跟踪断点： 　<br/>============ <br/>MultiByteToWideChar, <br/>rtcR8ValFromBstr, <br/>WideCharToMultiByte, <br/>__vbaStrCmp <br/>__vbaStrComp <br/>__vbaStrCopy <br/>__vbaStrMove <br/>__vbaVarTstNe <br/>rtcBeep <br/>rtcGetPresentDate (时间API) <br/>rtcMsgBox <br/>========= 　<br/>时间限制断点： 　<br/>================ <br/>CompareFileTime <br/>GetLocalTime <br/>GetSystemTime <br/>GetTimeZoneInformation <br/>msvcrt.diffTime() <br/>msvcrt.Time() <br/>================ 　<br/>一般处理<br/>bpx hmemcpy<br/>bpx MessageBox<br/>bpx MessageBoxExA<br/>bpx MessageBeep<br/>bpx SendMessage　<br/>bpx GetDlgItemText<br/>bpx GetDlgItemInt<br/>bpx GetWindowText<br/>bpx GetWindowWord<br/>bpx GetWindowInt<br/>bpx DialogBoxParamA<br/>bpx Cr&#101;ateWindow<br/>bpx Cr&#101;ateWindowEx<br/>bpx ShowWindow<br/>bpx Up&#100;ateWindow　<br/>bmsg xxxx wm_move<br/>bmsg xxxx wm_gettext<br/>bmsg xxxx wm_command<br/>bmsg xxxx wm_activate&nbsp;&nbsp;　<br/>时间相关 <br/>bpint 21 if ah==2A (DOS)<br/>bpx GetLocalTime<br/>bpx GetFileTime<br/>bpx GetSystemtime&nbsp;&nbsp;　<br/>CD-ROM 或 磁盘相关 <br/>bpint 13 if ah==2 (DOS)<br/>bpint 13 if ah==3 (DOS)<br/>bpint 13 if ah==4 (DOS)<br/>bpx GetFileAttributesA<br/>bpx GetFileSize<br/>bpx GetDriveType<br/>bpx GetLastError<br/>bpx ReadFile<br/>bpio -h (Your CD-ROM Port Address) R&nbsp;&nbsp;　<br/>软件狗相关 <br/>bpio -h 278 R<br/>bpio -h 378 R&nbsp;&nbsp;　<br/>键盘输入相关 <br/>bpint 16 if ah==0 (DOS)<br/>bpint 21 if ah==0xA (DOS)&nbsp;&nbsp;　<br/>文件访问相关 <br/>bpint 21 if ah==3dh (DOS)<br/>bpint 31 if ah==3fh (DOS)<br/>bpint 21 if ah==3dh (DOS)<br/>bpx ReadFile<br/>bpx WriteFile<br/>bpx Cr&#101;ateFile<br/>bpx SetFilePointer<br/>bpx GetSystemDirectory 　<br/>INI 初始化文件相关 <br/>bpx GetPrivateProfileString<br/>bpx GetPrivateProfileInt<br/>bpx WritePrivateProfileString<br/>bpx WritePrivateProfileInt 　<br/>注册表相关 <br/>bpx RegCr&#101;ateKey<br/>bpx RegDel&#101;teKey<br/>bpx RegQueryvalue<br/>bpx RegCloseKey<br/>bpx RegOpenKey 　<br/>注册标志相关 <br/>bpx cs:eip if EAX==0 　<br/>内存标准相关 <br/>bpmb cs:eip rw if 0x30:0x45AA==0 　<br/>显示相关 <br/>bpx 0x30:0x45AA do &#34;d 0x30:0x44BB&#34;<br/>bpx CS:0x66CC do &#34;? EAX&#34; <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=82" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=82</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[破解常用断点大全]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-03-20T18:06:57+08:00</updated>
	  <published>2008-03-20T18:06:57+08:00</published>
		  <summary type="html"><![CDATA[<br/><br/>Borland Delphi 6.0 - 7.0<br/><br/>00509CB0 &gt; $&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EBP<br/>00509CB1&nbsp;&nbsp; .&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV EBP,ESP<br/>00509CB3&nbsp;&nbsp; .&nbsp;&nbsp;83C4 EC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADD ESP,-14<br/>00509CB6&nbsp;&nbsp; .&nbsp;&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EBX<br/>00509CB7&nbsp;&nbsp; .&nbsp;&nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH ESI<br/>00509CB8&nbsp;&nbsp; .&nbsp;&nbsp;57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EDI<br/>00509CB9&nbsp;&nbsp; .&nbsp;&nbsp;33C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XOR EAX,EAX<br/>00509CBB&nbsp;&nbsp; .&nbsp;&nbsp;8945 EC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV DWORD PTR SS:[EBP-14],EAX<br/>00509CBE&nbsp;&nbsp; .&nbsp;&nbsp;B8 20975000&nbsp;&nbsp; MOV EAX,unpack.00509720<br/>00509CC3&nbsp;&nbsp; .&nbsp;&nbsp;E8 84CCEFFF&nbsp;&nbsp; CALL unpack.0040694C<br/><br/><br/>Microsoft Visual C++ 6.0<br/><br/>00496EB8 &gt;/$&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EBP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&nbsp;&nbsp;(初始 cpu 选择)<br/>00496EB9&nbsp;&nbsp;|.&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV EBP,ESP<br/>00496EBB&nbsp;&nbsp;|.&nbsp;&nbsp;6A FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH -1<br/>00496EBD&nbsp;&nbsp;|.&nbsp;&nbsp;68 40375600&nbsp;&nbsp; PUSH Screensh.00563740<br/>00496EC2&nbsp;&nbsp;|.&nbsp;&nbsp;68 8CC74900&nbsp;&nbsp; PUSH Screensh.0049C78C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&nbsp;&nbsp;SE 处理程序安装<br/>00496EC7&nbsp;&nbsp;|.&nbsp;&nbsp;64:A1 0000000&gt;MOV EAX,DWORD PTR FS:[0]<br/>00496ECD&nbsp;&nbsp;|.&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EAX<br/>00496ECE&nbsp;&nbsp;|.&nbsp;&nbsp;64:8925 00000&gt;MOV DWORD PTR FS:[0],ESP<br/>00496ED5&nbsp;&nbsp;|.&nbsp;&nbsp;83EC 58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB ESP,58<br/><br/>Microsoft Visual C++ 6.0 [Overlay] E语言<br/><br/>00403831 &gt;/$&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EBP<br/>00403832&nbsp;&nbsp;|.&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV EBP,ESP<br/>00403834&nbsp;&nbsp;|.&nbsp;&nbsp;6A FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH -1<br/>00403836&nbsp;&nbsp;|.&nbsp;&nbsp;68 F0624000&nbsp;&nbsp; PUSH Nisy521.004062F0<br/>0040383B&nbsp;&nbsp;|.&nbsp;&nbsp;68 A44C4000&nbsp;&nbsp; PUSH Nisy521.00404CA4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;SE 处理程序安装<br/>00403840&nbsp;&nbsp;|.&nbsp;&nbsp;64:A1 0000000&gt;MOV EAX,DWORD PTR FS:[0]<br/>00403846&nbsp;&nbsp;|.&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EAX<br/>00403847&nbsp;&nbsp;|.&nbsp;&nbsp;64:8925 00000&gt;MOV DWORD PTR FS:[0],ESP<br/><br/><br/>Microsoft Visual Basic 5.0 / 6.0<br/><br/><br/>00401FBC &gt;&nbsp;&nbsp;68 D0D44000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push dumped_.0040D4D0<br/>00401FC1&nbsp;&nbsp;&nbsp;&nbsp;E8 EEFFFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call <br/>00401FC6&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add byte ptr ds:[eax],al<br/>00401FC8&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add byte ptr ds:[eax],al<br/>00401FCA&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add byte ptr ds:[eax],al<br/>00401FCC&nbsp;&nbsp;&nbsp;&nbsp;3000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xor byte ptr ds:[eax],al<br/>00401FCE&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add byte ptr ds:[eax],al<br/><br/><br/><br/><br/>BC++<br/><br/>0040163C &gt; $ /EB 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP SHORT BCLOCK.0040164E<br/>0040163E&nbsp;&nbsp;&nbsp;&nbsp; |66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;f&#39;<br/>0040163F&nbsp;&nbsp;&nbsp;&nbsp; |62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;b&#39;<br/>00401640&nbsp;&nbsp;&nbsp;&nbsp; |3A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 3A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;:&#39;<br/>00401641&nbsp;&nbsp;&nbsp;&nbsp; |43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;C&#39;<br/>00401642&nbsp;&nbsp;&nbsp;&nbsp; |2B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 2B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;+&#39;<br/>00401643&nbsp;&nbsp;&nbsp;&nbsp; |2B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 2B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;+&#39;<br/>00401644&nbsp;&nbsp;&nbsp;&nbsp; |48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;H&#39;<br/>00401645&nbsp;&nbsp;&nbsp;&nbsp; |4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;O&#39;<br/>00401646&nbsp;&nbsp;&nbsp;&nbsp; |4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;O&#39;<br/>00401647&nbsp;&nbsp;&nbsp;&nbsp; |4B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB 4B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;CHAR &#39;K&#39;<br/>00401648&nbsp;&nbsp;&nbsp;&nbsp; |90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP<br/>00401649&nbsp;&nbsp;&nbsp;&nbsp; |E9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB E9<br/>0040164A&nbsp;&nbsp; . |98E04E00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DD OFFSET BCLOCK.___CPPdebugHook<br/>0040164E&nbsp;&nbsp; &gt; \A1 8BE04E00&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[4EE08B]<br/>00401653&nbsp;&nbsp; .&nbsp;&nbsp;C1E0 02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHL EAX,2<br/>00401656&nbsp;&nbsp; .&nbsp;&nbsp;A3 8FE04E00&nbsp;&nbsp; MOV DWORD PTR DS:[4EE08F],EAX<br/>0040165B&nbsp;&nbsp; .&nbsp;&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH EDX<br/>0040165C&nbsp;&nbsp; .&nbsp;&nbsp;6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; /pModule = NULL<br/>0040165E&nbsp;&nbsp; .&nbsp;&nbsp;E8 DFBC0E00&nbsp;&nbsp; CALL&nbsp;&nbsp;&nbsp;&nbsp; ; \GetModuleHandleA<br/>00401663&nbsp;&nbsp; .&nbsp;&nbsp;8BD0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV EDX,EAX<br/><br/>Dasm:<br/><br/>00401000 &gt;/$&nbsp;&nbsp;6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; /pModule = NULL<br/>00401002&nbsp;&nbsp;|.&nbsp;&nbsp;E8 C50A0000&nbsp;&nbsp; CALL&nbsp;&nbsp;&nbsp;&nbsp; ; \GetModuleHandleA<br/>00401007&nbsp;&nbsp;|.&nbsp;&nbsp;A3 0C354000&nbsp;&nbsp; MOV DWORD PTR DS:[40350C],EAX<br/>0040100C&nbsp;&nbsp;|.&nbsp;&nbsp;E8 B50A0000&nbsp;&nbsp; CALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; [GetCommandLineA<br/>00401011&nbsp;&nbsp;|.&nbsp;&nbsp;A3 10354000&nbsp;&nbsp; MOV DWORD PTR DS:[403510],EAX<br/>00401016&nbsp;&nbsp;|.&nbsp;&nbsp;6A 0A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; /Arg4 = 0000000A<br/>00401018&nbsp;&nbsp;|.&nbsp;&nbsp;FF35 10354000 PUSH DWORD PTR DS:[403510]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg3 = 00000000<br/>0040101E&nbsp;&nbsp;|.&nbsp;&nbsp;6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg2 = 00000000<br/>00401020&nbsp;&nbsp;|.&nbsp;&nbsp;FF35 0C354000 PUSH DWORD PTR DS:[40350C]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg1 = 00000000 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=81" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=81</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[写给初学者的，Linux密码忘了的处理办法!]]></title>
	  <author>
		 <name>流星</name>
		 <uri>http://www.7i00.com/blog/</uri>
		 <email>DnS09@163.com</email>
	  </author>
	  <category term="" scheme="http://www.7i00.com/blog/default.asp?cateID=6" label="技术文章" /> 
	  <updated>2008-03-20T17:49:47+08:00</updated>
	  <published>2008-03-20T17:49:47+08:00</published>
		  <summary type="html"><![CDATA[liunx操作系统有的朋友很少使用，今天有个网友问我他的liuxn密码忘记了，应该怎么处理。呵。<br/>写在这里做个记录，也供哪位朋友参考。<br/>1. 在进入GRUP界面后,快速按下&#34;e&#34;键,进入GRUP 编辑界面<br/><br/>2. 用下箭头键选中&#34;kernel /vmlinuz-2.4.20-8 ro root=LABEL=/&#34;上(以redhatlinux 9为例),按下&#34;e&#34;键,出现,&#34;grub edit&gt; kernel /vmlinuz-2.4.20-8 ro root=LABEL=/&#34;.<br/><br/>3.在如上示的后面加入: (空格)single,例:,&#34;grub edit&gt; kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ single&#34;.回车<br/><br/>4.按下&#34;b&#34;键引导,进入单用户模式.<br/><br/>5.输入修改密码命令:passwd,修改当前root的密码即可,不用修改其他文件,<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.7i00.com/blog/article.asp?id=80" /> 
	  <id>http://www.7i00.com/blog/default.asp?id=80</id>
  </entry>	
		
</feed>
