能力值:
( LV12,RANK:450 )
26 楼
学脱壳或破解,如果只是看别人给出方法依葫芦画瓢,是不可能有什么大长进的。记得小时候读过的杨式太极拳谱,前面有这样一句话:朝思暮想,一朝交手,乃门外汉也。
学脱壳或破解,需要有许多各方面的基础知识,最起码你要能熟练的运用汇编语言,你要具备操作系统方面的许多知识,你要能理解你破解程序所使用的语言,否则就如盲人骑瞎马,就算你按照别人给出的方法脱或破解了某些程式,那也不过是瞎猫逮到死耗子,当壳略有改变时,你就抓瞎。
比如上面的问题“但不明白的是:00A65F26是如何得到的?谢谢.”,就是可运行程序的文件头结构,Fly大侠已经一再说明,你还是不能明白,这就是基础问题了。
再比如前几天看到有人提问,如何判断有没加壳,其实不管用那一种语言开发的程序,起入口都有特定的模式,其PE文件头的段表或段表的名称都是有一定规律的。不管是反汇编或用Debug调入程序,看一下程序启动部分的代码,一般都能知道是否加壳,如果你对各种壳的启动代码熟悉,再参照PE文件头中各段表的名字,次序,一般也能知道是那一种壳,最起码可以知道有没有加壳,这也是基础问题了。
说句难听的,连PE文件头都不知道,不如回家种红薯。
我并没有打击各位朋友的意思,我是希望各位有志学习脱壳和破解的朋友,首先要练内功,有意识的提高自己各方面的修养。冰冻三尺非一日之寒,要想达到Fly大侠的水平,绝非跟在后面画瓢画的出来的,也不是按照Fly大侠的方法做成功了就代表你学会了,你可以自问,拿到一个新壳,你能自己找到入口点吗?你能自己知道怎样修复吗?再简单一点,就是这个壳,过几天,等你忘的差不多了,不看Fly大侠的破文,能自己独立完成吗?
要想成为真正的高手,最起码你要能做到:
1、精通汇编,对其他高级语言能熟练运用。
2、熟悉各类反跟踪的手段,各类异常。
3、基本API函数。
4、熟悉各类基本算法。
5、查找资料的能力(当然最起码能看懂英文资料)。
6、分析问题和解决问题的能力。
这6点其实是互相联系的,(除了第4项是比较独立的)如果你能称的上精通汇编语言,可以说对其他高级语言学起来举一反三,易如反掌。如果你能称的上精通汇编语言,自然就熟悉API函数,自然就熟悉各类异常了(高级语言写程序异常类一般都由别人代劳了,用汇编就不同了,一切都要靠自己)其中最重要的就是第5、6项了,你必须具备快速查找资料的能力,其实这里许多朋友提的问题,前人都已经回答过了,只要自己有心,根本就不需要问。
我这里只是简单的列了几项,其实远不止这些,所以就加了第6条。
另外说句打击大家的话,其实不管学习什么东西,悟性(即天分)是很重要的,虽说笨鸟先飞早入林,如果鸟笨的连方向都没有了,那是入不了林的。
上面的第1条成了许多朋友的拦路虎,很多朋友认为汇编语言不好学,认为自己悟性不够,其实许多时候学不好汇编并不代表这个人笨,往往事实正好相反,我曾经教过别人学汇编语言,我对他们说,“你门学不好汇编不是太笨了,而是太聪明了”。大家要知道,我们人类的思维能力非常了不起,比如一个儿童,看电影,会问,“爸爸这人是好人坏人”,我想很多父亲可能很难回答这个问题,为什么?因为许多人是不能用一个好或坏来定义的,他可能是70%的坏人加30%的好人,如果这个儿童去学汇编,肯定比他父亲强,因为汇编的思维方式就是好人坏人。所以在学习汇编语言时你要回到童年,多想想什么是好人坏人的问题,也许你会发现,汇编语言原来这么容易学。
那么怎样才算学好汇编了,学英文的朋友都知道,当你能用英文来思考问题时,那么你的英文就真正的过关了。同样,如果你能用汇编语言来思考你要解决的问题,那么你的汇编就过关了。很难?难不难就看你是不是有心人了,多锻炼就习惯成自然了。(等你学好了汇编语言,你可不要骂我,我怎么感觉越来越笨了,不,我说,是回到童年了)
能力值:
( LV8,RANK:130 )
27 楼
楼上的金玉良言啊
能力值:
( LV2,RANK:10 )
28 楼
最初由 fly 发布 转自:RCE Messageboard's Regroupment 作者:Admiral ArmInline is an Armadillo unpacking tool designed specifically to deal with the many antidump features available with private builds of Armadillo 4.x. Features: ........
做得好,这个教程,支持
能力值:
( LV9,RANK:3410 )
29 楼
gzgzlxg兄的话大家可以多学习
基础知识需要自己去掌握,别人无法替代
我也一直在努力学习基础知识
能力值:
( LV6,RANK:90 )
30 楼
4、Start Of Spliced Code 在程序中查找Code Splicing的地方。 0040C53C E8 00250000 call 0040EA41 0040C541 E9 4A9E0603 jmp 03476390 //处理Code Splicing 此区段的开始地址=03470000
But it does'nt mention how to find the position to the Code Splicing....
能力值:
( LV9,RANK:3410 )
31 楼
最初由 仙剑太郎 发布 But it does'nt mention how to find the position to the Code Splicing....
1、IDA反汇编后慢慢向下看,一般都能看到
2、修复输入表后载入OllyDBG,看出错的地方
方法在于发现,你可以发现更好的方法