• winafl 工具的编译


    至于 winafl 是啥,上网找,有的是说法

    这里只说明编译方法。

    1:先去github,拿 winafl 代码

    GITHUB 地址:https://github.com/googleprojectzero/winafl

    git命令:git clone --recursive https://github.com/googleprojectzero/winafl

    需要注意的是,一定要把相关的引用项目一起给下载下来

    2:编译 winafl 的支持库 DynamoRIO。

    具体编译方法,去看这里

    https://www.cnblogs.com/suanguade/p/13388818.html

    注意:这里其实不编译它也没问题,因为这个插桩库不是必须的,

    但是如果要做fuzz,那么就必须,因为fuzz的关键模块 winafl.dll 是需要这个库的

    3:打开cmake 配置项目

    设置好目录之后,先configure

    configure之后,在generate 之前,需要补一个环境变量,就是红框里面的。

    路径里面必须要求带有如下文件:DynamoRIOConfig.cmake

    之后就可以正常生成项目了。

    4:可以用vs2017打开了,开始编译

    一共就十来个项目,还算上测试项目,轻松编译完。

    至此,就都编译完了。

    最主要的工具有两个,

    1:afl-fuzz.exe

    2:winafl.dll

    测试方法:

    1:先使用IDA查询 test_gdiplus.exe 程序中main 函数的偏移

    偏移是 0x1680

    2:使用如下命令对 test_gdiplus.exe 做fuzz

    afl-fuzz.exe -i in -o out -D D:vs2017dynamorio-masterdynamorio-masterProjectin32 -t 20000 -- -coverage_module gdiplus.dll -coverage_module WindowsCodecs.dll -fuzz_iterations 5000 -target_module test_gdiplus.exe -target_offset 0x1680 -nargs 2 -- test_gdiplus.exe @@
    

      

    3:程序开始运行了,挺难看的,说明编译没问题

    至于怎么用,随便去找找较成吧

  • 相关阅读:
    LInux常用命令:总结
    SpringBoot声明式事务(转)
    连接linux客户端工具
    查看servlet 3.0文档方法
    通过spring.io找spring历史版本
    归并排序(比希尔还要快)
    快速排序(比希尔排序还要快)
    希尔排序(交换式和移位式)
    插入排序
    选择排序(时间复杂度O(n^2))
  • 原文地址:https://www.cnblogs.com/suanguade/p/14453587.html
Copyright © 2020-2023  润新知