Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

用于逻辑的暴力反编译器, 用于将逻辑的一系列 jump 及部分 @counter 重建为结构化控制流, 例如 break 、while 、if-else

工作原理

   +----------+  解析为行表示   +---------+  分解为行组合   / +---------+ \
   | 输入逻辑 | --------------> | 第 0 行 | --------------> | | 第 0 行 | |
   +----------+                 | 第 1 行 |                 | | 第 1 行 | |
            将每个结果再次输入  | 第 2 行 |                 | | 第 2 行 | |
             仅输入质量较优的   | 第 3 行 |                 | | 第 3 行 | |
          /-------------------> |   ...   |                 | |   ...   | |
          |                     +---------+                 | +---------+ |
          |                                                 | +---------+ |
 /    skip(jump, ..., label)  \                             | | 第 1 行 | |
 | dowhile(label, ..., jump)  |   尝试在每个组合上匹配模式  | | 第 2 行 | |
 |   while(jump, label, ...,  |     如果成功匹配, 则归约    | | 第 3 行 | |
 |         jump, label)       | <-------------------------- | |   ...   | |
 |  jumpor(jump, jump)        |                             | +---------+ |
 | jumpand(jump, jump, label) |                             | +---------+ |
 \            ...             /                             | | 第 2 行 | |
                                                            | | 第 3 行 | |
                                                            | |   ...   | |
                                                            | +---------+ |
                                                            | +---------+ |
                                                            | | 第 3 行 | |
                                                            | |   ...   | |
                                                            | +---------+ |
                                                            | +---------+ |
                                                            | |   ...   | |
                                                            \ +---------+ /