0x05_初级逆向
-
不可破解的程序
-
如果直接将密钥写在文件中与用户输入对比,人们可以轻松地通过提取二进制文件中的字符串获取到密钥。因此,最好不要把安全密钥放在(代码)里面,而是通过编写一个算法密钥来完成。
-
即使写了一个很复杂的密钥生成算法(Keygen),只要足够耐心,也有找到密钥的机会。对于二进制文件来说,一般的解析工具必须通过解析器读取和解析可执行文件才能向用户提供可靠信息。而每个工具实现解析的方式都有所区别,所以对于同一个二进制文件输入,Linux可能正常执行,而gdb或者radare会报错。我们可以通过fuzzing的方法来生成这样的文件。LiveOverflow采用的是一种非常简单的方法:利用python修改原文件中任意一个位置的字节值,然后观察Linux执行输出、gdb执行输出、radare执行输出。如果Linux可以执行而gdb和radare报错,那么就说明生成的这个文件是满足要求的。
-