欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    破解和混合编程实例HackerReverseEngineering.ppt

    • 资源ID:78674117       资源大小:664KB        全文页数:30页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    破解和混合编程实例HackerReverseEngineering.ppt

    破解和混合编程实例破解和混合编程实例 Hacker Reverse Engineering Hacker Reverse Engineering 创建一个最简单的保护机制并破解它;选一个实例,在此基础上学习十六进制编辑器,API窥测器 与 反汇编器(IDA Pro)破解一个实际的例子 0551-36028242023/3/15自定义保护机制自定义保护机制自定义保护机制,并尝试破解并尝试破解并尝试破解最简单的密码保护算法:密码存放位置:程序中/配置文件/注册表密码保护措施:无 if(strcmp(password entered,reference password)/*密码不正确*/else /*密码正确*/ 0551-36028242023/3/15自定义保护机制自定义保护机制自定义保护机制,并尝试破解并尝试破解并尝试破解Protect_password#define legal_pswmy.good.passwordint main()char user_psw666;cout user_psw;if(strcmp(legal_psw,user_psw)cout“wrong passwordn”;/“标记密码不匹配 0551-36028242023/3/15黑客反向工程热身黑客反向工程热身黑客反向工程热身黑客反向工程热身else cout“password oknhello,legal user|n“;/“标记”密码匹配 return 0;2023/3/ 0551-36028245/申斥密码不匹配/申斥密码不匹配/申斥密码不匹配2023/3/ 0551-36028246自动过滤上述程序二进制内容结果自动过滤上述程序二进制内容结果00007d11:LCMapStringW00007d1f:kernel32.dll0000805c:crackme 00h0000806a:enter passwd:0000807d:my.good.password0000808f:wrong password0000809c:password ok000080af:hello,legal user!000080c2:.?Avios000080de:.?Avistream 结果分析2023/3/ 0551-36028247 黑客反向工程热身编译后的程序执行 猜测密码-凭运气,难度大 分析程序的组成代码 数据(密码字符串)2023/3/ 0551-36028248 黑客反向工程热身 data:数据段 rdata:只读数据,字符串文字和常量.如本程序中的 myGOODpasswordn“。bss:未初始化数据,比如函数和静态变量。idata:包括导入库和导入地址名称表。edata:包含了应用程序或DLL的导出数据。text(code):代码段。 0551-36028242023/3/15黑客反向工程热身c中中,内存数据分为如下几个区内存数据分为如下几个区 1.栈-由编译器自动分配释放bp+xx,bp-xx。2.堆-一般由程序员分配释放new(),delete()函数。3.全局区(静态区)共享存储区。初始化的全局变量和静态变量在一块区域(data)。未初始化全局和静态变量放在相邻区域(bss)。4.另外还有一个专门放常量的地方(rdata)。C+中中,内存分成内存分成5个区,分别为:个区,分别为:1.栈栈,里面的变量通常是局部变量、函数参数等。 0551-36028242023/3/15黑客反向工程热身2.堆堆,由new分配的内存块,由delete回收。3.自由存储区自由存储区,由malloc等分配的内存块,和堆相似,由free回收。4.全局全局/静态存储区静态存储区,全局和静态变量均被分配到同一块内存中,由该语言编译器自行确定(与C语言有差别)。5.常量存储区常量存储区,存放常量,不允许修改。静态变量/全局变量:全局/静态存储区。常量存放在常量区。程序放在代码区。 0551-36028242023/3/15黑客反向工程热身查看二进制文件.根据:编译器将初始变量放在如下数据段中.data rdata 自定义段 0551-36028242023/3/15黑客反向工程热身改写动机:隐藏密码字符串,增加一点分析难度。int count=0/从现在开始从现在开始,所有初始化变量都放置在所有初始化变量都放置在.kpnc中中.#pragma data_seg(“kpnc”)char passwd=PASSWORD;#pragma data_seg()/现在所有初始变量又将放到默认段现在所有初始变量又将放到默认段rdata中了中了.char buffPASSWORD_SIZE=“; 0551-36028242023/3/15黑客反向工程热身改写后的源代码清单-list1_p9.cppidag list1_p9.exe目标代码中出现了如下段落:textrdatadataidatakpnc只有在kpnc 段中才能看到密码字符串信息 myGOODpasswordn“ 0551-36028242023/3/15黑客反向工程-熟练使用反汇编器修改二进制代码的工具:hiew(动机)反汇编工具:ida大家推荐工具:softice,汇编:将汇编程序转换为机器语言程序。反汇编:将机器语言程序转换为汇编指令。 0551-36028242023/3/15分析过程:.rdata:00420000 00 00 00 00 24 79 F0 46 00 00 00 00 02 00 00 00 .$y餏.rdata:00420010 35 00 00 00 00 00 00 00 00 60 02 00 50 61 73 735.Passrdata:00420020 77 6F 72 64 20 4F 4B 0A 00 00 00 00 57 72 6F 6E word OK.Wronrdata:00420030 67 20 70 61 73 73 77 6F 72 64 0A 00 00 00 00 00 g password.rdata:00420040 6D 79 47 4F 4F 44 70 61 73 73 77 6F 72 64 0A 00 myGOODpassword.rdata:00420050 00 00 00 00 45 6E 74 65 72 20 70 61 73 73 77 6F .Enter passwordata:00420060 72 64 3A 20 20 20 00 00 00 00 00 00 73 74 72 20 rd:.strrdata:00420070 21 3D 20 4E 55 4C 4C 00 66 67 65 74 73 2E 63 00 !=NULL.fgets.c黑客反向工程黑客反向工程-Ida-list1_7.exe 0551-36028242023/3/15使用密码串进行比较的程序块.text:0040104D.text:00401052 add esp,0Ch.text:00401055 push offset s_Mygoodpasswor(00420040h)myGOODpasswordn.text:0040105A lea ecx,ebp+var_68.text:0040105D push ecx.text:0040105E call strcmp.text:0040105E.text:00401063 add esp,8.text:00401066 test eax,eax.text:00401068 jz short loc_ 0551-36028242023/3/15 strcmp传递两个参数 :push offset s_Mygoodpasswor;参考密码lea ecx,ebp+var_68;用户输入密码区 push ecxcall strcmp C 规范:从右到左的顺序将参数压入堆栈。恢复的结果为:strcmp(var_68,myGOODpasswordn)黑客反向工程-C规范的知识 0551-36028242023/3/15黑客反向工程-C规范的知识 1 从堆栈中删除参数不由函数自身完成,而是由调用程序完成,这样能创建数目可变的参数。调用程序 被调用程序 call strcmp ret 8 addesp,+08 2 常用清除堆栈指令 add esp,XXX 32位:n_args=XXX/416位:n_args=XXX/2 pop regsub esp,-XXX 3 由call后的add esp,8 指令知该函数个数为2。 0551-36028242023/3/15黑客反向工程-分析修改的程序text:00401063 add esp,8.text:00401066 test eax,eax.text:00401068 jz short loc_401079.text:0040106A push offset_WrongPassword ;Wrong passwordn.text:0040106F call printf 检查函数返回值是否等于零,若为0,表示密码正确,进行相应提示;否则转错误处理程序。修改:JNZ-JZ,test eax,eaxxor eax,eax等 JZ:74-JNZ:75 XOR: 0551-36028242023/3/15黑客反向工程-外科手术(改程序)解决方法:使用直接编辑二进制工具 hiew32等.Hiew32 list1_p7g.exe目标:寻找 JZ 机器代码定位 1068h偏移,将 改为 0551-36028242023/3/15黑客反向工程预备知识 反汇编反汇编-二进制到汇编代码二进制到汇编代码(X86)(X86)二进制二进制 汇编代码汇编代码 90 90 NOPNOP 89D889D8 MOV AX,BXMOV AX,BX74 74 JZJZ39C8 39C8 CMP AX,BXCMP AX,BX 反编译反编译-汇编到高级语言汇编到高级语言(C(C或或C+)C+)MOV AX,1000,ADD AX,10,MOV 1000,AX MOV AX,1000,ADD AX,10,MOV 1000,AX var1000=var1000+10 var1000=var1000+10 类类/模型模型/概念识别概念识别-从高级语言到类从高级语言到类/模式模式/概念。概念。 0551-3602824黑客反向工程预备知识 如何创建与绕过保护环节如何创建与绕过保护环节 若能了解创建保护机制的知识更好。若能了解创建保护机制的知识更好。黑客底层分析技术黑客底层分析技术-调试器与反汇编器使用技能调试器与反汇编器使用技能 熟练使用调试器熟练使用调试器 熟练使用反汇编器熟练使用反汇编器 二进制编辑工具二进制编辑工具 识别与重建源代码关键结构识别与重建源代码关键结构-从二进制或汇编中识别出从二进制或汇编中识别出函数、局部与全局变量、控制结构、对象、运算符等。降函数、局部与全局变量、控制结构、对象、运算符等。降低程序分析的工作量。低程序分析的工作量。 0551-3602824黑客反向工程预备知识根据喜好选用一些工具软件根据喜好选用一些工具软件 调试器调试器-Softice-Softice 反汇编器反汇编器-IDA-IDA 十六进制编辑器十六进制编辑器-Hiew-Hiew 开发包开发包-SDK-SDK 与与 DDKDDK 操作系统操作系统-Windows XP-Windows XP 编译器编译器-VC6.0-VC6.0 (C+)(C+) 0551-3602824黑客反向工程预备知识调试器介绍:调试器介绍:Softice:Softice:黑客们使用的主要武器。黑客们使用的主要武器。3.263.26版本是一个经受版本是一个经受了时间考验的版本,它具有很好的稳定性。了时间考验的版本,它具有很好的稳定性。OllyDbyOllyDby:不及不及SofticeSoftice 。TRWTRW:国产的较好的工具。国产的较好的工具。VC6VC6自带的调试器自带的调试器-常用方法介绍。常用方法介绍。Debug:Debug:最古老的,最基本的最古老的,最基本的-使用方法。使用方法。 0551-3602824黑客反向工程预备知识反汇编器介绍反汇编器介绍 IDA-IDA-常用功能介绍常用功能介绍 W32DASMW32DASM SR(Source)SR(Source)Hex2ASMHex2ASM 0551-3602824黑客反向工程预备知识十六进制编辑器:十六进制编辑器:Hiew-Hiew-常用功能介绍常用功能介绍 FlexHexFlexHex HeditHedit WinHexWinHex EditorE 0551-3602824黑客反向工程预备知识 SDKSDK WinAPI WinAPI 函数函数 用于用于PEPE 文件文件DUMPBINDUMPBIN 实用工具文档资料实用工具文档资料 DDKDDK 有助于弄清楚驱动程序如何开发、工作,以及如何有助于弄清楚驱动程序如何开发、工作,以及如何被攻击。包含一个非常有价值的文件被攻击。包含一个非常有价值的文件NTDDK.hNTDDK.h。 0551-3602824黑客反向工程预备知识 常用汇编语言常用汇编语言(机器机器)指令指令 寄存器的用途寄存器的用途 堆栈堆栈-常用概念介绍常用概念介绍 中断调用中断调用 处理器文档资料处理器文档资料:www.www.IntelI 0551-360282430课程说明(课程说明(2 2)2.教材和参考文献教材和参考文献 黑客反向工程(第二版),卡巴斯基,各种相关文献或学术文章各种相关文献或学术文章3.考试或考查考试或考查 一次正式课堂汇报(ppt+报告不超过30分钟,70%)平时发言或报告或点名 30%http:/

    注意事项

    本文(破解和混合编程实例HackerReverseEngineering.ppt)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开