当前位置:→ 股海网股软教程 → 正文
  • OllyDBG和谐入门教程 附OllyDBG_1.10汉化版下载

  • 相关简介:声明:本教程来源于网络,不是原创,这是一篇入门教程,希望对能大家了解和谐有一些帮助,希望能有更多的人踏入和谐的大门。   1.初级,修改程序,用ultraedit等工具修改exe文件,称暴力和谐,简称爆破   中级,追出软件的注册码   高级,写出注册机   2.常用和谐工具   (1)侦壳工具:PEiD   (2)动静结合的OllyDbg引领和谐工具的新潮流。   一,现在我们首先来学习下和谐的初步,爆破~   1.侦壳   要和谐一个软件首先要做的就是侦壳,要侦壳就要对壳有一定的了解,众所周

  • 文章来源:股海网作者:股海网发布时间:2014-01-19浏览次数:下载次数:797

声明:本教程来源于网络,不是原创,这是一篇入门教程,希望对能大家了解和谐有一些帮助,希望能有更多的人踏入和谐的大门。
 
  1.初级,修改程序,用ultraedit等工具修改exe文件,称暴力和谐,简称爆破
 
  中级,追出软件的注册码
 
  高级,写出注册机
 
  2.常用和谐工具
 
  (1)侦壳工具:PEiD
 
  (2)动静结合的OllyDbg引领和谐工具的新潮流。
 
  一,现在我们首先来学习下和谐的初步,爆破~
 
  1.侦壳
 
  要和谐一个软件首先要做的就是侦壳,要侦壳就要对壳有一定的了解,众所周知,软件作者用编程语言编写好软件后,是将它编译成扩展名为EXE的可执行文件。编译为EXE的目的有两点:
 
  (1)有一些版权信息需要保护起来,不能让别人随意改动,如作者的姓名、软件名称等;
 
  (2)需要给程序“减肥”,从而方便存储、使用和网上传输。
 
  为了编译,会用到一些软件。它们能将可执行文件压缩和对信息加密(图1),实现上述两个功能,这些软件称为加壳软件。为软件加上的东东就称为“壳”。加壳软件不同于一般的WinZIP、WinRAR等打包类压缩软件。加壳软件是压缩可执行文件的,压缩后的文件可以直接运行。
 
   最常见的加壳软件有3个:ASPACK 、UPX、PEcompact。毕竟它们是主流,据统计,用它们加壳的软件约占市面所有软件的90%!其他不常用的加壳软件有ASPROTECT、PETITE 、NEOLITE、TELOCK等。软件最常见的编程语言是Delphi,Visual Basic(简称VB),Visual C++(简称VC)。了解些编程的知识,会让和谐更加轻车熟路。
 
  下面来说侦壳,现在比较常用侦壳软件就PeiD,他具有华丽的图形界面。外壳整合(添加到鼠标右键)功能令使用更加方便,支持拖放操作。配置时,务请将“扩展到鼠标右键”打上对号。
 
  其使用方法是,鼠标点住XX.exe,按鼠标右键,选"使用PEid扫描"即可;“壳”的信息就显示在底部。
 
   2.和谐工具OD。
 
  关于OD的介绍我把他放到附件里了,这个是看雪论坛的介绍,是比较全面的,至少我觉得比我写的要好,所以大家根据他可以很好的了解OD。
 
  3.爆破实例。
 
  爆破是和谐的初步,所谓爆破,就是指通过修改可执行文件的源文件,来达到相应的目的。你不明白?呵呵,举个例子好了,比如说某共享软件,它比较用户输入的注册码,如果用户输入的,跟它通过用户名(或其它)算出来的注册码相等的话(也就是说用户输入的注册码正确了),那么它就会跳到注册成功的地方去,否则就跳到出错的地方去。
 
  明白过来了吧,我们只要找到这个跳转指令,把它修改为我们需要的"造型",这样,我们是不是就可以为所欲为了?
 
  一,和谐时常用的汇编指令如下,汇编较弱者可先强行背住,以后就可慢慢理解了。
 
  cmp a,b //比较a与b
 
  mov a,b //把b的值送给a,使a=b
 
  ret //返回主程序
 
  nop //无作用,英文"no operation"的简写,意思是"do nothing"(机器码90) (解释:ultraedit打开编辑exe文件时看到90,等同于汇编语句nop)
 
  call //调用子程序,子程序以ret结尾
 
  je 或jz //若相等则跳(机器码74 或0F84)
 
  jne或jnz //若不相等则跳(机器码75或0F85)
 
  jmp //无条件跳(机器码EB)
 
  jb //若小于则跳
 
  ja //若大于则跳
 
  jg //若大于则跳
 
  jge //若大于等于则跳
 
  jl //若小于则跳
 
  jle //若小于等于则跳
 
  pop xx //xx出栈
 
  push xx //xx压栈
 
  更为详细的指令请查阅汇编书籍。
 
  4.和谐常见修改。
 
  汇编指令修改 相应的机器码修改(通过16进制编辑器实现)
 
  jnz/jne->nop 75->90
 
  jnz/jne -> jmp 75-> EB
 
  jz/je->nop 74->90
 
  jz/je -> jmp 74-> EB
 
  jnz -> jz 75->74 或 0F 85 -> 0F 84
 
  jz -> jnz 74->75 或 0F 84 -> 0F 85
 
  jnz -> jz 75->74 或 0F 85 -> 0F 84
 
  je-> jne 74->75 或 0F 84 -> 0F 85
 
  表1 和谐常见修改
 
  (1)修改为jmp
 
  je(jne,jz,jnz) =>jmp相应的机器码为EB (意思是出错信息向上找到的第一个跳转),jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息。例如:
 
  xxxxxxxxxxxx 出错信息,如注册码不对,sorry,未注册版不成功,“Function Not Avaible in Demo”,“Command Not Avaible”或 “Can't save in Shareware/Demo”等,我们希望把它跳过,不让它出现。
 
  ……
 
  xxxxxxxxxxxx 正确路线所在,直接跳转到这里。
 
   (图6)
 
  (2)修改为nop
 
  je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转),nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。例如:
 
  xxxxxxxxxxxx 正确信息,如注册成功,谢谢您的支持等,我们希望它不被跳过,让它出现,所以程序一定要顺利来到这里,不能跳转。在OD中,我们一般是把不需要设置NOP,只是把JE或者JNZ改为JNZ或者JE即可,也就是把相等则跳改为不相等则跳,或者不相等则跳改为相等则跳,把跳转过程相反,达到更改程序流程的目的。
 
  ……
 
  xxxxxxxxxxxx 出错信息,我们希望不要跳到这里,不让它出现!
 
  
 
  二,如何快速确定暴破物。
 
  1,确定目标有没有加壳。没有最好了,有的话看是不是常见壳,可不可以用现有脱壳软件快速脱掉。搞不定的话,暂时放弃它。“我吃定你了!”,不要这样,老兄。不就是一壳么,不要和他一般见识。记着,你今天的重点是爆破。不要主次不分、本末倒置,这也是初学者最易犯的错误。
 
  这方面,我用PEID。它可以整合到资源菜单,非常方便。
 
  2,确定用什么语言编写。我的经验是,DELPHI的程序结构清晰、紧凑,最好分析。其次是VC,BC,ASM,比较难的是VB,要有一定的经验才可搞定一两个。
 
  2,在反汇编文件中找到可疑点。
 
  经典语句自不用说,比如,“恭喜”,“注册成功”,“注册码错误”“无效的注册码”,“Thank You","Sorry"...找到后,一般向上不远处就可看到条件转移语句JZ、JNZ、JLE什么的。
 
  事实上,只有极少极少的软件只修改注册判断就OK的。所以我们要把更多的注意力转到其它的可疑点。如未注册标识,过期警告,次数标识,NAG对话框...,熟练使用各种工具的搜索功能是基本功之一。找到后再向上不远处找条件转移语句。
 
  三,如何暴破。
 
  当你找准爆破点后,你会发现有很多种爆破的方法都可以达目的。
 
  1,修改转移语句。
 
  我一般这样改:
 
  不需要跳,我就把JNE改为JE或者把JE改为JNZ
 
  需要跳,我就把JE或者JNZ改为JMP。
 
  这可避免万一你有正确的注册码反而会出错的事情发生。
 
  下面的附件我做了一个关于爆破的视频教程,希望对大家理解爆破有帮助。
 
  4.动态追踪和谐技巧-和谐经典句式
 
  以下是经典的比较组合,常常是注册码的出现处,所以被称为和谐经典句式。
 
  (1)
 
  mov eax,[ ] //这里可以是地址,也可以是其他寄存器或mov eax [ ]。
 
  mov edx,[ ] //同上,通常这两个地址就储存着重要信息或者可以是pop edx。
 
  call XXXXXXXX //关键call。
 
  test eax,eax //eax为标志位。
 
  jz(jnz)或 jne(je) //关键跳转。
 
  (2)
 
  mov eax,[ ] //这里可以是地址,也可以是其他寄存器。
 
  mov edx,[ ] //或是pop edx,通常该地址就储存着重要信息。
 
  call XXXXXXXX //关键call。
 
  jne(je) //关键跳转。
 
  (3)
 
  mov eax,[ ] //这里可以是地址,也可以是其他寄存器
 
  mov edx,[ ] //同上,通常储存着重要信息
 
  cmp eax,edx //关键比较。
 
  jnz(jz) //关键跳转。

下载资源链接:( 说明:股海资源如需解压密码的请输入本站域名:www.guhai.com.cn 请仔细输入!)
本地下载 (免费下载)
下载 (免费下载)
 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

OllyDBG和谐入门教程 附OllyDBG_1.10汉化版下载

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
股海网
文件大小: 
Bytes
上传时间: 
2014-01-19
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《股海网侵权处理流程》《股海网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-10 湘公网安备43108102000040号
Copyright © 2021 铭网科技,All Rights Reserved.