问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用汇编语言编程触发OD浮点运算漏洞?

发布网友 发布时间:2022-04-23 13:46

我来回答

1个回答

热心网友 时间:2022-04-10 05:53

2007/4/20
Themida壳利用了OllyDBG未公开的一个浮点指令漏洞来使得OllyDBG崩溃
Themida/WinLicense 最近一直很努力
自从Themida/WinLicense.V1.1.1.0放弃驱动后,Themida/WinLicense的Anti仿佛一下子就没了。
但是自Themida/WinLicense.V1.8.0.0,Oreans Technologies新增了HeapMagic检测,这个Anti方法目前还未见公开。
Themida/WinLicense.V1.8.2.0,Oreans Technologies利用了OllyDBG未公开的一个浮点指令漏洞来使得OllyDBG崩溃。

下面借助例子来简单说明一下Themida/WinLicense.V1.8.2.0利用的这个OllyDBG漏洞

MorGain结构快速设计安装程序.V2006.10.Revison.1571
http://www.morgain.com/download.htm
没发现其他新版加壳的小例子,所以借用这个
设置OllyDBG暂停在WinMain,载入HiDesign.exe,OllyDBG莫名其妙就自动退出了
设置OllyDBG暂停在系统断点,可以载入了,但是跟随入口后OllyDBG又自动退出了

可以用Hiew等工具观察一下HiDesign.exe的EP处代码

CODE:
00740014 B8 00000000 mov eax,0
00740019 60 pushad
0074001A 0BC0 or eax,eax
0074001C 74 68 je short 00740086
0074001E E8 00000000 call 00740023
00740023 58 pop eax
00740024 05 53000000 add eax,53
00740029 8038 E9 cmp byte ptr ds:[eax],0E9
0074002C 75 13 jnz short 00740041
0074002E 61 popad
0074002F EB 45 jmp short 00740076
00740031 DB2D 37007400 fld tbyte ptr ds:[740037] ;“37007400”这个值不唯一,可以变。
00740037 FFFF ???
00740039 FFFF ???
0074003B FFFF ???
0074003D FFFF ???
0074003F 3D 40E80000 cmp eax,0E840
00740044 0000 add byte ptr ds:[eax],al
00740046 58 pop eax
00740047 25 00F0FFFF and eax,FFFFF000

00740041处其实是:
00740041 E8 00000000 call 00740046
00740046 58 pop eax
00740047 25 00F0FFFF and eax,FFFFF000
再看一下Themida/WinLicense以前版本的入口代码:

CODE:
007F8014 B8 00000000 mov eax,0
007F8019 60 pushad
007F801A 0BC0 or eax,eax
007F801C 74 58 je short 007F8076
007F801E E8 00000000 call 007F8023
007F8023 58 pop eax
007F8024 05 43000000 add eax,43
007F8029 8038 E9 cmp byte ptr ds:[eax],0E9
007F802C 75 03 jnz short 007F8031
007F802E 61 popad
007F802F EB 35 jmp short 007F8066
007F8031 E8 00000000 call 007F8036
007F8036 58 pop eax
007F8037 25 00F0FFFF and eax,FFFFF000
Themida/WinLicense.V1.8.2.0 入口代码与之前版本的多了以下部分:

CODE:
00740031 DB2D 37007400 fld tbyte ptr ds:[740037]
00740037 FFFF ???
00740039 FFFF ???
0074003B FFFF ???
0074003D FFFF ???
0074003F 3D 40E80000 cmp eax,0E840
00740031 DB2D 37007400 fld tbyte ptr ds:[740037]
注意[740037]处10个字节:

CODE:
00740037 FF FF FF FF FF FF FF FF 3D 40
浮点数:9.2233720368547758080e+18
OllyDBG目前最新V1.10版本处理此浮点数会崩溃!

我们只要在代码中构造一个如此的浮点指令陷阱,当OllyDBG V1.10反汇编至此时就会中招而崩溃退出

QUOTE:
OllyDBG V1.10 反汇编浮点指令陷阱:

fld tbyte ptr ds:[XXXXXXXX]
在[XXXXXXXX]处写入FF FF FF FF FF FF FF FF 3D 40

QUOTE:
解决方案:

1、期待OllyDBG新版修正此bug
2、在OllyDBG V1.10调试前使用其他16进制工具修改掉[XXXXXXXX]中FF FF FF FF FF FF FF FF 3D 40数据,把其中的某位数据修改为任一其他值即可
3、设置OllyDBG暂停在系统断点,在数据窗口中Ctrl+G:XXXXXXXX处,修改[XXXXXXXX]中FF FF FF FF FF FF FF FF 3D 40中任一数据为其他值
4、修改OllyDBG V1.10的反汇编引擎,避开此浮点指令陷阱
以第三个方案操作最简单
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样写小说比较容易被发掘? 笔记本独显有黄色叹号,不能工作,n卡控制面板消失重下驱动也不管用,求助... ...我的独立显卡怎么显示一个黄色的小叹号。怎么解决啊? 去了怎么造句 跑到怎么造句 临床医学可不可以报考执业药师 中秋和双节公司都发放了什么礼物啊? 请问川藏线自驾旅游可以携带医用氧气瓶吗 个人家庭如何租医用氧气瓶 fell过去式和过去分词形式 jquery 自定义函数无法实现自定义回调函数 HIDESIGN是什么品牌,值钱吗?有没有鹿皮衣? HIDESIGN是什么牌子? 最近有没有好看的小说啊,要很孽心的那种 英雄联盟,赏金猎人前期很顺杀主宰比赛了,推塔也占优势。后期被孽的很惨。求大家分析原因?谢谢 无线网卡有线网卡连不同网络可以同时使用吗 金枝玉叶和金枝欲孽是一部剧吗? 金枝欲孽 最厉害是谁 怎么让电脑同时使用无线网和有线宽带? 我造了什么孽老天爷要我死? 一台电脑同时连有线网和无线网?详见下 同一台电脑可以有线无线一起用么 电脑无线网络和有线网络可以同时使用吗 我这是造的什么孽啊,最近在奋力准备考研,一个好朋友跟我闹掰了,因为她看到我的另一个朋友的微信了, 当一台电脑同时连接了无线网和有线网,会是什么结果 如果你的父亲天生怕老婆,你被母亲孽歹,父亲不敢帮你,还把家丑告诉外人让别人同情你,你会什么反应? 华为换手机后怎么导入所有信息 手机Error 504错误.怎么办 今生遇到喝酒的爸爸前世造啦什么孽 无线网络和有线网络同时连接的话电脑用的是哪个网络? 求死神来了5高清种子(一定要高清的) 谁有情绪板(Mood Board)软件么? 能共享一下吗? 谢谢啦,sishidesign@163.com b站学生信用卡有额度吗 hideodesign是什么品牌 次年大学生办信用卡有额度吗? 大学生所办理的信用卡有额度吗? 为什么拿到学生信用卡没有额度? 在校大学生可以申请信用卡么 额度是多少 急求 修正药业是哪个省的? 修正药业是国企还是私企,总部在什么地方? 修正药业是不是传销公司 修正药业集团股份有限公司电话是多少? 修正药业和仁和药业,哪家比较好? 修正药业集团老总是谁? 修正药业(木竭胶囊)零售多少钱一盒?谢谢 修正药业发展前景怎么样? 修正药业集团是不是在北京,好像有个修正品牌总监叫李佳是吧? 长春修正药业药厂厂址在哪? 今年为什么支付宝没有集五福 为什么支付宝今年没有集五福活动