【牢骚贴】关于攻和防的不同观点。
{注释:本贴中,攻=指破解逆向技术,防=指保护反调试技术。}
今天,遇到一个“中国式”专家,说“做攻的人,不会做防,做防的人,不会攻。
因为二者是不同的。你只能选择做攻和防,其中之一。”,
话不投机,不欢而散,搞的我心情很不爽,所以在此发点牢骚。
本菜鸟申明:跟中国式专家持相同意见的人,请飘过。
诚然,在权威面前,攻防有差异,在于:攻和防的基础性理论思想,有很大不同。
也就是说,整天想着攻方法的人想不出很好防的解决办法,反之亦然。这个观点我是认同的。
但是,我是在山寨中国啊,在“复制”中求发展。故,有了下面3个不同看法。
观点一:做个好的防,必须学会攻。
那些个,做各种Protect系统,不会破解,不会逆向,不懂攻,就把防做出来了吗?
不管你信不信,我是不信。
如果可以做出来,那, 为什么TP,ZP,HP,PP,GPK,HS,Xtrap,Apex,等等都跟最早出来的 韩国NP如此相似呢。
无非就是:
驱动层:多重SSDT,EAT Hook,IAT Hook,Inline Hook,Object劫持,Timer,等等。
三环:破坏PE头,偷走OEP,小花,SMC,破坏导入表,Crc校验,清断点,等等。
以及vm一大堆。
不会攻,那么为什么大部分Protect系统都在用这些技术,难道是做防的人全部都想一块去了?
我看未必。
还不是用攻的手法山寨别人的Protect,吸取了点经验,学习一下,所以才导致大家都大同小异了。
做防的人,用“攻”的手段,学习别人的东西,从而达到自己产品的不断提高和完善,我觉得很正常啊。
所以,我的观点:要想做好防就必须学会攻。
*各位做Protect系统的大神们,本菜鸟,不可否认,各种Protect系统也有自己的独到之处。
观点二:有了攻,就会防。
我逆向了穿山甲,吃透了它的保护原理,那么,写个山寨的穿山甲,似乎只是个体力活而已。
我攻了PP,写一枚驱动级的文件保护系统,也不难吧。早期的PP,就是3个Hook而已,nt!NtOpenProcess ,
nt!NtReadVirtualMemory ,nt!NtWriteVirtualMemory。 再加个NtCreateFile,那一个文件保护系统就出来了。
所以说,有了攻,就可以学会别人的防。
观点三:攻防不分家。
我大部分时间在做商业化的事情,都在做开发,而不是研发。
因为山寨中国的大环境下,整天赶时间做商业产品,而不是在研究基础的,理论的设计思想,
根本谈不上攻防有很大差别。
那些个需要有“很大差别”的事情,都是老外在研究,我只需要山寨即可,吃饭要紧的啊。
再说了,开锁匠,不了解锁,能把锁打开吗?
做防的人,不懂攻,能做好防吗?都不知道别人攻哪里,防个串串啊。
做攻的人,不懂防,能把别人攻下来,那不是个奇葩吗。
所以,攻防不可分家,有攻就有防,有防就得攻。
综上三个观点,我不是权威人士,不是专家,攻防都得吃下去。“专家”让我只能选择其中之一,我的感觉就是在扯淡。
{注释:本贴中,攻=指破解逆向技术,防=指保护反调试技术。}
今天,遇到一个“中国式”专家,说“做攻的人,不会做防,做防的人,不会攻。
因为二者是不同的。你只能选择做攻和防,其中之一。”,
话不投机,不欢而散,搞的我心情很不爽,所以在此发点牢骚。
本菜鸟申明:跟中国式专家持相同意见的人,请飘过。
诚然,在权威面前,攻防有差异,在于:攻和防的基础性理论思想,有很大不同。
也就是说,整天想着攻方法的人想不出很好防的解决办法,反之亦然。这个观点我是认同的。
但是,我是在山寨中国啊,在“复制”中求发展。故,有了下面3个不同看法。
观点一:做个好的防,必须学会攻。
那些个,做各种Protect系统,不会破解,不会逆向,不懂攻,就把防做出来了吗?
不管你信不信,我是不信。
如果可以做出来,那, 为什么TP,ZP,HP,PP,GPK,HS,Xtrap,Apex,等等都跟最早出来的 韩国NP如此相似呢。
无非就是:
驱动层:多重SSDT,EAT Hook,IAT Hook,Inline Hook,Object劫持,Timer,等等。
三环:破坏PE头,偷走OEP,小花,SMC,破坏导入表,Crc校验,清断点,等等。
以及vm一大堆。
不会攻,那么为什么大部分Protect系统都在用这些技术,难道是做防的人全部都想一块去了?
我看未必。
还不是用攻的手法山寨别人的Protect,吸取了点经验,学习一下,所以才导致大家都大同小异了。
做防的人,用“攻”的手段,学习别人的东西,从而达到自己产品的不断提高和完善,我觉得很正常啊。
所以,我的观点:要想做好防就必须学会攻。
*各位做Protect系统的大神们,本菜鸟,不可否认,各种Protect系统也有自己的独到之处。
观点二:有了攻,就会防。
我逆向了穿山甲,吃透了它的保护原理,那么,写个山寨的穿山甲,似乎只是个体力活而已。
我攻了PP,写一枚驱动级的文件保护系统,也不难吧。早期的PP,就是3个Hook而已,nt!NtOpenProcess ,
nt!NtReadVirtualMemory ,nt!NtWriteVirtualMemory。 再加个NtCreateFile,那一个文件保护系统就出来了。
所以说,有了攻,就可以学会别人的防。
观点三:攻防不分家。
我大部分时间在做商业化的事情,都在做开发,而不是研发。
因为山寨中国的大环境下,整天赶时间做商业产品,而不是在研究基础的,理论的设计思想,
根本谈不上攻防有很大差别。
那些个需要有“很大差别”的事情,都是老外在研究,我只需要山寨即可,吃饭要紧的啊。
再说了,开锁匠,不了解锁,能把锁打开吗?
做防的人,不懂攻,能做好防吗?都不知道别人攻哪里,防个串串啊。
做攻的人,不懂防,能把别人攻下来,那不是个奇葩吗。
所以,攻防不可分家,有攻就有防,有防就得攻。
综上三个观点,我不是权威人士,不是专家,攻防都得吃下去。“专家”让我只能选择其中之一,我的感觉就是在扯淡。