-
-
[原创]软件逆向工程角度类(hu)比(che)基因编辑婴儿
-
发表于:
2018-12-3 08:27
2377
-
[原创]软件逆向工程角度类(hu)比(che)基因编辑婴儿
按照这个节奏下去我是要成为茶余饭后板块资深扯淡人士了么(逃。。。
最近在某个师傅的朋友圈看到了这么一张图
但是个人感觉他的这个类比并不严谨,下面我会用自己的见解通过软件逆向来类比一下。。
首先第一点,并没有源代码
我们拿到的,或者说已有的“数据”,只是由AT、CG碱基对组成的DNA。因为一定是成对出现,所以刚好是二进制。而且换个角度,我们拿到的是一个已经能“运行”的工程,而不是“有注释有变量名的源代码”。那这就相当于我们做逆向的时候拿到的二进制程序,所以这并不算源码。
修改DNA
这其实就相当于我们做逆向时候的patch,比方说OD的patch功能。
相关研究信息显示,CCR5△32 缺失的个体拥有正常的免疫功能和炎症反应,能对多种病毒感染表现出显著的抵抗力。也就是说,通过对 CCR5 进行基因编辑或将有效阻断霍乱、天花或艾滋病的感染。——新浪科技
现在是已知一片基因,当它没有CCR5△32
的时候,能有抵抗力。这就好比在做破解的时候,遇到一个jnz
,已知ZF=1
可以走入正确的序列注册路径,ZF=0
会进入错误的路径,然后我们直接把这个jnz
patch成nop。这就是那个老哥干的事情的原理的类比,然而做过软件逆向的人都知道,这样搞是很有可能出岔子的。。。
CRISPR
这个是基因编辑的方法,目前基因工程还没有能想OD这样直接在某个特定位置上编辑的技术,所以他们能做的是识别某个特定基因片段,换句话说就类似于特征码,然后编辑所有长成这样的片断。
但是这有一个问题,就是会带来脱靶,我现在是想编辑CCR5,但怎么保证起到其他作用的一些其他片断没有一样的片断呢?比方说,这里有个jnz short
,字节码75 22
,那么除了注册码验证的关键跳转,我怎么知道程序其他地方没有一样的数据呢?修改了是不是就会有不可预料的后果,这就是第二个问题。
总之,在没有解决这些相关问题的时候,直接在人类身上做实验是极其不道德的。在程序里改两个字节跑一跑最多让程序出segmentation fault,而在人类身上做这种事情就很有可能毁了别人的一生。最后,我想说,以上内容纯属一个没学过生物而是通过YouTube和bilibili的科普视频学习然后自己尝试理解的计算机系学生写出来的,所以要是真的有生物大佬就不要来喷我了(逃。。。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)