-
-
[求助]如何有效地逆向分析一段代码的逻辑
-
发表于:
2010-1-20 17:11
5018
-
问的问题可能有点小白,希望有经验的能帮助一下
现在试图查找一个软件的漏洞,可能不像破解那样子有导向性的分析代码,而是需要对某段程序的逻辑了解得比较清晰。由于其中调用的函数为自定义函数,没有名字,用Hey-Rays反编译后传入的参数还是不知道类型,这种情况下如何理解程序逻辑?并且能尽快定位可能漏洞的位置?(c/c++)
觉得可以尝试的方法有:
1)针对要分析的函数f(),首先查看传入它的参数,在调用f()的各个调用处,推测出各个参数的类型,以及该函数的作用;
2)查看该函数f()内有库函数调用的地方,根据库函数的参数类型来推测f()的参数类型,其实1)中也需要用到;
3)首先找到该函数内危险函数的调用位置,然后逆向分析可能调用这些危险函数的路径;
4)通过fuzzing得到一些异常数据,根据错误提示定位出错的位置,进而理解该函数的处理逻辑。
有没有更好的方法呢?因为第一第二种方法,存在的一个问题是,如果库函数的调用比如少的话,分析起来就比较困难了;第三种方法的问题是,可能可疑漏洞定位比较快,但是缺乏全局的分析,不能断定是不是真的漏洞;第四种方法,当然是最合适不过了,但fuzzing报错一般比较初略,很难得到有导向性的结果。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!