本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
查看: 3620|回复: 10

请教各位大侠,不使用DRX,不修改代码段,也可以让指定内存处代码发生异常吗? [复制链接]

Rank: 1

发表于 2010-4-11 02:51:47 |显示全部楼层
请教各位大侠,不使用DRX,不修改代码段,也可以让指定内存处代码发生异常吗?
比如41000处是一个 mov edi,edi的代码 我不修改这个代码可以使CPU执行到这里的时候触发异常吗?

Rank: 9Rank: 9Rank: 9

发表于 2010-4-11 14:43:31 |显示全部楼层
可以修改内存属性,让内存页发生异常
悟空,退下,为师一个人就够了

Rank: 2

发表于 2010-4-11 15:16:55 |显示全部楼层
但是用内存属性的话 , 除非这个页访问得不多,

如果这个页其它地址访问得多了, 但是又不是目标地址 41000

只能一直忽略异常继续运行,重新设置

然后一会程序就挂了

Rank: 9Rank: 9Rank: 9

发表于 2010-4-11 16:23:10 |显示全部楼层
那你可以在指定内存处代码插入int3、int1等指令
悟空,退下,为师一个人就够了

Rank: 1

发表于 2010-4-12 03:24:50 |显示全部楼层
插入int3、int1 就是修改内存拉

Rank: 1

发表于 2010-4-12 14:16:03 |显示全部楼层
不修改代码
也许Matt Conover的BCE(Buffered Code Execution)符合你的要求...
大概就是...利用CPU的NX特性...
接管NX的Handler, 然后标记代码所在页面为NonExcutable.

我在他的演示里面没有看到你说的:

"访问得多了, 但是又不是目标地址 41000
只能一直忽略异常继续运行,重新设置
然后一会程序就挂了"

这种情况...

也许是你程序写得有问题?

Rank: 5Rank: 5

发表于 2010-4-12 16:35:08 |显示全部楼层
VT也可以做到吧,尤其是AMD上那种XX后自己反汇编指令的~~

Rank: 1

发表于 2010-4-13 13:00:42 |显示全部楼层
楼上的楼上,你可不可以换个头像。。。

Rank: 2

发表于 2010-4-14 03:32:03 |显示全部楼层
引用第7楼matrixsky于2010-04-13 10:00发表的  :
楼上的楼上,你可不可以换个头像。。。

是啊.太恶心人了

Rank: 2

发表于 2010-4-14 03:34:12 |显示全部楼层
引用第5楼KiSSinGGer于2010-04-12 11:16发表的  :
不修改代码
也许Matt Conover的BCE(Buffered Code Execution)符合你的要求...
大概就是...利用CPU的NX特性...
接管NX的Handler, 然后标记代码所在页面为NonExcutable.

.......

就算你拿 OD , 对一个内存区域(访问非常频繁的)下内存断点(非硬件的)

OD 也会挂掉的

Rank: 1

发表于 2010-4-19 20:12:03 |显示全部楼层
要是那段代码已经被保护或反复验证完整性的话,建议楼主转变思路,从别处着手。
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-6-17 12:28 , Processed in 0.023632 second(s), 8 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部