新手困惑的二个问题:寻找解码段和程序的结构?高手勿喷
第一个问题:作为一个小白,一直是我困惑的问题。恒大在视频里说了,大家不要困惑,以后会讲。可是在百集教程里还没有找到,如果有讲解的话请朋友们跟帖指出,我或许眼拙没看见,不过在坛子里我搜到了答案。因为这个帖子很久而且被锁帖了,担心一直沉下去无人知,所以,我想做个好人,献给同样是小白的坛友们。这个解答也是恒大的回复,地址如下:https://www.52hb.com/thread-61-1-1.html
第二个问题:
恒大的教程通俗易懂,毫无疑问,我们就像是小学生,老师讲什么,我们学什么。比如,脱壳去OEP,在壳里逆向的话就去找401000代码段。因为逆向需要面对的是一大堆代码,所以,时间久了,我就想知道,OEP在完整代码段的什么位置,401000在完整代码段的什么位置。说白了就是,恒大老师现在讲的是人的一张脸,一只胳膊,我想知道的是完整的一个人!
再直观点描述我的疑问,可以这样图示:
地址 代码 更多的描述
000000 程序的壳
100000 OEP
200000 被VM掉的代码(乱码)
300000 资源(图标等等)
401000 代码段
500000 程序领空
600000 输入表
700000 系统领空
。。。。。。
当然上面的列表是乱来的,因为我确实不懂,也就是我要求教各位的。总之我想知道一个完整的东西。越完整越详细越好。
这个或许可以称作是程序的另外一种结构代码。(不是网上说的那三种结构:顺序结构、选择结构、混合结构)
求教各位大大和大牛了! @Shark恒
第一个问题你已经解决了。
第二个问题:
说白了就是,恒大老师现在讲的是人的一张脸,一只胳膊,我想知道的是完整的一个人!
地址 代码 更多的描述
000000 程序的壳
100000 OEP
200000 被VM掉的代码(乱码)
300000 资源(图标等等)
401000 代码段
500000 程序领空
600000 输入表
700000 系统领空
上面这两个举例完全错乱,千万不要自己瞎举例,不仅误导你自己,还会误导其他人。大家不要信以为真,不要被误导。。。
OEP在哪儿?
每个程序的OEP位置是不同的,所以我也不知道OEP在每个程序的什么位置。
如果OEP位置是固定的,那脱壳过程中,就不需要寻找OEP了。
所以OEP位置需要自己去找,而不是固定在某个位置。而且寻找OEP在脱壳过程中是首要任务。
首先你要知道OEP是个什么东西,而不是直接把他描述成人的胳膊或者腿。
如果一个程序没有壳,那你还用找OEP么?
没壳程序,第一行代码就是OEP(暂且这么叫它OEP,应该叫EP),就没有必要找OEP了。
那OEP是什么东西?什么意思?OEP的意思是程序原始入口点。。
为什么叫原始入口点?因为程序有壳,把程序原来的真实的入口点隐藏了,被壳的入口点取代了。所以就叫原始入口点。
原始入口点在哪儿?我刚才说过了,首先是有壳程序,没壳程序不存在寻找OEP,没壳也不叫OEP,没壳就不存在OEP这个词。
那么有壳程序怎么找OEP的正确位置?那你就需要通过多种方法让程序在解码后跳向OEP时,停留下来。
当然有一种情况是无法正常停留在OEP准确位置的,那就是stolen code,我就不多讲了,如果这样延伸下去就讲不完了。
请注意,下次这种问题到悬赏区提问,当前这个问题并不是百集教程中的问题。也不要到水区提问,你的水区问题我也魄力为你解答了。
。。这个真是感谢楼主分享了。解答了我的困惑,,顶起来 你说这么多总结出来就两点,最简单的比喻:
为什么人会有手?
手到底长在人的哪个位置?
那么程序跟人一样,你一定要追求个明明白白,到头来你自己都懵逼,不过你真的想要了解这些详细,我个人觉得你可以去看看什么pe结构 或者加密与解密之类的东西
看完以后我保证你会一脸懵逼,然后你就不会再想这个为什么的问题,因为这不是十万个为什么,所以如果对于这个初学者来说 你真的不要纠结这个手是怎么来的,你只需要知道手能帮你做很多事就行,,,我们是要追求原理,但是你越是追求的太深越会懵逼,就跟探寻宇宙一样,,这个不是一朝一夕能完成的,既然前人已经植树,后人能乘凉就行,, 液絡朦涳 发表于 2016-6-17 12:33
。。这个真是感谢楼主分享了。解答了我的困惑,,顶起来
恒大误解我的意思了。我看到楼主的问题,第一个已经解决了。然后恒大你回答的第二个,我都看了。顺便就把我的问题也解决了。虽然楼主是个提问帖,但是自己说明也很详细,我也学到了东西,我是这个意思, 本帖最后由 蓝色贝雷帽 于 2016-6-17 14:57 编辑
液絡朦涳 发表于 2016-6-17 14:09
恒大误解我的意思了。我看到楼主的问题,第一个已经解决了。然后恒大你回答的第二个,我都看了。顺便就把 ...
@液絡朦涳 和 @Shark恒 老师都没错,在一问一答过程中,不仅解决了我这个小白的困惑,很多小白的疑问也都解决了。我把第一个问题放这,这也是我的初衷。
十分感谢恒大老师,如果没有你的零基础教程,我都没机会去看那些代码。N年前看过VB6,因为我是文科生,对其中的数学逻辑难倒了,放弃了。直到恒大老师的出现,才有了这个机会,真心的感谢你啊!不过我学的英语,对看代码会有帮助,呵呵。 太专业了吧!!萌新表示一脸蒙逼 偶然翻到这里,老大解释的不错,好好学习 这是什么啊?不太认同 因为如果在水区发帖,会扰乱社区秩序! 和楼主差不多的问题,看看 ,谢谢各位大神
页:
[1]
2