逆向学习(一)
简单脱壳原理(借鉴学习吧)
在这里,给大家分享一下关于一些基础知识的运用。
有些时候,忍不住在想很多东西,明明是一些很基础的东西,却要藏起来收费学习,在进去之后发现根本没有什么很大的价值。其实就是一些基础,让大家入个门,也不是什么高深的东西,所以,在这里给大家分享一下,虽然借鉴了很多东西,但也有自己的感悟和想法,希望对想入门学习的有所帮助。
下面是一些过程介绍:
1.通过PEID软件查询有没有加壳。
这里说一下,如果说没有加壳,在工具字段显示的就是具体使用语言,这里是ASPack 2.12加了壳。
2.通过ollydbg去壳以及过程
点击单步执行,观察寄存器变化
在这时,寄存器已经发生变化,通过对寄存器的数据跟随,我们可以发现一些信息。
寻找内存数值为00的块,在块中插入断点
通过调试,加入硬件断点
点击运行
程序进入断点处
点击单步步过按钮,我们会一步步的进入,在进入到retn处时,我们看到程序出现了乱码
这些乱码,基本上就是影响你判断的了,所以我们可以在分析中将它删除
删除后我们看到来到了一个地址
说道这里,很多疑问可能大家都会有,这是什么 入口地址,这是一个oep地址,但对于很多人在来说,刚开始其实并不需要我们了解太深,但我们需要不断积累感觉,大概知道一些基本的步骤后,通过一点点的去了解才是好的学习方式,但是如果一开始就想要全部了解的话,那会极大加深 你的沮丧感,因为你会发现这个 是真的非常的难,毕竟是汇编语言嘛。不过,我想说不必沮丧,这是我们学习过程中的一个经历,我们 只需要一点点积累,到后来发现其实并没有学习很多东西,但是我们掌握的却越来越多,当然这里并不包括那些学习能力超级强的人。好了,我们继续。
在进入到程序的入口后,我们就需要将这里的硬件断点删除掉
删除后我们就可以进行ollydbg去壳了
点击去壳
最后就生成了 一个去壳的软件,这里我们也可以清楚的看到使用的语言。c++ 6.0
到了这里,介绍就完了,希望对一些基础差一点的有所帮助