前几天分析一个程序,里面有一段代码为了对抗逆向,不仅把信息经过编码后存储,而且还原算法还是用 SIMD 指令写的。很多熟练的漏洞挖掘工能用大脑模拟执行一些代码,但 SIMD 真不好办。人类工作记忆的缓存太小,至少我没办法模拟一个进行矩阵运算的函数。所以过去对这种就只能动态调试。
于是我把那段代码的反编译结果丢给大模型,让大模型还原成高可读性的代码,然后再给出一份不用 SIMD 指令实现该算法的代码。大模型给出的两段代码都可以直接编译成功,而且执行结果都和原程序中的完全一样。
更令人惊讶的是,那段代码里其实还调用了别的函数,而我当时忘记把那些函数交给大模型了。但大模型竟然猜出了那些函数应该是什么功能,自己凭空补写出来了。
在惊讶之余,我仔细看了一下那段代码,又进行了相关信息检索,最后的结论是:一个熟练的程序员,又事先了解相关背景知识,确实可能猜出那些函数的功能。所以这并不是一个灵异的事情,但世界上没有任何程序员可能具有所有背景知识。
世界范围内基础程序员岗位的收缩,可能很快就会开始了。
于是我把那段代码的反编译结果丢给大模型,让大模型还原成高可读性的代码,然后再给出一份不用 SIMD 指令实现该算法的代码。大模型给出的两段代码都可以直接编译成功,而且执行结果都和原程序中的完全一样。
更令人惊讶的是,那段代码里其实还调用了别的函数,而我当时忘记把那些函数交给大模型了。但大模型竟然猜出了那些函数应该是什么功能,自己凭空补写出来了。
在惊讶之余,我仔细看了一下那段代码,又进行了相关信息检索,最后的结论是:一个熟练的程序员,又事先了解相关背景知识,确实可能猜出那些函数的功能。所以这并不是一个灵异的事情,但世界上没有任何程序员可能具有所有背景知识。
世界范围内基础程序员岗位的收缩,可能很快就会开始了。