首页
社区
课程
招聘
[求助]如何判断硬件访问还是硬件写入???
发表于: 2006-3-3 17:30 4210

[求助]如何判断硬件访问还是硬件写入???

2006-3-3 17:30
4210
在破解实例信息资源豪华版中
我在练习脱壳中

手动脱壳入门第十四篇32Lite 0.03a
【脱文标题】 手动脱壳入门第十四篇32Lite 0.03a

【脱文作者】 weiyi75[Dfcg]

【作者邮箱】 weiyi75@sohu.com

【作者主页】 Dfcg官方大本营

【使用工具】 Peid,Ollydbg,ImportREC,Loadpe

【软件名称】 QEDITOR

【软件简介】 masm 8.0 的编辑器

【加壳方式】 32Lite 0.03a -> Oleg Prokhorov

【保护方式】 32Lite 压缩壳

文中提到到

命令行

d 12ffc0

在0012FFc0内存处的4个字节上下     硬件写入->DWord 断点

直接F9运行

手动脱壳入门第十七篇 VGCrypt PE Encryptor V0.75

【脱文标题】 手动脱壳入门第十七篇 VGCrypt PE Encryptor V0.75

【脱文作者】 weiyi75[Dfcg]

【作者邮箱】 weiyi75@sohu.com

【作者主页】 Dfcg官方大本营

【使用工具】 Peid,Ollydbg,ImportREC

【软件名称】 VGCrypt PE Encryptor V0.75

【加壳方式】 Virogen Crypt 0.75

【保护方式】 Virogen Crypt资源保护壳

文中提到

dd 12ffa0

下       硬件访问-Dword断点。

F9运行

硬件中断。

硬件访问-Dword断点与硬件写入->DWord 断点有什么区别   怎么判断使用的条件

我是因为在十四课中学到硬件写入->DWord    用在十七课中出现错误   才想到这个问题的   

出现的错误是  直接跳过OEP(OEP是00401000 E8 51060000 CALL <JMP.&KERNEL32.GetCommandLineA>)  到达0040110C     

那位高手给我解释一下  
谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 10
活跃值: (130)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
“写入”就是要改变那个值。“访问”包括“读取”和“写入”两部分。“执行”某一内存时首先我们必须要“读取”它但是没有改变(也就是“写入”)它。因此,你若下“写入”断点,则不会中断在执行部分。若想在执行某一处能够中断下来,则必须下“访问”断点。
明白?
2006-3-3 20:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
访问”包括“读取”和“写入”两部分

你的意思是    我以后只用访问就行了么?

我有些疑惑的是那为什么还要分   写入和访问呢

再给我讲得细一些
2006-3-3 21:01
0
雪    币: 10
活跃值: (130)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
假设一块内存壳要对他读10次,写1次。而写的地方就是我们要的关键地方。你当然可以“访问”来中断,但你得中断N次后才能来到这个写入的地方。要是下“写入”中断就可以瞬间来到这个地方。某些情况下,“写入”比“访问”可能会更精确些,但“访问”比“写入”中断面广,看你怎么取舍了~
2006-3-4 13:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这么说来最好用访问, 而写入则是破解后的总结出来的,其实在自己脱壳前并不知道是不是下   写入  就能以此解决,  而是在脱了壳才能得出是使用写入还是访问,我的想法对不对呢?

还有就是  为什么要用Dword
其他的选项为什么不能用呢

要用其他选项   有什么条件么?   或者说怎么用?

再次感谢你的回复  
也希望你能继续给我解答
2006-3-4 14:27
0
雪    币: 10
活跃值: (130)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
这么说来最好用访问, 而写入则是破解后的总结出来的,其实在自己脱壳前并不知道是不是下   写入  就能以此解决,  而是在脱了壳才能得出是使用写入还是访问,我的想法对不对呢?
//完全正确。

还有就是  为什么要用Dword
其他的选项为什么不能用呢

要用其他选项   有什么条件么?   或者说怎么用?

//
目前使用的机器是32位的,因此表示某个内存地址共需要4个字节。DWORD就表示4个字节。DWORD类型表示对该地址后的四个字节下断。如果你用Byte(一个字节)或者Word(两个字节)那就会断下N次。

假设我们要断的内容为:12345678  那么 DWORD 就只会中断一次 ,WORD 就可以断所有的 1234xxxx ,因为事实上你只对1234这两个字节下了断,同样,Byte 就可以断所有的 12xxxxxx。如果你有充足的时间和精力,不妨试试Word和Byte。

当然,这不要绝对化,有可能在某些时候需要只断两个字节(WORD)或一个字节(WORD)的内容。但实际上,我好像根本没遇到过这种情况。
2006-3-6 00:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢了
我明白了
2006-3-7 15:38
0
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
哎呀! 长见识啊!
2006-3-7 20:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢hermit的解答。
2006-3-8 08:18
0
游客
登录 | 注册 方可回帖
返回
//