background preloader

LOTTO

Facebook Twitter

Life

中国银行全球门户网站:外汇牌价. Forex Trading | Currency Trading | Forex | Forex Broker | FXCM. OANDA - Forex Trading and Exchange Rates Services. Currency Trading | FX/4X Trade | FOREX.com in Australia. 附加数据 浅说 - 『 我的起点 』 - 一蓑烟雨论坛 UpK UnPack SoftSecurity. 征集[Overlay]附加数据问题汇总 - 『 我为壳狂 』 - 一蓑烟雨论坛 UpK UnPack SoftSecurity. 征集[Overlay]附加数据问题汇总 - 『 我为壳狂 』 - 一蓑烟雨论坛 UpK UnPack SoftSecurity. 加密与解密 脱壳入门初级教学 - 看雪安全论坛. 4.用内存断点找OEP Author:Lenus From: www.popbase.net & www.pediy.com E-mail:Lenus_M@163.com -------------------------------------------------- 1.前言 发现论坛中很多兄弟在询问:什么是二次内存断点,三次内存断点。 还有很多人对内存断点的原理不是很明白。 其实只要懂得壳是如何解压代码的,那么就完全可以按自己的喜欢来下断。 本文要解决的问题是: 1.什么是内存断点? 2.如何在寻找OEP时使用内存断点。 3.内存断点的局限性。 内存断点分为:内存访问断点,内存写入断点。 004AE242 A1 00104000 mov eax,dword ptr ds:[004AE24C] //004AE24C处的内存读取 004AE247 A3 00104000 mov dword ptr ds:[004AE24C],eax //004AE24C处的内存写入 004AE24C 83C0 01 add eax,1 //004AE24C处的内存执行 那么我们应该如何中断在上面的几行呢? 到这里你可能不明白了,为什么内存访问断点能中断在004AE247这一句对004AE24C的写入,而且还能中断在004AE24C的执行呢?

其实很简单,我们只要仔细体会一下“内存访问”这四个字的含义遍可以知道,当我们对004AE24C进行读取的时候需要“访问”他吧,当我对004AE24C进行写入的时候也需要“访问”他吧!! 所以我们不难得出下面的结论: 1.内存写入中断的地方,一定是也可以用内存访问中断。 总结一下:内存断点不修改改原代码,不会像普通断点那样因为修改代码被程序校验而导致中断失败;对于区段的访问只是区域大了一点,其原理和上面分析的三行代码是一样的。 Ii.如何使用内存断点来寻找OEP呢? 正如我们知道的,壳如果要把原来加密或压缩的代码运行起来就必须要解压和解密原来的代码。 相信很多人到这里已经明白了,为什么在教程中到达了某一个时候,某一行的时候。 让我来做一个假设吧,假设我是一个壳的作者。 这里注意上面虽然下了两次内存访问断点,但是本质是不一样的,目的也是不一样的。 总结一下:如果我们知道壳在什么地方对code段解压完毕我们就可以使用内存断点,找到OEP。 Iii.实战 情况2. 征集[Overlay]附加数据问题汇总 - 『 我为壳狂 』 - 一蓑烟雨论坛 UpK UnPack SoftSecurity.