Sploitus

Exploit for frelatage

kitploit ┬╖ 2026-09-05

Exploit Code

MARKDOWN342 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ROG3RSM1TH-FRELATAGE
![](https://raw.githubusercontent.com/Rog3rSm1th/Frelatage/main/doc/frelatage_logo.gif?raw=true)   
`pip3 install frelatage`  
  
![](https://static.pepy.tech/badge/frelatage) ![](https://img.shields.io/badge/python-%3E=_3.6-green.svg) ![](https://img.shields.io/badge/License-MIT-blue.svg) ![](https://img.shields.io/pypi/v/frelatage?label=release) ![](https://img.shields.io/twitter/follow/Rog3rSm1th?label=Rog3rSm1th&style=social)   
_рдлрд╝рдЬрд╝рд░ рдЬрд┐рд╕рдХреА рджреБрдирд┐рдпрд╛ рд╣рдХрд╝рджрд╛рд░ рд╣реИ_

рд╕реНрдерд╛рдкрдирд╛ | рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ | рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ | Frelatage рдХрд╛ рдЙрдкрдпреЛрдЧ | рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

![Frelatage рдкреНрд░рджрд░реНрд╢рди](https://raw.githubusercontent.com/Rog3rSm1th/Frelatage/main/doc/frelatage_demo.gif?raw=true)

Frelatage рдПрдХ рдХрд╡рд░реЗрдЬ-рдЖрдзрд╛рд░рд┐рдд Python рдлрд╝рдЬрд╝рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Python рдХреЛрдб рдХреЛ рдлрд╝рдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Frelatage рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреНрдп рдлрд╝рдЬрд╝рд░реНрд╕ рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА, рдЬрд┐рдирдореЗрдВ AFL/AFL++, Atheris рдФрд░ PythonFuzz рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЗрди рдлрд╝рдЬрд╝рд░реНрд╕ рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП рдЙрдкрдХрд░рдг рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ Python рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдлрд╝рдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

**рдЕрд╕реНрд╡реАрдХрд░рдг** : рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрд▓реНрдлрд╛ рдЪрд░рдг рдореЗрдВ рд╣реИ рдФрд░ рдЕрднреА рднреА рдХрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕рдордп Frelatage рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

## рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

Python 3

## рд╕реНрдерд╛рдкрдирд╛

#### pip рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд)

root@kitploit:~
    
    
    pip3 install frelatage
    

#### рдпрд╛ рд╕реНрд░реЛрдд рд╕реЗ рдмрдирд╛рдПрдБ

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рддред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ frelatage рд░реЗрдкреЛ рд╕реЗ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдХреЛ рдХреНрд▓реЛрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

root@kitploit:~
    
    
    # рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Frelatage рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ Frelatage рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
    bash <(wget -q https://raw.githubusercontent.com/Rog3rSm1th/Frelatage/main/scripts/autoinstall.sh -O -)
    

## рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Frelatage рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдкреАрдЫреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред рдПрдХ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдЪрдХреНрд░ рдХреА рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЗрд╕ рдЖрд░реЗрдЦ рдХреЗ рд╕рд╛рде рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

root@kitploit:~
    
    
    graph TB
    
        m1(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди 1) --> |input| function(рдлрд╝рдЬрд╝реНрдб рдлрд╝рдВрдХреНрд╢рди)
        m2(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди 2) --> |input| function(рдлрд╝рдЬрд╝реНрдб рдлрд╝рдВрдХреНрд╢рди)
        mplus(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди ...) --> |input| function(рдлрд╝рдЬрд╝реНрдб рдлрд╝рдВрдХреНрд╢рди)
        mn(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди n) --> |input| function(рдлрд╝рдЬрд╝реНрдб рдлрд╝рдВрдХреНрд╢рди)
        
        function --> generate_reports(рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ)
        generate_reports --> rank_reports(рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд░реИрдВрдХ рдХрд░реЗрдВ)  
        rank_reports --> select(рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда n рд░рд┐рдкреЛрд░реНрдЯ рдЪреБрдиреЗрдВ)
        
        select --> |mutate| nm1(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди 1) & nm2(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди 2) & nmplus(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди ...) & nmn(рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди n)
        
        subgraph рдЪрдХреНрд░ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди
        direction LR
        m1
        m2
        mplus
        mn
        end
        
        subgraph рдЕрдЧрд▓реЗ рдЪрдХреНрд░ рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди
        direction LR
        nm1
        nm2
        nmplus
        nmn
        end
         
        style function fill:#5388e8,stroke:white,stroke-width:4px

## рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ

#### рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдлрд╝рдЬрд╝ рдХрд░рдирд╛:

  * рд╕реНрдЯреНрд░рд┐рдВрдЧ
  * рдкреВрд░реНрдгрд╛рдВрдХ
  * рдлреНрд▓реЛрдЯ
  * рд╕реВрдЪреА
  * рдЯрдкрд▓
  * рд╢рдмреНрджрдХреЛрд╢



#### рдлрд╝рд╛рдЗрд▓ рдлрд╝рдЬрд╝рд┐рдВрдЧ

Frelatage рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрд╛рд╕ рдХрд░рдХреЗ рдлрд╝рдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

#### рдлрд╝рдЬрд╝рд░ рджрдХреНрд╖рддрд╛

  * рдХреЛрд░реНрдкрд╕
  * рд╢рдмреНрджрдХреЛрд╢



## Frelatage рдХрд╛ рдЙрдкрдпреЛрдЧ

#### рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдлрд╝рдЬрд╝ рдХрд░реЗрдВ

root@kitploit:~
    
    
    import frelatage
    import my_vulnerable_library
    
    def MyFunctionFuzz(data):
      my_vulnerable_library.parse(data)
    
    input = frelatage.Input(value="initial_value")
    f = frelatage.Fuzzer(MyFunctionFuzz, [[input]])
    f.fuzz()
    

#### рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдлрд╝рдЬрд╝ рдХрд░реЗрдВ

Frelatage рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдлрд╝рдЬрд╝ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рджреЗрддрд╛ рд╣реИред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ `./in`) рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреА рд╣реЛрдВрдЧреАред

рдпрджрд┐ рд╣рдо рдлрд╝рдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

root@kitploit:~
    
    
    echo "initial value" > ./in/input.txt
    

рдФрд░ рдлрд┐рд░ рдлрд╝рдЬрд╝рд░ рдЪрд▓рд╛рдПрдБ:

root@kitploit:~
    
    
    import frelatage
    import my_vulnerable_library
    
    def MyFunctionFuzz(data):
      my_vulnerable_library.load_file(data)
    
    input = frelatage.Input(file=True, value="input.txt")
    f = frelatage.Fuzzer(MyFunctionFuzz, [[input]])
    f.fuzz()
    

#### рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд╝рдЬрд╝ рдХрд░реЗрдВ (рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ)

root@kitploit:~
    
    
    import frelatage
    import my_vulnerable_library
    
    input = frelatage.Input(file=True, value="input.txt")
    
    @frelatage.instrument([[input]])
    def MyFunctionFuzz_1(data):
      my_vulnerable_library.load_file(data)
    
    @frelatage.instrument([[input]])
    def MyFunctionFuzz_1(data):
      my_vulnerable_library.load_file_but_different(data)
    # рдФрд░ рдЗрд╕реА рддрд░рд╣
    
    # рдпрд╣ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдлрд╝рдЬрд╝ рдХрд░реЗрдЧрд╛
    frelatage.Fuzzer.fuzz_all()
    

#### рдПрдХ рд╕рд╛рде рдПрдХ рдХреЛрд░реНрдкрд╕ рдореЗрдВ рдХрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХрд░реЗрдВ

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЛрд░реНрдкрд╕ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдПрдХ рдмрдбрд╝реЗ рдХреЛрд░реНрдкрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрдкрдпреЛрдЧреА) рддреЛ рдЖрдк Frelatage рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди `load_corpus` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЗрдирдкреБрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

`load_corpus(directory: str, file_extensions: list) -> list[Input]`

  * directory: рдЗрдирдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рд╕рд╛рдкреЗрдХреНрд╖ рдкрде), рдЬреИрд╕реЗ `./`, `./images`
  * file_extensions: рдХреЛрд░реНрдкрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА, рдЬреИрд╕реЗ `["jpeg", "gif"]`, `["pdf"]`



root@kitploit:~
    
    
    import frelatage
    import my_vulnerable_library
    
    def MyFunctionFuzz(data):
      my_vulnerable_library.load_file(data)
      my_vulnerable_library.load_file(data2)
    
    # ./in рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░реЗрдВ
    corpus_1 = frelatage.load_corpus(directory="./")
    # ./in/images рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА .gif/.jpeg рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХрд░реЗрдВ
    corpus_2 = frelatage.load_corpus(directory="./images", file_extension=["gif", "jpeg"])
    
    f = frelatage.Fuzzer(MyFunctionFuzz, [corpus_1, corpus_2])
    f.fuzz()
    

#### рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд╕рд╛рде рдлрд╝рдЬрд╝ рдХрд░реЗрдВ

рдЖрдк рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ `./dict`) рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

#### рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдлрд╝рдЬрд╝рд┐рдВрдЧ

рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкрд░реАрдХреНрд╖рдг рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рдХрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдорд╛рди рдЗрдирдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдФрд░ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдВрддрд░ рджреЗрдЦрдХрд░ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИред рдЖрдкрдХреЛ рдпрд╣рд╛рдБ `json` рдФрд░ `ujson` рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде Frelatage рдХреЗ рд╕рд╛рде рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдЧрд╛ред

#### рдЙрджрд╛рд╣рд░рдг

рдЖрдк рдЙрджрд╛рд╣рд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рдЬрд╝рд░реНрд╕ рдФрд░ рдХреЛрд░реНрдкрд╕ рдХреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

  * рдмрдЧ рдФрд░ рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП Frelatage рдХреЗ рд╕рд╛рде Pillow рдХреЛ рдлрд╝рдЬрд╝ рдХрд░рдирд╛



## рдХреНрд░реИрд╢ рд░рд┐рдкреЛрд░реНрдЯ

рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░реИрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ `./out`) рдореЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ: `id:<рдХреНрд░реИрд╢ ID>,err:<рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░>,err_pos:<рддреНрд░реБрдЯрд┐>,err_file:<рддреНрд░реБрдЯрд┐ рдлрд╝рд╛рдЗрд▓>`ред

рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд╣реИ:

root@kitploit:~
    
    
        тФЬтФАтФА out
        тФВ   тФЬтФАтФА id:<рдХреНрд░реИрд╢ ID>,err:<рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░>,err_file:<рддреНрд░реБрдЯрд┐ рдлрд╝рд╛рдЗрд▓>,err_pos:<рддреНрд░реБрдЯрд┐ рд╕реНрдерд╛рди>
        тФВ       тФЬтФАтФА message
        тФВ       тФЬтФАтФА input
        тФВ       тФЬтФАтФА 0
        тФВ            тФЬтФАтФА <inputfile1>
        тФВ       тФЬтФАтФА ...
        тФВ   тФЬтФАтФА ...
    

рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░реИрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдХ `message` рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрддрд╛ рд╣реИред

## рдХрд╡рд░реЗрдЬ рд╡реГрджреНрдзрд┐ рд░рд┐рдкреЛрд░реНрдЯ

рдкреНрд░рддреНрдпреЗрдХ рдХрд╡рд░реЗрдЬ рд╡реГрджреНрдзрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╡рд░реЗрдЬ рдлрд╝реЛрд▓реНрдбрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ `./cov`) рдореЗрдВ `coverage_<ID>` рдирд╛рдордХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреНрд░реИрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд░реВрдк рдореЗрдВ рд╣реЛрддреА рд╣реИред

#### рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкрдврд╝реЗрдВ

рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдХреЛ pickle рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ `<report_folder>/input` рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПред рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдХреНрд░рд┐рдпрд╛ `frelatage-report` рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

root@kitploit:~
    
    
    $ frelatage-report input
    

## рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

Frelatage рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

#### рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг:

root@kitploit:~
    
    
    export FRELATAGE_DICTIONARY_ENABLE=1 &&
    export FRELATAGE_SAVE_NEW_COVERAGE=1 &&
    export FRELATAGE_TIMEOUT_DELAY=2 &&
    export FRELATAGE_INPUT_FILE_TMP_DIR="/tmp/frelatage" &&
    export FRELATAGE_INPUT_MAX_LEN=4096 &&
    export FRELATAGE_MAX_THREADS=8 &&
    export FRELATAGE_MAX_STAGES=1000000 &&
    export FRELATAGE_MAX_CYCLES_WITHOUT_NEW_PATHS=5000 &&
    export FRELATAGE_INPUT_DIR="./in" &&
    export FRELATAGE_DICTIONARY_DIR="./dict" &&
    python3 fuzzer.py
    

#### рдлрд╝рдЬрд╝рд░ рдХреЛ рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рдирд╛

root@kitploit:~
    
    
    import frelatage 
    
    def myfunction(input1_string, input2_int):
        pass
    
    input1 = frelatage.Input(value="initial_value")
    input2 = frelatage.Input(value=2)
    
    f = frelatage.Fuzzer(
        # рд╡рд╣ рд╡рд┐рдзрд┐ рдЬрд┐рд╕реЗ рдЖрдк рдлрд╝рдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
        method=myfunction,
        # рдХреЛрд░реНрдкрд╕
        corpus=[[input1], [input2]],
        # рдзрд╛рдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
        threads_count=8,
        # рдЕрдкрд╡рд╛рдж рдЬрд┐рди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
        exceptions_whitelist=(OSError),
        # рдЕрдкрд╡рд╛рдж рдЬрд┐рди рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
        exceptions_blacklist=(),
        # рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдВрдЧреА
        output_directory="./out",
        # рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдБ рдХрд╡рд░реЗрдЬ рд╡реГрджреНрдзрд┐ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдВрдЧреА
        coverage_directory="./cov",
        # рд╕рд╛рдЗрд▓реЗрдВрдЯ рдореЛрдб рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
        silent=False,
        # рдЕрдирдВрдд рдлрд╝рдЬрд╝рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
        infinite_fuzz=False
    )
    f.fuzz()
    

## рдЬреЛрдЦрд┐рдо

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХрдИ рдЕрдиреНрдп рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓-рдЧрд╣рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рди, рдлрд╝рдЬрд╝рд┐рдВрдЧ рдЖрдкрдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ OS рдкрд░ рджрдмрд╛рд╡ рдбрд╛рд▓ рд╕рдХрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:

  * рдЖрдкрдХрд╛ CPU рдЧрд░реНрдо рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╢реАрддрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрджрд┐ рд╢реАрддрд▓рди рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдпрд╛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ CPU рдХреА рдЧрддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдо рдЙрдкрдпреБрдХреНрдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (рд▓реИрдкрдЯреЙрдк, рд╕реНрдорд╛рд░реНрдЯрдлреЛрди, рдЖрджрд┐) рдкрд░ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдХреБрдЫ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

  * рд▓рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рд╣рдерд┐рдпрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреЛ рдХрдмрд╛рдбрд╝ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред Frelatage рдмреБрдирд┐рдпрд╛рджреА рдореЗрдореЛрд░реА рд╕реАрдорд╛рдПрдБ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рд╕рдВрднрд╛рд╡рд┐рдд рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдирд╣реАрдВ рд░реЛрдХ рд╕рдХрддрд╛ред рдирд┐рдЪрд▓реА рдкрдВрдХреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрди рд╕рд┐рд╕реНрдЯрдореЛрдВ рдкрд░ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдБ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИред

  * рдлрд╝рдЬрд╝рд┐рдВрдЧ рдореЗрдВ рдлрд╝рд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрд░рдмреЛрдВ рд░реАрдб рдФрд░ рд░рд╛рдЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдзреБрдирд┐рдХ рд╕рд┐рд╕реНрдЯрдореЛрдВ рдкрд░, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рднрд╛рд░реА рдХреИрд╢реНрдб рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд╛рдлреА рдорд╛рдореВрд▓реА "рднреМрддрд┐рдХ" I/O рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрдИ рдХрд╛рд░рдХ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рдореАрдХрд░рдг рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░реЗрд╢рд╛рдиреА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдЖрдкрдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ; рдмрд╣реБрдд рднрд╛рд░реА I/O рдХреЗ рд╕рд╛рде, рдХрдИ HDD рдФрд░ SSD рдХреА рдЙрдореНрд░ рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИред

Linux рдкрд░ рдбрд┐рд╕реНрдХ I/O рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ 'iostat' рдХрдорд╛рдВрдб рд╣реИ:




root@kitploit:~
    
    
        $ iostat -d 3 -x -k [...рд╡реИрдХрд▓реНрдкрд┐рдХ рдбрд┐рд╕реНрдХ ID...]
    

## ЁЯФ┤ рдореЗрд░реЗ рдмрд╛рд░реЗ рдореЗрдВ/рдореБрдЭреЗ рдХрд╛рдо рдкрд░ рд░рдЦреЗрдВ ЁЯЦея╕П

рдореИрдВ Rog3rSm1th рд╣реВрдБ, рдореИрдВ 21 рд╕рд╛рд▓ рдХрд╛ рд╣реВрдБ рдФрд░ рдПрдХ рдлреНрд░рд╛рдВрд╕реАрд╕реА рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╕рд╛рдЗрдмрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрд╕рд╛рд╣реА рд╣реВрдБред рдореБрдЭреЗ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ (OSINT, рдлрд╝рдЬрд╝рд┐рдВрдЧ...) рдФрд░ CTFs/Wargames рдЦреЗрд▓рдирд╛ рдкрд╕рдВрдж рд╣реИред рдореЗрд░реЗ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдпрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

тЮЬ рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рдЕрдкрдиреА рдХрд┐рд╕реА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рд╕рд╛рдЗрдмрд░ рд╕реБрд░рдХреНрд╖рд╛...) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдореБрдЭрд╕реЗ some-email@example.com рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд╛рде рдЖрдХрд▓рди рдХрд░реЗрдВрдЧреЗред

## рд╕рдВрдкрд░реНрдХ

рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА, рд╕реБрдЭрд╛рд╡, рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЛ Frelatage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдИ рдмрдЧ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рдореБрдЭрд╕реЗ some-email@example.com рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ @Rog3rSm1th рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред