├── .idea
├── .gitignore
├── deobf.iml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── LICENSE
├── README.md
├── VMEngine.py
├── Vm
├── BinjaAst.py
├── CONSTS.py
├── VMGlobalData.py
├── VmExploration.py
├── VmState.py
├── __init__.py
├── __pycache__
│ ├── BinjaAst.cpython-311.pyc
│ ├── CONSTS.cpython-310.pyc
│ ├── CONSTS.cpython-311.pyc
│ ├── VMGlobalData.cpython-310.pyc
│ ├── VMGlobalData.cpython-311.pyc
│ ├── VmExploration.cpython-310.pyc
│ ├── VmExploration.cpython-311.pyc
│ ├── VmState.cpython-310.pyc
│ ├── VmState.cpython-311.pyc
│ ├── __init__.cpython-310.pyc
│ └── __init__.cpython-311.pyc
└── doctest-output
│ ├── 100_8320FACB.gv
│ ├── 100_8320FACB.gv.pdf
│ ├── 101_13A50A15.gv
│ ├── 101_13A50A15.gv.pdf
│ ├── 102_13A50415.gv
│ ├── 102_13A50415.gv.pdf
│ ├── 103_4010015.gv
│ ├── 103_4010015.gv.pdf
│ ├── 104_13BE0617.gv
│ ├── 104_13BE0617.gv.pdf
│ ├── 105_13B60417.gv
│ ├── 105_13B60417.gv.pdf
│ ├── 106_13A10817.gv
│ ├── 106_13A10817.gv.pdf
│ ├── 107_3BE0828.gv
│ ├── 107_3BE0828.gv.pdf
│ ├── 108_8200C1CB.gv
│ ├── 108_8200C1CB.gv.pdf
│ ├── 109_8320FACB.gv
│ ├── 109_8320FACB.gv.pdf
│ ├── 10_1FB10217.gv
│ ├── 10_1FB10217.gv.pdf
│ ├── 110_3C021CB.gv
│ ├── 110_3C021CB.gv.pdf
│ ├── 111_FA50E15.gv
│ ├── 111_FA50E15.gv.pdf
│ ├── 112_6C10015.gv
│ ├── 112_6C10015.gv.pdf
│ ├── 113_13B70017.gv
│ ├── 113_13B70017.gv.pdf
│ ├── 114_FA10E17.gv
│ ├── 114_FA10E17.gv.pdf
│ ├── 115_13B30217.gv
│ ├── 115_13B30217.gv.pdf
│ ├── 116_8200C1CB.gv
│ ├── 116_8200C1CB.gv.pdf
│ ├── 117_8320FACB.gv
│ ├── 117_8320FACB.gv.pdf
│ ├── 118_3C021CB.gv
│ ├── 118_3C021CB.gv.pdf
│ ├── 119_10811.gv
│ ├── 119_10811.gv.pdf
│ ├── 11_1FB00017.gv
│ ├── 11_1FB00017.gv.pdf
│ ├── 120_FB50A17.gv
│ ├── 120_FB50A17.gv.pdf
│ ├── 121_3B30A28.gv
│ ├── 121_3B30A28.gv.pdf
│ ├── 122_FB30817.gv
│ ├── 122_FB30817.gv.pdf
│ ├── 123_FA10C30.gv
│ ├── 123_FA10C30.gv.pdf
│ ├── 124_3A40C28.gv
│ ├── 124_3A40C28.gv.pdf
│ ├── 125_8200C1CB.gv
│ ├── 125_8200C1CB.gv.pdf
│ ├── 126_8320FACB.gv
│ ├── 126_8320FACB.gv.pdf
│ ├── 127_FA50815.gv
│ ├── 127_FA50815.gv.pdf
│ ├── 128_2610995.gv
│ ├── 128_2610995.gv.pdf
│ ├── 129_3B30428.gv
│ ├── 129_3B30428.gv.pdf
│ ├── 12_E081CB.gv
│ ├── 12_E081CB.gv.pdf
│ ├── 130_20411.gv
│ ├── 130_20411.gv.pdf
│ ├── 131_BA30215.gv
│ ├── 131_BA30215.gv.pdf
│ ├── 132_BB30A17.gv
│ ├── 132_BB30A17.gv.pdf
│ ├── 133_BA20C30.gv
│ ├── 133_BA20C30.gv.pdf
│ ├── 134_BB40E17.gv
│ ├── 134_BB40E17.gv.pdf
│ ├── 135_FB60017.gv
│ ├── 135_FB60017.gv.pdf
│ ├── 136_FB10217.gv
│ ├── 136_FB10217.gv.pdf
│ ├── 137_FA10417.gv
│ ├── 137_FA10417.gv.pdf
│ ├── 138_FA30617.gv
│ ├── 138_FA30617.gv.pdf
│ ├── 139_BA10228.gv
│ ├── 139_BA10228.gv.pdf
│ ├── 13_8B0428.gv
│ ├── 13_8B0428.gv.pdf
│ ├── 140_FC21F695.gv
│ ├── 140_FC21F695.gv.pdf
│ ├── 141_BA10217.gv
│ ├── 141_BA10217.gv.pdf
│ ├── 142_3A40E28.gv
│ ├── 142_3A40E28.gv.pdf
│ ├── 143_8200C1CB.gv
│ ├── 143_8200C1CB.gv.pdf
│ ├── 144_8320FACB.gv
│ ├── 144_8320FACB.gv.pdf
│ ├── 145_BA50A15.gv
│ ├── 145_BA50A15.gv.pdf
│ ├── 146_BA20228.gv
│ ├── 146_BA20228.gv.pdf
│ ├── 148_64B.gv
│ ├── 148_64B.gv.pdf
│ ├── 149_410995.gv
│ ├── 149_410995.gv.pdf
│ ├── 14_8C0028.gv
│ ├── 14_8C0028.gv.pdf
│ ├── 151_2410017.gv
│ ├── 151_2410017.gv.pdf
│ ├── 152_BB50817.gv
│ ├── 152_BB50817.gv.pdf
│ ├── 153_BA50815.gv
│ ├── 153_BA50815.gv.pdf
│ ├── 154_7B10028.gv
│ ├── 154_7B10028.gv.pdf
│ ├── 155_8200C1CB.gv
│ ├── 155_8200C1CB.gv.pdf
│ ├── 156_8320FACB.gv
│ ├── 156_8320FACB.gv.pdf
│ ├── 157_22021CB.gv
│ ├── 157_22021CB.gv.pdf
│ ├── 158_BB30617.gv
│ ├── 158_BB30617.gv.pdf
│ ├── 159_BA50615.gv
│ ├── 159_BA50615.gv.pdf
│ ├── 15_C20028.gv
│ ├── 15_C20028.gv.pdf
│ ├── 160_8200C1CB.gv
│ ├── 160_8200C1CB.gv.pdf
│ ├── 161_8320FACB.gv
│ ├── 161_8320FACB.gv.pdf
│ ├── 162_22021CB.gv
│ ├── 162_22021CB.gv.pdf
│ ├── 163_BA50415.gv
│ ├── 163_BA50415.gv.pdf
│ ├── 164_BB60417.gv
│ ├── 164_BB60417.gv.pdf
│ ├── 165_8200C1CB.gv
│ ├── 165_8200C1CB.gv.pdf
│ ├── 166_8320FACB.gv
│ ├── 166_8320FACB.gv.pdf
│ ├── 167_22021CB.gv
│ ├── 167_22021CB.gv.pdf
│ ├── 168_1FB00028.gv
│ ├── 168_1FB00028.gv.pdf
│ ├── 169_1FB10228.gv
│ ├── 169_1FB10228.gv.pdf
│ ├── 16_C30228.gv
│ ├── 16_C30228.gv.pdf
│ ├── 170_1FB20428.gv
│ ├── 170_1FB20428.gv.pdf
│ ├── 171_1FB30628.gv
│ ├── 171_1FB30628.gv.pdf
│ ├── 172_1FB40828.gv
│ ├── 172_1FB40828.gv.pdf
│ ├── 173_1FB50A28.gv
│ ├── 173_1FB50A28.gv.pdf
│ ├── 174_1FB60C28.gv
│ ├── 174_1FB60C28.gv.pdf
│ ├── 175_1FB70E28.gv
│ ├── 175_1FB70E28.gv.pdf
│ ├── 176_23BE0028.gv
│ ├── 176_23BE0028.gv.pdf
│ ├── 177_23BF0228.gv
│ ├── 177_23BF0228.gv.pdf
│ ├── 179_23BD0415.gv
│ ├── 179_23BD0415.gv.pdf
│ ├── 17_C50428.gv
│ ├── 17_C50428.gv.pdf
│ ├── 18_C70628.gv
│ ├── 18_C70628.gv.pdf
│ ├── 19_C80828.gv
│ ├── 19_C80828.gv.pdf
│ ├── 1_DFBDFC15.gv
│ ├── 1_DFBDFC15.gv.pdf
│ ├── 20_C90A28.gv
│ ├── 20_C90A28.gv.pdf
│ ├── 21_920628.gv
│ ├── 21_920628.gv.pdf
│ ├── 22_CA0C28.gv
│ ├── 22_CA0C28.gv.pdf
│ ├── 23_C60E28.gv
│ ├── 23_C60E28.gv.pdf
│ ├── 24_930228.gv
│ ├── 24_930228.gv.pdf
│ ├── 25_6610D95.gv
│ ├── 25_6610D95.gv.pdf
│ ├── 26_BA10217.gv
│ ├── 26_BA10217.gv.pdf
│ ├── 27_2440028.gv
│ ├── 27_2440028.gv.pdf
│ ├── 28_808109CB.gv
│ ├── 28_808109CB.gv.pdf
│ ├── 2_23BF0217.gv
│ ├── 2_23BF0217.gv.pdf
│ ├── 30_64B.gv
│ ├── 30_64B.gv.pdf
│ ├── 31_F001F8B4.gv
│ ├── 31_F001F8B4.gv.pdf
│ ├── 32_84215C07.gv
│ ├── 32_84215C07.gv.pdf
│ ├── 33_C1230B.gv
│ ├── 33_C1230B.gv.pdf
│ ├── 34_7A40017.gv
│ ├── 34_7A40017.gv.pdf
│ ├── 35_141230B.gv
│ ├── 35_141230B.gv.pdf
│ ├── 36_3A40E17.gv
│ ├── 36_3A40E17.gv.pdf
│ ├── 37_121230B.gv
│ ├── 37_121230B.gv.pdf
│ ├── 38_3A40C17.gv
│ ├── 38_3A40C17.gv.pdf
│ ├── 39_101230B.gv
│ ├── 39_101230B.gv.pdf
│ ├── 3_23BE0017.gv
│ ├── 3_23BE0017.gv.pdf
│ ├── 40_3A40817.gv
│ ├── 40_3A40817.gv.pdf
│ ├── 41_E1230B.gv
│ ├── 41_E1230B.gv.pdf
│ ├── 42_3A40617.gv
│ ├── 42_3A40617.gv.pdf
│ ├── 43_A1230B.gv
│ ├── 43_A1230B.gv.pdf
│ ├── 44_3A40017.gv
│ ├── 44_3A40017.gv.pdf
│ ├── 45_8061B30B.gv
│ ├── 45_8061B30B.gv.pdf
│ ├── 46_41F30B.gv
│ ├── 46_41F30B.gv.pdf
│ ├── 47_140815.gv
│ ├── 47_140815.gv.pdf
│ ├── 48_1BB40C17.gv
│ ├── 48_1BB40C17.gv.pdf
│ ├── 49_1BA50C15.gv
│ ├── 49_1BA50C15.gv.pdf
│ ├── 4_1FB70E17.gv
│ ├── 4_1FB70E17.gv.pdf
│ ├── 50_3C021CB.gv
│ ├── 50_3C021CB.gv.pdf
│ ├── 51_8200C1CB.gv
│ ├── 51_8200C1CB.gv.pdf
│ ├── 52_3AB0A17.gv
│ ├── 52_3AB0A17.gv.pdf
│ ├── 53_8320FACB.gv
│ ├── 53_8320FACB.gv.pdf
│ ├── 54_3AC0217.gv
│ ├── 54_3AC0217.gv.pdf
│ ├── 55_1BB40A17.gv
│ ├── 55_1BB40A17.gv.pdf
│ ├── 56_1BB50E28.gv
│ ├── 56_1BB50E28.gv.pdf
│ ├── 57_1BB50817.gv
│ ├── 57_1BB50817.gv.pdf
│ ├── 58_1BA50815.gv
│ ├── 58_1BA50815.gv.pdf
│ ├── 59_8200C1CB.gv
│ ├── 59_8200C1CB.gv.pdf
│ ├── 5_1FB60C17.gv
│ ├── 5_1FB60C17.gv.pdf
│ ├── 60_8320FACB.gv
│ ├── 60_8320FACB.gv.pdf
│ ├── 61_2E021CB.gv
│ ├── 61_2E021CB.gv.pdf
│ ├── 62_1BA50415.gv
│ ├── 62_1BA50415.gv.pdf
│ ├── 63_160415.gv
│ ├── 63_160415.gv.pdf
│ ├── 64_1BB60417.gv
│ ├── 64_1BB60417.gv.pdf
│ ├── 65_8200C1CB.gv
│ ├── 65_8200C1CB.gv.pdf
│ ├── 66_8320FACB.gv
│ ├── 66_8320FACB.gv.pdf
│ ├── 67_3C021CB.gv
│ ├── 67_3C021CB.gv.pdf
│ ├── 68_1BA50015.gv
│ ├── 68_1BA50015.gv.pdf
│ ├── 69_1BB60017.gv
│ ├── 69_1BB60017.gv.pdf
│ ├── 6_1FB50A17.gv
│ ├── 6_1FB50A17.gv.pdf
│ ├── 70_1BB10628.gv
│ ├── 70_1BB10628.gv.pdf
│ ├── 71_3B10417.gv
│ ├── 71_3B10417.gv.pdf
│ ├── 72_8200C1CB.gv
│ ├── 72_8200C1CB.gv.pdf
│ ├── 73_8320FACB.gv
│ ├── 73_8320FACB.gv.pdf
│ ├── 74_3C021CB.gv
│ ├── 74_3C021CB.gv.pdf
│ ├── 75_17B50417.gv
│ ├── 75_17B50417.gv.pdf
│ ├── 76_17B40617.gv
│ ├── 76_17B40617.gv.pdf
│ ├── 77_17B10817.gv
│ ├── 77_17B10817.gv.pdf
│ ├── 78_17B60A17.gv
│ ├── 78_17B60A17.gv.pdf
│ ├── 79_17B60E17.gv
│ ├── 79_17B60E17.gv.pdf
│ ├── 7_1FB40817.gv
│ ├── 7_1FB40817.gv.pdf
│ ├── 80_1BB40228.gv
│ ├── 80_1BB40228.gv.pdf
│ ├── 81_17B40C17.gv
│ ├── 81_17B40C17.gv.pdf
│ ├── 82_3A40028.gv
│ ├── 82_3A40028.gv.pdf
│ ├── 83_8200C1CB.gv
│ ├── 83_8200C1CB.gv.pdf
│ ├── 84_8320FACB.gv
│ ├── 84_8320FACB.gv.pdf
│ ├── 85_17A50415.gv
│ ├── 85_17A50415.gv.pdf
│ ├── 86_6710015.gv
│ ├── 86_6710015.gv.pdf
│ ├── 87_17A50015.gv
│ ├── 87_17A50015.gv.pdf
│ ├── 88_17B10017.gv
│ ├── 88_17B10017.gv.pdf
│ ├── 89_8200C1CB.gv
│ ├── 89_8200C1CB.gv.pdf
│ ├── 8_1FB30617.gv
│ ├── 8_1FB30617.gv.pdf
│ ├── 90_8320FACB.gv
│ ├── 90_8320FACB.gv.pdf
│ ├── 91_3C021CB.gv
│ ├── 91_3C021CB.gv.pdf
│ ├── 92_7BE0215.gv
│ ├── 92_7BE0215.gv.pdf
│ ├── 93_17B60228.gv
│ ├── 93_17B60228.gv.pdf
│ ├── 94_13B30C17.gv
│ ├── 94_13B30C17.gv.pdf
│ ├── 95_3B70228.gv
│ ├── 95_3B70228.gv.pdf
│ ├── 96_13B70A17.gv
│ ├── 96_13B70A17.gv.pdf
│ ├── 97_13BE0E17.gv
│ ├── 97_13BE0E17.gv.pdf
│ ├── 98_3A40628.gv
│ ├── 98_3A40628.gv.pdf
│ ├── 99_8200C1CB.gv
│ ├── 99_8200C1CB.gv.pdf
│ ├── 9_1FB20417.gv
│ ├── 9_1FB20417.gv.pdf
│ ├── ADD sp, sp, #-0x210.gv
│ ├── ADD sp, sp, #-0x210.gv.pdf
│ ├── extra_info_match.gv
│ └── extra_info_match.gv.pdf
├── __init__.py
├── __pycache__
├── VMEngine.cpython-311.pyc
├── __init__.cpython-310.pyc
├── __init__.cpython-311.pyc
├── graphviz_tools.cpython-310.pyc
├── graphviz_tools.cpython-311.pyc
├── header_less.cpython-310.pyc
├── header_less.cpython-311.pyc
├── user_il.cpython-310.pyc
├── user_il.cpython-311.pyc
├── utils.cpython-310.pyc
├── utils.cpython-311.pyc
├── vm_tools.cpython-311.pyc
├── work_flow.cpython-310.pyc
└── work_flow.cpython-311.pyc
├── angr_tools.py
├── arch_hook.py
├── data.json
├── data.py
├── de_br.py
├── dec_opcode.py
├── doctest-output
├── 100_8320FACB.gv
├── 100_8320FACB.gv.pdf
├── 101_13A50A15.gv
├── 101_13A50A15.gv.pdf
├── 102_13A50415.gv
├── 102_13A50415.gv.pdf
├── 103_4010015.gv
├── 103_4010015.gv.pdf
├── 104_13BE0617.gv
├── 104_13BE0617.gv.pdf
├── 105_13B60417.gv
├── 105_13B60417.gv.pdf
├── 106_13A10817.gv
├── 106_13A10817.gv.pdf
├── 107_3BE0828.gv
├── 107_3BE0828.gv.pdf
├── 108_8200C1CB.gv
├── 108_8200C1CB.gv.pdf
├── 109_8320FACB.gv
├── 109_8320FACB.gv.pdf
├── 10_1FB10217.gv
├── 10_1FB10217.gv.pdf
├── 110_3C021CB.gv
├── 110_3C021CB.gv.pdf
├── 111_FA50E15.gv
├── 111_FA50E15.gv.pdf
├── 112_6C10015.gv
├── 112_6C10015.gv.pdf
├── 113_13B70017.gv
├── 113_13B70017.gv.pdf
├── 114_FA10E17.gv
├── 114_FA10E17.gv.pdf
├── 115_13B30217.gv
├── 115_13B30217.gv.pdf
├── 116_8200C1CB.gv
├── 116_8200C1CB.gv.pdf
├── 117_8320FACB.gv
├── 117_8320FACB.gv.pdf
├── 118_3C021CB.gv
├── 118_3C021CB.gv.pdf
├── 119_10811.gv
├── 119_10811.gv.pdf
├── 11_1FB00017.gv
├── 11_1FB00017.gv.pdf
├── 120_FB50A17.gv
├── 120_FB50A17.gv.pdf
├── 121_3B30A28.gv
├── 121_3B30A28.gv.pdf
├── 122_FB30817.gv
├── 122_FB30817.gv.pdf
├── 123_FA10C30.gv
├── 123_FA10C30.gv.pdf
├── 124_3A40C28.gv
├── 124_3A40C28.gv.pdf
├── 125_8200C1CB.gv
├── 125_8200C1CB.gv.pdf
├── 126_8320FACB.gv
├── 126_8320FACB.gv.pdf
├── 127_FA50815.gv
├── 127_FA50815.gv.pdf
├── 128_2610995.gv
├── 128_2610995.gv.pdf
├── 129_3B30428.gv
├── 129_3B30428.gv.pdf
├── 12_E081CB.gv
├── 12_E081CB.gv.pdf
├── 130_20411.gv
├── 130_20411.gv.pdf
├── 131_BA30215.gv
├── 131_BA30215.gv.pdf
├── 132_BB30A17.gv
├── 132_BB30A17.gv.pdf
├── 133_BA20C30.gv
├── 133_BA20C30.gv.pdf
├── 134_BB40E17.gv
├── 134_BB40E17.gv.pdf
├── 135_FB60017.gv
├── 135_FB60017.gv.pdf
├── 136_FB10217.gv
├── 136_FB10217.gv.pdf
├── 137_FA10417.gv
├── 137_FA10417.gv.pdf
├── 138_FA30617.gv
├── 138_FA30617.gv.pdf
├── 139_BA10228.gv
├── 139_BA10228.gv.pdf
├── 13_8B0428.gv
├── 13_8B0428.gv.pdf
├── 140_FC21F695.gv
├── 140_FC21F695.gv.pdf
├── 141_BA10217.gv
├── 141_BA10217.gv.pdf
├── 142_3A40E28.gv
├── 142_3A40E28.gv.pdf
├── 143_8200C1CB.gv
├── 143_8200C1CB.gv.pdf
├── 144_8320FACB.gv
├── 144_8320FACB.gv.pdf
├── 145_BA50A15.gv
├── 145_BA50A15.gv.pdf
├── 146_BA20228.gv
├── 146_BA20228.gv.pdf
├── 148_64B.gv
├── 148_64B.gv.pdf
├── 149_410995.gv
├── 149_410995.gv.pdf
├── 14_8C0028.gv
├── 14_8C0028.gv.pdf
├── 151_2410017.gv
├── 151_2410017.gv.pdf
├── 152_BB50817.gv
├── 152_BB50817.gv.pdf
├── 153_BA50815.gv
├── 153_BA50815.gv.pdf
├── 154_7B10028.gv
├── 154_7B10028.gv.pdf
├── 155_8200C1CB.gv
├── 155_8200C1CB.gv.pdf
├── 156_8320FACB.gv
├── 156_8320FACB.gv.pdf
├── 157_22021CB.gv
├── 157_22021CB.gv.pdf
├── 158_BB30617.gv
├── 158_BB30617.gv.pdf
├── 159_BA50615.gv
├── 159_BA50615.gv.pdf
├── 15_C20028.gv
├── 15_C20028.gv.pdf
├── 160_8200C1CB.gv
├── 160_8200C1CB.gv.pdf
├── 161_8320FACB.gv
├── 161_8320FACB.gv.pdf
├── 162_22021CB.gv
├── 162_22021CB.gv.pdf
├── 163_BA50415.gv
├── 163_BA50415.gv.pdf
├── 164_BB60417.gv
├── 164_BB60417.gv.pdf
├── 165_8200C1CB.gv
├── 165_8200C1CB.gv.pdf
├── 166_8320FACB.gv
├── 166_8320FACB.gv.pdf
├── 167_22021CB.gv
├── 167_22021CB.gv.pdf
├── 168_1FB00028.gv
├── 168_1FB00028.gv.pdf
├── 169_1FB10228.gv
├── 169_1FB10228.gv.pdf
├── 16_C30228.gv
├── 16_C30228.gv.pdf
├── 170_1FB20428.gv
├── 170_1FB20428.gv.pdf
├── 171_1FB30628.gv
├── 171_1FB30628.gv.pdf
├── 172_1FB40828.gv
├── 172_1FB40828.gv.pdf
├── 173_1FB50A28.gv
├── 173_1FB50A28.gv.pdf
├── 174_1FB60C28.gv
├── 174_1FB60C28.gv.pdf
├── 175_1FB70E28.gv
├── 175_1FB70E28.gv.pdf
├── 176_23BE0028.gv
├── 176_23BE0028.gv.pdf
├── 177_23BF0228.gv
├── 177_23BF0228.gv.pdf
├── 179_23BD0415.gv
├── 179_23BD0415.gv.pdf
├── 17_C50428.gv
├── 17_C50428.gv.pdf
├── 18_C70628.gv
├── 18_C70628.gv.pdf
├── 19_C80828.gv
├── 19_C80828.gv.pdf
├── 1_DFBDFC15.gv
├── 1_DFBDFC15.gv.pdf
├── 20_C90A28.gv
├── 20_C90A28.gv.pdf
├── 21_920628.gv
├── 21_920628.gv.pdf
├── 22_CA0C28.gv
├── 22_CA0C28.gv.pdf
├── 23_C60E28.gv
├── 23_C60E28.gv.pdf
├── 24_930228.gv
├── 24_930228.gv.pdf
├── 25_6610D95.gv
├── 25_6610D95.gv.pdf
├── 26_BA10217.gv
├── 26_BA10217.gv.pdf
├── 27_2440028.gv
├── 27_2440028.gv.pdf
├── 2_23BF0217.gv
├── 2_23BF0217.gv.pdf
├── 30_64B.gv
├── 30_64B.gv.pdf
├── 31_F001F8B4.gv
├── 31_F001F8B4.gv.pdf
├── 32_2400017.gv
├── 32_2400017.gv.pdf
├── 32_84215C07.gv
├── 32_84215C07.gv.pdf
├── 33_1FB00028.gv
├── 33_1FB00028.gv.pdf
├── 33_C1230B.gv
├── 33_C1230B.gv.pdf
├── 34_1FB10228.gv
├── 34_1FB10228.gv.pdf
├── 34_7A40017.gv
├── 34_7A40017.gv.pdf
├── 35_141230B.gv
├── 35_141230B.gv.pdf
├── 35_1FB20428.gv
├── 35_1FB20428.gv.pdf
├── 36_1FB30628.gv
├── 36_1FB30628.gv.pdf
├── 36_3A40E17.gv
├── 36_3A40E17.gv.pdf
├── 37_121230B.gv
├── 37_121230B.gv.pdf
├── 37_1FB40828.gv
├── 37_1FB40828.gv.pdf
├── 38_1FB50A28.gv
├── 38_1FB50A28.gv.pdf
├── 38_3A40C17.gv
├── 38_3A40C17.gv.pdf
├── 39_101230B.gv
├── 39_101230B.gv.pdf
├── 39_1FB60C28.gv
├── 39_1FB60C28.gv.pdf
├── 3_23BE0017.gv
├── 3_23BE0017.gv.pdf
├── 40_1FB70E28.gv
├── 40_1FB70E28.gv.pdf
├── 40_3A40817.gv
├── 40_3A40817.gv.pdf
├── 41_23BE0028.gv
├── 41_23BE0028.gv.pdf
├── 41_E1230B.gv
├── 41_E1230B.gv.pdf
├── 42_23BF0228.gv
├── 42_23BF0228.gv.pdf
├── 42_3A40617.gv
├── 42_3A40617.gv.pdf
├── 43_A1230B.gv
├── 43_A1230B.gv.pdf
├── 44_23BD0415.gv
├── 44_23BD0415.gv.pdf
├── 44_3A40017.gv
├── 44_3A40017.gv.pdf
├── 45_8061B30B.gv
├── 45_8061B30B.gv.pdf
├── 46_41F30B.gv
├── 46_41F30B.gv.pdf
├── 47_140815.gv
├── 47_140815.gv.pdf
├── 48_1BB40C17.gv
├── 48_1BB40C17.gv.pdf
├── 49_1BA50C15.gv
├── 49_1BA50C15.gv.pdf
├── 4_1FB70E17.gv
├── 4_1FB70E17.gv.pdf
├── 50_3C021CB.gv
├── 50_3C021CB.gv.pdf
├── 51_8200C1CB.gv
├── 51_8200C1CB.gv.pdf
├── 52_3AB0A17.gv
├── 52_3AB0A17.gv.pdf
├── 53_8320FACB.gv
├── 53_8320FACB.gv.pdf
├── 54_3AC0217.gv
├── 54_3AC0217.gv.pdf
├── 55_1BB40A17.gv
├── 55_1BB40A17.gv.pdf
├── 56_1BB50E28.gv
├── 56_1BB50E28.gv.pdf
├── 57_1BB50817.gv
├── 57_1BB50817.gv.pdf
├── 58_1BA50815.gv
├── 58_1BA50815.gv.pdf
├── 59_8200C1CB.gv
├── 59_8200C1CB.gv.pdf
├── 5_1FB60C17.gv
├── 5_1FB60C17.gv.pdf
├── 60_8320FACB.gv
├── 60_8320FACB.gv.pdf
├── 61_2E021CB.gv
├── 61_2E021CB.gv.pdf
├── 62_1BA50415.gv
├── 62_1BA50415.gv.pdf
├── 63_160415.gv
├── 63_160415.gv.pdf
├── 64_1BB60417.gv
├── 64_1BB60417.gv.pdf
├── 65_8200C1CB.gv
├── 65_8200C1CB.gv.pdf
├── 66_8320FACB.gv
├── 66_8320FACB.gv.pdf
├── 67_3C021CB.gv
├── 67_3C021CB.gv.pdf
├── 68_1BA50015.gv
├── 68_1BA50015.gv.pdf
├── 69_1BB60017.gv
├── 69_1BB60017.gv.pdf
├── 6_1FB50A17.gv
├── 6_1FB50A17.gv.pdf
├── 70_1BB10628.gv
├── 70_1BB10628.gv.pdf
├── 71_3B10417.gv
├── 71_3B10417.gv.pdf
├── 72_8200C1CB.gv
├── 72_8200C1CB.gv.pdf
├── 73_8320FACB.gv
├── 73_8320FACB.gv.pdf
├── 74_3C021CB.gv
├── 74_3C021CB.gv.pdf
├── 75_17B50417.gv
├── 75_17B50417.gv.pdf
├── 76_17B40617.gv
├── 76_17B40617.gv.pdf
├── 77_17B10817.gv
├── 77_17B10817.gv.pdf
├── 78_17B60A17.gv
├── 78_17B60A17.gv.pdf
├── 79_17B60E17.gv
├── 79_17B60E17.gv.pdf
├── 7_1FB40817.gv
├── 7_1FB40817.gv.pdf
├── 80_1BB40228.gv
├── 80_1BB40228.gv.pdf
├── 81_17B40C17.gv
├── 81_17B40C17.gv.pdf
├── 82_3A40028.gv
├── 82_3A40028.gv.pdf
├── 83_8200C1CB.gv
├── 83_8200C1CB.gv.pdf
├── 84_8320FACB.gv
├── 84_8320FACB.gv.pdf
├── 85_17A50415.gv
├── 85_17A50415.gv.pdf
├── 86_6710015.gv
├── 86_6710015.gv.pdf
├── 87_17A50015.gv
├── 87_17A50015.gv.pdf
├── 88_17B10017.gv
├── 88_17B10017.gv.pdf
├── 89_8200C1CB.gv
├── 89_8200C1CB.gv.pdf
├── 8_1FB30617.gv
├── 8_1FB30617.gv.pdf
├── 90_8320FACB.gv
├── 90_8320FACB.gv.pdf
├── 91_3C021CB.gv
├── 91_3C021CB.gv.pdf
├── 92_7BE0215.gv
├── 92_7BE0215.gv.pdf
├── 93_17B60228.gv
├── 93_17B60228.gv.pdf
├── 94_13B30C17.gv
├── 94_13B30C17.gv.pdf
├── 95_3B70228.gv
├── 95_3B70228.gv.pdf
├── 96_13B70A17.gv
├── 96_13B70A17.gv.pdf
├── 97_13BE0E17.gv
├── 97_13BE0E17.gv.pdf
├── 98_3A40628.gv
├── 98_3A40628.gv.pdf
├── 99_8200C1CB.gv
├── 99_8200C1CB.gv.pdf
├── 9_1FB20417.gv
└── 9_1FB20417.gv.pdf
├── dy_code.py
├── graphviz_tools.py
├── header_less.py
├── llil.S
├── plugin.json
├── symbolic_.py
├── symbolic_libEncryptor.py
├── symbolic_libEncryptor2.py
├── symbolic_libEncryptor2_back.py
├── symbolic_libEncryptor2_back2.py
├── test_exe.py
├── triton_test.py
├── ttEncrypt
├── DeviceRegister.py
├── decode_opcode.py
├── generate_aes_key_iv.asm
├── libEncryptor.so
├── libEncryptor.so.bndb
├── ttEncryptorUtil.py
└── ttencryptor.asm
├── user_il.py
├── utils.py
├── vm_data.json
├── vm_tools.py
└── work_flow.py
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/.idea/deobf.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | 这个项目上次 还原 ollvm 基础上改的
3 |
4 | 有问题提 issue 可以一起交流 vm 的还原
5 |
6 | 我保留了探索过程中写的代码,所以会稍微有点乱,只关注被调用的部分就好了
7 | ```angular2html
8 |
9 | │ angr_tools.py
10 | │ arch_hook.py
11 | │ data.json
12 | │ data.py
13 | │ dec_opcode.py
14 | │ de_br.py
15 | │ dy_code.py
16 | │ graphviz_tools.py
17 | │ header_less.py
18 | │ LICENSE
19 | │ llil.S
20 | │ plugin.json
21 | │ README.md
22 | │ symbolic_.py
23 | │ symbolic_libEncryptor.py
24 | │ symbolic_libEncryptor2.py 本次代码的主要入口
25 | │ symbolic_libEncryptor2_back.py
26 | │ symbolic_libEncryptor2_back2.py
27 | │ test_exe.py
28 | │ triton_test.py
29 | │ user_il.py
30 | │ utils.py
31 | │ VMEngine.py
32 | │ vm_data.json
33 | │ vm_tools.py
34 | │ work_flow.py
35 | │ __init__.py
36 | │
37 | ├───doctest-output
38 | │ 100_8320FACB.gv
39 | │ 100_8320FACB.gv.pdf
40 | │ 101_13A50A15.gv
41 | │
42 | ├───Vm 利用angr 捕获数据(比较核心)
43 | │ │ BinjaAst.py
44 | │ │ CONSTS.py
45 | │ │ VmExploration.py
46 | │ │ VMGlobalData.py
47 | │ │ VmState.py
48 | │ │ __init__.py
49 |
50 |
51 | ```
52 |
53 |
--------------------------------------------------------------------------------
/VMEngine.py:
--------------------------------------------------------------------------------
1 | import pyvex
2 | from angr.engines import UberEngine
3 |
4 |
5 | class VmEngine(UberEngine):
6 |
7 | def _handle_vex_expr_RdTmp(self, expr: pyvex.expr.RdTmp):
8 | return super()._handle_vex_expr_RdTmp(expr)
9 |
--------------------------------------------------------------------------------
/Vm/CONSTS.py:
--------------------------------------------------------------------------------
1 | or_offset = 0x3920
2 | dispatcher_offset = 0x2cc8
3 | ip_increase_offset = 0x3a78
4 | external_call_offset = 0x3c28
5 |
--------------------------------------------------------------------------------
/Vm/VMGlobalData.py:
--------------------------------------------------------------------------------
1 | # 全局唯一的
2 | import copy
3 |
4 | from angr.state_plugins import SimStateHistory
5 |
6 | from Vm import VmState
7 |
8 |
9 | class VMGlobalData():
10 | def __init__(self,
11 | opcode2history=None,
12 | opcode_index2_ext_call=None,
13 | opcode_count=0,
14 | parent=None):
15 |
16 | self.opcode2history = {} if opcode2history is None else opcode2history
17 | self.opcode_index2_ext_call = {} if opcode_index2_ext_call is None else opcode_index2_ext_call
18 | self.opcode_count = opcode_count
19 | self.parent: VMGlobalData = None if parent is None else parent
20 |
21 | # self.history: "SimStateHistory"
22 | # print("VMGlobalData 初始化")
23 |
24 | @property
25 | def get_history(self):
26 | return self.opcode2history
27 |
28 | @property
29 | def history(self):
30 | # 如果有父类,优先获取父类的历史记录
31 | if self.parent:
32 | yield from self.parent.history # 递归获取父类的历史记录
33 | # 返回当前对象的历史记录
34 | yield from self.opcode2history.items()
35 | def set_history(self, vm_state: VmState, history: SimStateHistory):
36 | # self.opcode2history[f"{vm_state.opcode_count}_{vm_state.current_opcode:X}"] = history
37 | self.opcode2history[(vm_state.opcode_count,vm_state.current_opcode)] = history
38 |
39 | def add_opcode(self, opcode):
40 | self.opcode_count += 1
41 |
42 | # 记录外部调用的函数
43 | def record_ext_call(self,vm_state,ext_func_addr):
44 | self.opcode_index2_ext_call[(self.opcode_count, vm_state.current_opcode)] = ext_func_addr
45 |
46 | def add_branch(self, vm_state):
47 | self.branch.append((vm_state.opcode_count,vm_state.current_opcode))
48 | # def __del__(self):
49 | # print(f'TestClas 对象被回收--- : {self.opcodes}')
50 | def __deepcopy__(self, memodict={}):
51 | # 检查对象是否已经在 memodict 中
52 | if id(self) in memodict:
53 | return memodict[id(self)]
54 | return VMGlobalData(
55 | opcode_count=self.opcode_count,
56 | parent=self,
57 | opcode_index2_ext_call=copy.deepcopy(self.opcode_index2_ext_call),
58 | )
59 |
--------------------------------------------------------------------------------
/Vm/VmExploration.py:
--------------------------------------------------------------------------------
1 | import copy
2 | import logging
3 |
4 | import angr
5 | import claripy
6 | from Vm.VmState import VmState
7 | from .CONSTS import *
8 | from pprint import pprint as pp
9 |
10 | l = logging.getLogger(name=__name__)
11 | class VmExploration(angr.ExplorationTechnique):
12 | def __init__(self,project_base_addr, stashes=('active', 'deferred', 'errored', 'cut')):
13 | super(VmExploration, self).__init__()
14 | self._stashes = stashes
15 | self.project_base_addr = project_base_addr
16 | self.trace_options = [
17 | angr.options.TRACK_OP_ACTIONS,
18 | angr.options.TRACK_ACTION_HISTORY,
19 | # 记录 寄存器 操作
20 | angr.options.TRACK_REGISTER_ACTIONS,
21 | # 记录 中间变量的操作
22 | angr.options.TRACK_TMP_ACTIONS
23 | ]
24 |
25 | def setup(self, simgr):
26 | super().setup(simgr)
27 | # state.register_plugin("VmState", VmState())
28 | simgr.stashes['active'][0].register_plugin('VmState', VmState())
29 |
30 | def step(self, simgr, stash="active", **kwargs):
31 |
32 | super_ret = super().step(simgr, stash, **kwargs)
33 | return super_ret
34 |
35 | def mem_write(self,state: angr.SimState):
36 |
37 | _inspect: angr.state_plugins.inspect.SimInspector = state.inspect
38 |
39 | # step_state 调用 successors
40 | def step_state(self, simgr, state, **kwargs):
41 | solver = state.solver
42 | vm_state: VmState = state.VmState
43 | # print(f"step_state {state.addr:X}")
44 | match state.addr:
45 | case addr if addr == self.project_base_addr + or_offset:
46 | print(f"{hex(state.addr)} vreg {state.regs.w10} = {state.regs.x8} | {state.regs.x9}")
47 | case addr if addr == self.project_base_addr + dispatcher_offset:
48 | self._handle_dispatcher(state)
49 | case addr if addr == self.project_base_addr + ip_increase_offset:
50 | self._handle_ip_increase(state)
51 | case addr if addr == self.project_base_addr + external_call_offset:
52 | self._handle_external_func_call(state)
53 | case _:
54 | # super_ret = super().step_state(simgr, state, **kwargs)
55 | pass
56 | return super().step_state(simgr, state, **kwargs)
57 |
58 | def _handle_external_func_call(self,state):
59 | vm_state: VmState = state.VmState
60 | solver = state.solver
61 | x0 = solver.eval_one(state.regs.x0)
62 | x1 = solver.eval_one(state.regs.x1)
63 | vm_state.data.record_ext_call(vm_state,x0)
64 | l.error(f"调用外部函数[{hex(vm_state.current_opcode)}] x0 = 0x{x0:X}, x1 = 0x{x1:X}", )
65 | def _handle_dispatcher(self,state : angr.SimState):
66 | solver = state.solver
67 | vm_state: VmState = state.VmState
68 | # 分发器开始
69 | # state.scratch.irsb.pp()
70 | # 读取 opcode
71 | x0 = state.regs.x0
72 | solver.eval_one(x0)
73 | opcode = state.memory.load(solver.eval_one(x0), 4).reversed
74 | opcode = solver.eval_one(opcode)
75 |
76 | # 调试代码
77 | # 如果代码没进入 ip++ 就直接重新分发了
78 | if vm_state.opcode_count !=0:
79 | # key = f"{vm_state.opcode_count}_{vm_state.current_opcode:X}"
80 | key = (vm_state.opcode_count,vm_state.current_opcode)
81 | if "exit" not in vm_state.enter_exit[key]:
82 | # 没进入 ip++ 就进入分发,只可能是 vm_exit 要么就应该报错
83 | exit_opcode = vm_state.exit_opcode
84 | if exit_opcode is None:
85 | # 还没找到 exit_opcode 就赋值
86 | # TODO 还没想好怎么处理
87 | vm_state.exit_opcode = opcode
88 | elif exit_opcode != vm_state.current_opcode:
89 | raise Exception("未知的opcode ,没有经过ip++就到了分发器")
90 |
91 |
92 | # 函数调用 返回无约束 防止陷入函数 (vm会调用别的vm)
93 | state.options.add(angr.options.CALLLESS)
94 | state.options.update(self.trace_options)
95 |
96 |
97 | vm_state.add_opcode(opcode)
98 | # 这里不清空的话会出现一些 上一次opcode的action 可能是angr自带的一些 option 才导致记录的action
99 | state.history.trim()
100 |
101 |
102 | # self.enter_exit[f"{self.opcode_count}_{self.current_opcode:X}"] =["enter"]
103 | # 必须放后面
104 | vm_state.enter_exit[(vm_state.opcode_count,vm_state.current_opcode)] =["enter"]
105 |
106 | def _handle_ip_increase(self,state):
107 | vm_state: VmState = state.VmState
108 | # ip++
109 | # 这里就是 当前opcode 执行结束的位置
110 | # 需要赋值新的 vmState 来让 一个 vmState 对应一个opcode
111 | # vm_state.dataClass.add_state(vm_state)
112 | if vm_state.current_opcode == 0x8b0428:
113 | pass
114 | x19: claripy.ast.bv.BV = state.regs.x19
115 | flag_value = state.mem[x19.concrete_value - 0x20].uint64_t.concrete
116 |
117 | if flag_value != 0:
118 | external_func_addr = state.mem[x19.concrete_value - 0x18].uint64_t.concrete
119 | l.warning(f"[{vm_state.current_opcode:X}]未知标志位 {flag_value} , {external_func_addr:X}")
120 |
121 | # vm_state.enter_exit[f"{vm_state.opcode_count}_{vm_state.current_opcode:X}"].append("exit")
122 | vm_state.enter_exit[(vm_state.opcode_count,vm_state.current_opcode)].append("exit")
123 | vm_state.get_data.set_history(vm_state, state.history)
124 | # 清空 记录的 action
125 | state.history.trim()
126 |
127 | # 从 ip++ 到重新回到分发器的过程,可能会调用 外部函数 需要特殊处理
128 | # 目前来看 只需要知道调用了 外部函数就可以了
129 | new_options = state.options.difference(self.trace_options)
130 | state.options = new_options
131 | def successors(self, simgr, state, **kwargs):
132 | super_ret = super().successors(simgr, state, **kwargs)
133 |
134 | for exit_state in list(super_ret.all_successors):
135 | exit_jumpkind = exit_state.history.jumpkind if exit_state.history.jumpkind else ""
136 | solver = exit_state.solver
137 |
138 | if exit_jumpkind == "Ijk_Call":
139 | x0 = solver.eval_one(exit_state.regs.x0)
140 | x1 = solver.eval_one(exit_state.regs.x1)
141 |
142 | l.error(f"调用外部函数[{hex(exit_state.addr)}] x0 = 0x{x0:X}, x1 = 0x{x1:X}",)
143 |
144 | # 当前 state 执行完之后产生了 两个分支的话 需要赋值 赋值一个全新的 VMGlobalData
145 | successor_len = len(super_ret.successors)
146 | match successor_len:
147 | case 2:
148 | for succ_state in super_ret.successors:
149 | vm_state: VmState = succ_state.VmState
150 | vm_state.data = copy.deepcopy(succ_state.VmState.data)
151 | vm_state.add_branch_record()
152 |
153 | case 1:
154 | pass
155 | case _:
156 | raise Exception("未处理异常")
157 | return super_ret
158 |
159 |
--------------------------------------------------------------------------------
/Vm/VmState.py:
--------------------------------------------------------------------------------
1 | import opcode
2 |
3 | from angr import SimStatePlugin, SimState
4 |
5 | from Vm.VMGlobalData import VMGlobalData
6 | import copy
7 |
8 |
9 | #
10 | # class VmState(SimStatePlugin):
11 | #
12 | # def __init__(self, clone=None, opcodes=None, data_class=None, branch_stream=None):
13 | # super().__init__()
14 | #
15 | # if clone is None:
16 | # self.opcode = opcode
17 | # self.dataClass = VMGlobalData() if data_class is None else data_class
18 | # self.branch_stream = [0] if branch_stream is None else branch_stream
19 | # self.opcodes = [] if opcodes is None else opcodes
20 | # else:
21 | # self.opcode = clone.opcode
22 | # self.dataClass = clone.dataClass
23 | # self.branch_stream = clone.branch_stream
24 | # self.opcodes = clone.opcodes
25 | #
26 | # @property
27 | # def data(self):
28 | # return self.dataClass
29 | # def set_opcode(self, op_code):
30 | # self.opcode = op_code
31 | #
32 | # def add_opcodes(self, _opcode):
33 | # self.opcodes.append(_opcode)
34 | #
35 | # def add_new_branch_stream(self):
36 | # # copy.deepcopy(dataClass)
37 | # self.branch_stream.append(self.branch_stream[-1] + 1)
38 | #
39 | # def set_vm_global_data(self, dataClass: VMGlobalData):
40 | # # copy.deepcopy(dataClass)
41 | # self.dataClass = VMGlobalData(dataClass.vmStates)
42 | #
43 | # # copy 比 init_state 先调用
44 | # @SimStatePlugin.memo
45 | # def copy(self, memo): # pylint: disable=unused-argument
46 | # return VmState(clone=self, opcodes=self.opcodes)
47 | #
48 | # def init_state(self):
49 | # super().init_state()
50 |
51 | # self.opcodes.append(opcode)
52 | # 符号执行的过程会一直 创建state 然后再销毁 所以不适合放大量数据 history 会一直复制数据
53 | # def __del__(self):
54 | # print(f'VmState 对象被回收--- : {self.opcodes}')
55 |
56 |
57 | class VmState(SimStatePlugin):
58 |
59 | def __init__(self, clone=None):
60 | SimStatePlugin.__init__(self)
61 | if clone is None:
62 | self.opcodes = []
63 | self.current_opcode = None
64 | self.data = VMGlobalData()
65 | self.opcode_count = 0
66 | self.enter_exit = {}
67 | self.exit_opcode = None
68 | self.branch = []
69 | else:
70 |
71 | self.current_opcode = clone.current_opcode
72 | self.opcode_count = clone.opcode_count
73 | self.enter_exit = copy.deepcopy(clone.enter_exit)
74 | self.branch = copy.deepcopy(clone.branch)
75 | # 这里不能用浅拷贝,不然会导致state共享这个变量
76 | # self.opcodes = clone.opcodes
77 | self.opcodes = copy.deepcopy(clone.opcodes)
78 | # 在 angr符号执行过程会一直复制 state,这里先 浅拷贝,共享 VMGlobalData,出现分支再深拷贝
79 | self.data : VMGlobalData = clone.data
80 | self.exit_opcode = clone.exit_opcode
81 |
82 | def add_opcode(self, _opcode):
83 | self.opcode_count+=1
84 |
85 | self.current_opcode = _opcode
86 |
87 | # self.enter_exit[f"{self.opcode_count}_{self.current_opcode:X}"] =["enter"]
88 | # self.opcodes.append(_opcode)
89 | self.data.add_opcode(_opcode)
90 | print("add_opcode",hex(_opcode),self.opcode_count)
91 |
92 | def add_branch_record(self):
93 | self.branch.append((self.opcode_count, self.current_opcode))
94 |
95 | # copy 比 init_state 先调用
96 | @SimStatePlugin.memo
97 | def copy(self, memo): # pylint: disable=unused-argument
98 | return VmState(clone=self)
99 |
100 | # 为了后面写代码有提示
101 | @property
102 | def get_data(self) -> VMGlobalData:
103 | return self.data
104 | # SimState.register_default('vmState', VmState)
105 |
--------------------------------------------------------------------------------
/Vm/__init__.py:
--------------------------------------------------------------------------------
1 | from .VmState import VmState
2 | from .VmExploration import VmExploration
3 | from .VMGlobalData import VMGlobalData
4 |
5 |
--------------------------------------------------------------------------------
/Vm/__pycache__/BinjaAst.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/BinjaAst.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/CONSTS.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/CONSTS.cpython-310.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/CONSTS.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/CONSTS.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VMGlobalData.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VMGlobalData.cpython-310.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VMGlobalData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VMGlobalData.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VmExploration.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VmExploration.cpython-310.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VmExploration.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VmExploration.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VmState.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VmState.cpython-310.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/VmState.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/VmState.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/__init__.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/__init__.cpython-310.pyc
--------------------------------------------------------------------------------
/Vm/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/Vm/doctest-output/100_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "100_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "100_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "100_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/100_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/100_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/101_13A50A15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/101_13A50A15.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/102_13A50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/102_13A50415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/103_4010015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/103_4010015.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/104_13BE0617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/104_13BE0617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/105_13B60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/105_13B60417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/106_13A10817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/106_13A10817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/107_3BE0828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/107_3BE0828.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/108_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/108_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/109_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "109_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "109_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "109_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/109_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/109_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/10_1FB10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/10_1FB10217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/110_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/110_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/111_FA50E15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/111_FA50E15.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/112_6C10015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/112_6C10015.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/113_13B70017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/113_13B70017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/114_FA10E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/114_FA10E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/115_13B30217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/115_13B30217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/116_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/116_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/117_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "117_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "117_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "117_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/117_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/117_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/118_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/118_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/119_10811.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/119_10811.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/11_1FB00017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/11_1FB00017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/120_FB50A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/120_FB50A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/121_3B30A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/121_3B30A28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/122_FB30817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/122_FB30817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/123_FA10C30.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/123_FA10C30.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/124_3A40C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/124_3A40C28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/125_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/125_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/126_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "126_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "126_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "126_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/126_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/126_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/127_FA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/127_FA50815.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/128_2610995.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/128_2610995.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/129_3B30428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/129_3B30428.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/12_E081CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/12_E081CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/130_20411.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/130_20411.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/131_BA30215.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/131_BA30215.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/132_BB30A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/132_BB30A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/133_BA20C30.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/133_BA20C30.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/134_BB40E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/134_BB40E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/135_FB60017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/135_FB60017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/136_FB10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/136_FB10217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/137_FA10417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/137_FA10417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/138_FA30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/138_FA30617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/139_BA10228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/139_BA10228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/13_8B0428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/13_8B0428.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/140_FC21F695.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/140_FC21F695.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/141_BA10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/141_BA10217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/142_3A40E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/142_3A40E28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/143_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/143_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/144_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "144_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "144_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "144_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/144_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/144_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/145_BA50A15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/145_BA50A15.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/146_BA20228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/146_BA20228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/148_64B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/148_64B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/149_410995.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/149_410995.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/14_8C0028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/14_8C0028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/151_2410017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/151_2410017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/152_BB50817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/152_BB50817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/153_BA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/153_BA50815.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/154_7B10028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/154_7B10028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/155_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/155_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/156_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "156_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "156_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "156_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/156_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/156_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/157_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/157_22021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/158_BB30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/158_BB30617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/159_BA50615.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/159_BA50615.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/15_C20028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/15_C20028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/160_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/160_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/161_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "161_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "161_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "161_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/161_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/161_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/162_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/162_22021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/163_BA50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/163_BA50415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/164_BB60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/164_BB60417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/165_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/165_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/166_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "166_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "166_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "166_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/166_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/166_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/167_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/167_22021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/168_1FB00028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/168_1FB00028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/169_1FB10228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/169_1FB10228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/16_C30228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/16_C30228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/170_1FB20428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/170_1FB20428.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/171_1FB30628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/171_1FB30628.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/172_1FB40828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/172_1FB40828.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/173_1FB50A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/173_1FB50A28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/174_1FB60C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/174_1FB60C28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/175_1FB70E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/175_1FB70E28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/176_23BE0028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/176_23BE0028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/177_23BF0228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/177_23BF0228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/179_23BD0415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/179_23BD0415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/17_C50428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/17_C50428.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/18_C70628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/18_C70628.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/19_C80828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/19_C80828.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/1_DFBDFC15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/1_DFBDFC15.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/20_C90A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/20_C90A28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/21_920628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/21_920628.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/22_CA0C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/22_CA0C28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/23_C60E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/23_C60E28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/24_930228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/24_930228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/25_6610D95.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/25_6610D95.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/26_BA10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/26_BA10217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/27_2440028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/27_2440028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/28_808109CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/28_808109CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/2_23BF0217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/2_23BF0217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/30_64B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/30_64B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/31_F001F8B4.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/31_F001F8B4.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/32_84215C07.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/32_84215C07.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/33_C1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/33_C1230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/34_7A40017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/34_7A40017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/35_141230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/35_141230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/36_3A40E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/36_3A40E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/37_121230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/37_121230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/38_3A40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/38_3A40C17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/39_101230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/39_101230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/3_23BE0017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/3_23BE0017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/40_3A40817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/40_3A40817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/41_E1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/41_E1230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/42_3A40617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/42_3A40617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/43_A1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/43_A1230B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/44_3A40017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/44_3A40017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/45_8061B30B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/45_8061B30B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/46_41F30B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/46_41F30B.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/47_140815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/47_140815.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/48_1BB40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/48_1BB40C17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/49_1BA50C15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/49_1BA50C15.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/4_1FB70E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/4_1FB70E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/50_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/50_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/51_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/51_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/52_3AB0A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/52_3AB0A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/53_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "53_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "53_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "53_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/53_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/53_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/54_3AC0217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/54_3AC0217.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/55_1BB40A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/55_1BB40A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/56_1BB50E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/56_1BB50E28.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/57_1BB50817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/57_1BB50817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/58_1BA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/58_1BA50815.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/59_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/59_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/5_1FB60C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/5_1FB60C17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/60_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "60_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "60_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "60_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/60_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/60_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/61_2E021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/61_2E021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/62_1BA50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/62_1BA50415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/63_160415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/63_160415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/64_1BB60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/64_1BB60417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/65_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/65_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/66_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "66_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "66_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "66_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/66_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/66_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/67_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/67_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/68_1BA50015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/68_1BA50015.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/69_1BB60017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/69_1BB60017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/6_1FB50A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/6_1FB50A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/70_1BB10628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/70_1BB10628.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/71_3B10417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/71_3B10417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/72_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/72_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/73_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "73_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "73_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "73_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/73_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/73_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/74_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/74_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/75_17B50417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/75_17B50417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/76_17B40617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/76_17B40617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/77_17B10817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/77_17B10817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/78_17B60A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/78_17B60A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/79_17B60E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/79_17B60E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/7_1FB40817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/7_1FB40817.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/80_1BB40228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/80_1BB40228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/81_17B40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/81_17B40C17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/82_3A40028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/82_3A40028.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/83_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/83_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/84_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "84_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "84_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "84_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/84_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/84_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/85_17A50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/85_17A50415.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/86_6710015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/86_6710015.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/87_17A50015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/87_17A50015.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/88_17B10017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/88_17B10017.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/89_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/89_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/8_1FB30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/8_1FB30617.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/90_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "90_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "90_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "90_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/Vm/doctest-output/90_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/90_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/91_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/91_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/92_7BE0215.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/92_7BE0215.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/93_17B60228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/93_17B60228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/94_13B30C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/94_13B30C17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/95_3B70228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/95_3B70228.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/96_13B70A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/96_13B70A17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/97_13BE0E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/97_13BE0E17.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/98_3A40628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/98_3A40628.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/99_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/99_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/9_1FB20417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/9_1FB20417.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/ADD sp, sp, #-0x210.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "ADD sp, sp, #-0x210" {
3 | "6
4 | operation=LLIL_SUB
5 | llil=x19#1 - 0x138
6 | " -> "7
7 | stop_reg=x19
8 | "
9 | "6
10 | operation=LLIL_SUB
11 | llil=x19#1 - 0x138
12 | " -> "8
13 | value=312
14 | "
15 | "5
16 | llil=x21#1 = x19#1 - 0x138
17 | " -> "6
18 | operation=LLIL_SUB
19 | llil=x19#1 - 0x138
20 | "
21 | "4
22 | llil=x21#1
23 | " -> "5
24 | llil=x21#1 = x19#1 - 0x138
25 | "
26 | "3
27 | operation=LLIL_ADD
28 | llil=x21#1 + 8
29 | " -> "4
30 | llil=x21#1
31 | "
32 | "3
33 | operation=LLIL_ADD
34 | llil=x21#1 + 8
35 | " -> "9
36 | value=8
37 | "
38 | "2
39 | llil=x11#42 = x21#1 + 8
40 | " -> "3
41 | operation=LLIL_ADD
42 | llil=x21#1 + 8
43 | "
44 | "1
45 | llil=x11#42
46 | " -> "2
47 | llil=x11#42 = x21#1 + 8
48 | "
49 | "0
50 | operation=LLIL_ADD
51 | llil=x11#42 + (zx.q(x8#11.w8) << 3)
52 | " -> "1
53 | llil=x11#42
54 | "
55 | "11
56 | ext=LLIL_ZX
57 | llil=zx.q(x8#11.w8)
58 | " -> "12
59 | reg=w8
60 | "
61 | "10
62 | operation=LLIL_LSL
63 | llil=zx.q(x8#11.w8) << 3
64 | " -> "11
65 | ext=LLIL_ZX
66 | llil=zx.q(x8#11.w8)
67 | "
68 | "10
69 | operation=LLIL_LSL
70 | llil=zx.q(x8#11.w8) << 3
71 | " -> "13
72 | value=3
73 | "
74 | "0
75 | operation=LLIL_ADD
76 | llil=x11#42 + (zx.q(x8#11.w8) << 3)
77 | " -> "10
78 | operation=LLIL_LSL
79 | llil=zx.q(x8#11.w8) << 3
80 | "
81 | "ADD sp, sp, #-0x210" -> "0
82 | operation=LLIL_ADD
83 | llil=x11#42 + (zx.q(x8#11.w8) << 3)
84 | "
85 | "26
86 | operation=LLIL_SUB
87 | llil=x19#1 - 0x138
88 | " -> "27
89 | stop_reg=x19
90 | "
91 | "26
92 | operation=LLIL_SUB
93 | llil=x19#1 - 0x138
94 | " -> "28
95 | value=312
96 | "
97 | "25
98 | llil=x21#1 = x19#1 - 0x138
99 | " -> "26
100 | operation=LLIL_SUB
101 | llil=x19#1 - 0x138
102 | "
103 | "24
104 | llil=x21#1
105 | " -> "25
106 | llil=x21#1 = x19#1 - 0x138
107 | "
108 | "23
109 | operation=LLIL_ADD
110 | llil=x21#1 + 8
111 | " -> "24
112 | llil=x21#1
113 | "
114 | "23
115 | operation=LLIL_ADD
116 | llil=x21#1 + 8
117 | " -> "29
118 | value=8
119 | "
120 | "22
121 | llil=x11#42 = x21#1 + 8
122 | " -> "23
123 | operation=LLIL_ADD
124 | llil=x21#1 + 8
125 | "
126 | "21
127 | llil=x11#42
128 | " -> "22
129 | llil=x11#42 = x21#1 + 8
130 | "
131 | "20
132 | operation=LLIL_ADD
133 | llil=x11#42 + (zx.q(x9#6.w9) << 3)
134 | " -> "21
135 | llil=x11#42
136 | "
137 | "31
138 | ext=LLIL_ZX
139 | llil=zx.q(x9#6.w9)
140 | " -> "32
141 | reg=w9
142 | "
143 | "30
144 | operation=LLIL_LSL
145 | llil=zx.q(x9#6.w9) << 3
146 | " -> "31
147 | ext=LLIL_ZX
148 | llil=zx.q(x9#6.w9)
149 | "
150 | "30
151 | operation=LLIL_LSL
152 | llil=zx.q(x9#6.w9) << 3
153 | " -> "33
154 | value=3
155 | "
156 | "20
157 | operation=LLIL_ADD
158 | llil=x11#42 + (zx.q(x9#6.w9) << 3)
159 | " -> "30
160 | operation=LLIL_LSL
161 | llil=zx.q(x9#6.w9) << 3
162 | "
163 | "19
164 | operation=LLIL_LOAD_SSA
165 | llil=[x11#42 + (zx.q(x9#6.w9) << 3)].q @ mem#26
166 | " -> "20
167 | operation=LLIL_ADD
168 | llil=x11#42 + (zx.q(x9#6.w9) << 3)
169 | "
170 | "18
171 | llil=x9#61 = [x11#42 + (zx.q(x9#6.w9) << 3)].q @ mem#26
172 | " -> "19
173 | operation=LLIL_LOAD_SSA
174 | llil=[x11#42 + (zx.q(x9#6.w9) << 3)].q @ mem#26
175 | "
176 | "17
177 | llil=x9#61
178 | " -> "18
179 | llil=x9#61 = [x11#42 + (zx.q(x9#6.w9) << 3)].q @ mem#26
180 | "
181 | "16
182 | operation=LLIL_ADD
183 | llil=x9#61 + sx.q((x10#52.w10).w)
184 | " -> "17
185 | llil=x9#61
186 | "
187 | "34
188 | ext=LLIL_SX
189 | llil=sx.q((x10#52.w10).w)
190 | " -> "35
191 | reg=w10
192 | "
193 | "16
194 | operation=LLIL_ADD
195 | llil=x9#61 + sx.q((x10#52.w10).w)
196 | " -> "34
197 | ext=LLIL_SX
198 | llil=sx.q((x10#52.w10).w)
199 | "
200 | "15
201 | llil=x9#62 = x9#61 + sx.q((x10#52.w10).w)
202 | " -> "16
203 | operation=LLIL_ADD
204 | llil=x9#61 + sx.q((x10#52.w10).w)
205 | "
206 | "14
207 | llil=x9#62
208 | " -> "15
209 | llil=x9#62 = x9#61 + sx.q((x10#52.w10).w)
210 | "
211 | "ADD sp, sp, #-0x210" -> "14
212 | llil=x9#62
213 | "
214 | }
215 |
--------------------------------------------------------------------------------
/Vm/doctest-output/ADD sp, sp, #-0x210.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/ADD sp, sp, #-0x210.gv.pdf
--------------------------------------------------------------------------------
/Vm/doctest-output/extra_info_match.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/Vm/doctest-output/extra_info_match.gv.pdf
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
1 | from binaryninja import *
2 |
3 | from .header_less import print_jump_target
4 | # from .header_less import Arm64RetHook
5 | from .work_flow import cus_workflow
6 | from .user_il import create_user_func
7 |
8 |
9 | pwf = Workflow().clone("PythonLogWarnWorkflow")
10 | pwf.show_topology()
11 | pwf.register_activity(Activity("PythonLogWarn", action=cus_workflow))
12 | # pwf.insert("core.function.translateTailCalls", ["PythonLogWarn"])
13 | pwf.insert("core.function.generateMediumLevelIL", ["PythonLogWarn"])
14 | pwf.register()
15 |
16 |
17 | title = "启动自定义workflow"
18 | description = "启动自定义workflow"
19 | properties = f'{{"title" : "{title}", "description" : "{description}", "type" : "boolean", "default" : false}}'
20 | _settings = Settings()
21 | _settings.register_group("zhuzhu", "My Plugin")
22 | _settings.register_setting("zhuzhu.workFlow", properties)
23 |
24 | def plugin_main(bv: BinaryView,func):
25 | # print(bv.arch.regs)
26 | # print_jump_target(bv)
27 |
28 | create_user_func(bv)
29 | # if Settings().get_bool("zhuzhu.workFlow"):
30 | # _settings.set_bool("zhuzhu.workFlow", False)
31 | # else:
32 | # _settings.set_bool("zhuzhu.workFlow", True)
33 | # is_enbale_custom_workflow = Settings().get_bool("zhuzhu.workFlow")
34 | # log_info("zhuzhu.custom_workflow : {}".format(is_enbale_custom_workflow))
35 | #
36 | # bv.get_functions_containing(0x9cc7c)[0].reanalyze()
37 | # PluginCommand.register("ROP\\Create ROP Function", "Make some space for your ROP", plugin_main)
38 | PluginCommand.register_for_function("切换workflow状态", "Make some space for your ROP", plugin_main)
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/__pycache__/VMEngine.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/VMEngine.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/__init__.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/__init__.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/graphviz_tools.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/graphviz_tools.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/graphviz_tools.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/graphviz_tools.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/header_less.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/header_less.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/header_less.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/header_less.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/user_il.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/user_il.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/user_il.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/user_il.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/utils.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/utils.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/utils.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/utils.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/vm_tools.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/vm_tools.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/work_flow.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/work_flow.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/work_flow.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/__pycache__/work_flow.cpython-311.pyc
--------------------------------------------------------------------------------
/angr_tools.py:
--------------------------------------------------------------------------------
1 |
2 |
3 | def collect_action_info(found_state,start_address):
4 | addrs = []
5 | index = 0
6 | addr2action = {
7 |
8 | }
9 | for action in found_state.history.actions:
10 | real_addr = action.ins_addr - start_address
11 |
12 | if index != 0 and addrs[index - 1] == real_addr:
13 | addr2action[real_addr].append(action)
14 | continue
15 | addrs.append(real_addr)
16 | addr2action[real_addr] = []
17 | addr2action[real_addr].append(action)
18 | index += 1
19 |
20 | return addrs,addr2action
--------------------------------------------------------------------------------
/arch_hook.py:
--------------------------------------------------------------------------------
1 | from binaryninja.architecture import Architecture, ArchitectureHook
2 | from capstone import *
3 | from binaryninja import *
4 | import binaryninja._binaryninjacore as core
5 | md = Cs(CS_ARCH_ARM64, CS_MODE_ARM)
6 | md.detail = True
7 |
8 |
9 |
10 |
11 |
12 |
13 | class Arm64RetHook(ArchitectureHook):
14 |
15 | def __init__(self, base_arch):
16 | super(Arm64RetHook, self).__init__(base_arch)
17 |
18 | # def get_instruction_info(self, data, addr):
19 | # info = super(Arm64RetHook, self).get_instruction_info(data, addr)
20 | # branches = info.branches
21 | # # So dataflow doesn't stop at a return
22 | # for b in branches:
23 | # if b.type == BranchType.FunctionReturn:
24 | # b.type = BranchType.UnresolvedBranch
25 | # info.branches = branches
26 | # return info
27 |
28 | def get_instruction_low_level_il(self, data, addr, il: LowLevelILFunction):
29 | insn = md.disasm(data, addr)
30 | il.handle
31 | if addr == 0x9cc58:
32 | core.BNLowLevelILAddExprWithLocation(il.handle,LowLevelILOperation.LLIL_SET_REG)
33 | # nzcv_reg = self.get_reg_index("nzcv")
34 | il
35 | # il.set_flag()
36 | il.append(il.set_reg(4, "nzcv",il.reg(4,"nzcv")))
37 | # il.append(il.set_reg(16,"w1",il.const(16,2)))
38 | # return 4
39 |
40 | return super(Arm64RetHook, self).get_instruction_low_level_il(data, addr, il)
41 |
--------------------------------------------------------------------------------
/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "642172":{
3 | "cmp_addr":642148,
4 | "true_addr":642176,
5 | "false_addr":642188
6 | },
7 | "642184":{
8 | "cmp_addr":642168,
9 | "true_addr":642224,
10 | "false_addr":642172
11 | },
12 | "642196":{
13 | "cmp_addr":642136,
14 | "true_addr":642200,
15 | "false_addr":642212
16 | },
17 | "642208":{
18 | "cmp_addr":642156,
19 | "true_addr":642248,
20 | "false_addr":642172
21 | },
22 | "642220":{
23 | "cmp_addr":642140,
24 | "true_addr":642296,
25 | "false_addr":642172
26 | },
27 | "procedure_addr":[
28 | 642176,
29 | 642148,
30 | 642180,
31 | 642212,
32 | 642152,
33 | 642216,
34 | 642188,
35 | 642156,
36 | 642140,
37 | 642192,
38 | 642164,
39 | 642168,
40 | 642136,
41 | 642204,
42 | 642200
43 | ],
44 | "reg2values":{
45 | "642076":{
46 | "w15":2736531929
47 | },
48 | "642080":{
49 | "w22":1482094495
50 | },
51 | "642084":{
52 | "w23":1104611000
53 | },
54 | "642112":{
55 | "x21":-206106152
56 | },
57 | "642128":{
58 | "w12":2736531929
59 | },
60 | "642132":{
61 | "w22":1482094495
62 | },
63 | "642144":{
64 | "w23":1104611000
65 | },
66 | "642160":{
67 | "w15":2736531929
68 | },
69 | "642240":{
70 | "w23":1104611000,
71 | "w22":1482094495
72 | },
73 | "642284":{
74 | "w15":2736531929
75 | }
76 | }
77 | }
--------------------------------------------------------------------------------
/data.py:
--------------------------------------------------------------------------------
1 | global_war = 0
--------------------------------------------------------------------------------
/de_br.py:
--------------------------------------------------------------------------------
1 | aaa=0
--------------------------------------------------------------------------------
/dec_opcode.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | #
4 | # for i in range(int(0x538/8)):
5 | # print(hex(int(i*8)))
6 | import struct
7 |
8 | pcode_start = 0xB090
9 | pcode_size = 0x2D8
10 | with open(r"D:\window\AndroidRe\ttEncrypt\libEncryptor.so", "rb") as f:
11 | content = f.read()
12 | bytes_code = content[pcode_start: pcode_start + pcode_size]
13 | def un():
14 |
15 | insts_sets = {}
16 | for pc in range(0, pcode_size, 4):
17 | word = struct.unpack(" 0:
19 | opcode = word[0]
20 | op1 = opcode & 0x3F
21 | if insts_sets.get(op1, None) == None:
22 | insts_sets[op1] = 1
23 | else:
24 | insts_sets[op1] += 1
25 | sorted_dict = dict(sorted(insts_sets.items(), key=lambda item: item[1], reverse=True))
26 | for inst, count in sorted_dict.items():
27 | print(f'op1: {inst} [{hex(inst)}], count: {count}', hex(0xab24 + (inst << 2)))
28 |
29 |
30 | def pb(value):
31 | binary_representation = f"{value:032b}"
32 | header = ""
33 | for i in range(32):
34 | _str = f"{i:<3d}"
35 | header = f"{_str}{header}"
36 | header+="\r\n"
37 | for i in range(32):
38 | _str = f"{binary_representation[i]:<3s}"
39 | header+=_str
40 | print(header)
41 | # Rotate left: 0b1001 --> 0b0011
42 | rol = lambda val, r_bits, max_bits: \
43 | (val << r_bits%max_bits) & (2**max_bits-1) | \
44 | ((val & (2**max_bits-1)) >> (max_bits-(r_bits%max_bits)))
45 | # Rotate right: 0b1001 --> 0b1100
46 | ror = lambda val, r_bits, max_bits: \
47 | ((val & (2**max_bits-1)) >> r_bits%max_bits) | \
48 | (val << (max_bits-(r_bits%max_bits)) & (2**max_bits-1))
49 | def get_imm16(opcode, sign=True):
50 | # opcode[15-12] | opcode[31->11] | opcode[30->10] | opcode[29->9] | opcode[28->8] | opcode[27->7] | opcode[26->6] | opcode[11-6->5-0]
51 | result = (opcode & 0xF000) | (opcode >> 20 & 0xFC0) | (opcode >> 6 & 0x3F)
52 | if result & 0x8000 and sign:
53 | return result | ~0xFFFF
54 | else:
55 | return result
56 |
57 |
58 | def get_openand1(opcode):
59 | # w8
60 | return opcode >> 16 & 0x1F
61 |
62 |
63 | def get_operand2(opcode):
64 | # w9
65 | return opcode >> 21 & 0x1F
66 |
67 |
68 | def get_operand3(opcode):
69 | # w10
70 | return ((opcode & 0xF000) >> 11) | \
71 | opcode >> 31
72 |
73 |
74 | def get_operand4(opcode):
75 | # w11
76 | return opcode >> 26 & 0x1F
77 |
78 | def get_op1(opcode):
79 | return opcode & 0x3F
80 | def outer_decode():
81 | for pc in range(0, pcode_size, 4):
82 | word = struct.unpack(" 0:
84 |
85 | opcode = word[0]
86 | print(hex(opcode),",")
87 | op1 = get_op1(opcode)
88 | Xt = get_openand1(opcode) # x8/w8
89 | Xn = get_operand2(opcode) # x9/w9
90 | Xm = get_operand3(opcode) # x10/w10
91 | X4 = get_operand4(opcode) # x11/w11
92 |
93 | # if opcode ==
94 | match op1:
95 | case 11:
96 | jump_key = ror(((opcode & 0xfff) - 0xb),6,32)
97 | print(f'opcode[1]:{opcode & 0x3f} hex(bv.parse_expression("(([0xa6a0 + {hex((opcode & 0x3f) << 2)}].d)+0xa6a0) & 0xffffffff")) ')
98 | print(f'opcode[2]:{opcode & 0x3f} hex(bv.parse_expression("(([0xadb0 + {hex(jump_key << 2)}].d)+0xadb0) & 0xffffffff")) ')
99 |
100 | case 23:
101 |
102 |
103 | print(f'opcode[1]:{opcode & 0x3f} hex(bv.parse_expression("(([0xa6a0 + {hex((opcode & 0x3f) << 2)}].d)+0xa6a0) & 0xffffffff")) ')
104 | print(f'opcode[2]:{opcode & 0x3f} hex(bv.parse_expression("(([0xab24 + {hex(((opcode & 0x3f) - 0x14) << 2)}].d)+0xab24) & 0xffffffff")) ')
105 | print(f"opcode: str {op1}[{hex(op1)}] Xt:{Xt:>2d} Xn:{Xn:>2d} imm:{hex(get_imm16(opcode))} ")
106 | pass
107 | case 21:
108 | print(f'opcode[1]:{opcode & 0x3f} hex(bv.parse_expression("(([0xa6a0 + {hex((opcode & 0x3f) << 2)}].d)+0xa6a0) & 0xffffffff")) ')
109 | print(f"opcode: add {op1}[{hex(op1)}] Xt:{Xt:>2d} Xn:{Xn:>2d} imm:{hex(get_imm16(opcode))} ")
110 | pass
111 | aaa=0
112 | # 0x2e50 0x3380
113 |
114 | # print(f'opcode[2]:{w12 & 0x3f} hex(bv.parse_expression("(([0xab24 + {hex(((w12 & 0x3f)-0x14)<<2)}].d)+0xab24) & 0xffffffff")) ')
115 |
116 |
117 |
118 | outer_decode()
119 | # hex(0xffffffff & bv.parse_expression("[0xa6fc].d")+0xa6a0)
120 | # hex(0xffffffff & bv.parse_expression("[0xa6fc].d")+0xab24)
--------------------------------------------------------------------------------
/doctest-output/100_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "100_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "100_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "100_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/100_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/100_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/101_13A50A15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/101_13A50A15.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/102_13A50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/102_13A50415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/103_4010015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/103_4010015.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/104_13BE0617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/104_13BE0617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/105_13B60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/105_13B60417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/106_13A10817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/106_13A10817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/107_3BE0828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/107_3BE0828.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/108_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/108_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/109_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "109_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "109_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "109_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/109_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/109_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/10_1FB10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/10_1FB10217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/110_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/110_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/111_FA50E15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/111_FA50E15.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/112_6C10015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/112_6C10015.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/113_13B70017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/113_13B70017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/114_FA10E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/114_FA10E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/115_13B30217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/115_13B30217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/116_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/116_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/117_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "117_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "117_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "117_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/117_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/117_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/118_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/118_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/119_10811.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/119_10811.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/11_1FB00017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/11_1FB00017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/120_FB50A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/120_FB50A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/121_3B30A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/121_3B30A28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/122_FB30817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/122_FB30817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/123_FA10C30.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/123_FA10C30.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/124_3A40C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/124_3A40C28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/125_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/125_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/126_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "126_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "126_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "126_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/126_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/126_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/127_FA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/127_FA50815.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/128_2610995.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/128_2610995.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/129_3B30428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/129_3B30428.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/12_E081CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/12_E081CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/130_20411.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/130_20411.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/131_BA30215.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/131_BA30215.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/132_BB30A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/132_BB30A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/133_BA20C30.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/133_BA20C30.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/134_BB40E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/134_BB40E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/135_FB60017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/135_FB60017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/136_FB10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/136_FB10217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/137_FA10417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/137_FA10417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/138_FA30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/138_FA30617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/139_BA10228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/139_BA10228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/13_8B0428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/13_8B0428.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/140_FC21F695.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/140_FC21F695.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/141_BA10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/141_BA10217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/142_3A40E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/142_3A40E28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/143_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/143_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/144_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "144_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "144_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "144_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/144_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/144_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/145_BA50A15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/145_BA50A15.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/146_BA20228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/146_BA20228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/148_64B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/148_64B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/149_410995.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/149_410995.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/14_8C0028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/14_8C0028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/151_2410017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/151_2410017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/152_BB50817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/152_BB50817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/153_BA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/153_BA50815.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/154_7B10028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/154_7B10028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/155_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/155_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/156_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "156_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "156_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "156_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/156_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/156_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/157_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/157_22021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/158_BB30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/158_BB30617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/159_BA50615.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/159_BA50615.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/15_C20028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/15_C20028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/160_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/160_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/161_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "161_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "161_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "161_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/161_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/161_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/162_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/162_22021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/163_BA50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/163_BA50415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/164_BB60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/164_BB60417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/165_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/165_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/166_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "166_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "166_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "166_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/166_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/166_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/167_22021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/167_22021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/168_1FB00028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/168_1FB00028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/169_1FB10228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/169_1FB10228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/16_C30228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/16_C30228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/170_1FB20428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/170_1FB20428.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/171_1FB30628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/171_1FB30628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/172_1FB40828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/172_1FB40828.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/173_1FB50A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/173_1FB50A28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/174_1FB60C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/174_1FB60C28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/175_1FB70E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/175_1FB70E28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/176_23BE0028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/176_23BE0028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/177_23BF0228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/177_23BF0228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/179_23BD0415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/179_23BD0415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/17_C50428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/17_C50428.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/18_C70628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/18_C70628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/19_C80828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/19_C80828.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/1_DFBDFC15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/1_DFBDFC15.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/20_C90A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/20_C90A28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/21_920628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/21_920628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/22_CA0C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/22_CA0C28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/23_C60E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/23_C60E28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/24_930228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/24_930228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/25_6610D95.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/25_6610D95.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/26_BA10217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/26_BA10217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/27_2440028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/27_2440028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/2_23BF0217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/2_23BF0217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/30_64B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/30_64B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/31_F001F8B4.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/31_F001F8B4.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/32_2400017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/32_2400017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/32_84215C07.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/32_84215C07.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/33_1FB00028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/33_1FB00028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/33_C1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/33_C1230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/34_1FB10228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/34_1FB10228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/34_7A40017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/34_7A40017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/35_141230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/35_141230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/35_1FB20428.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/35_1FB20428.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/36_1FB30628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/36_1FB30628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/36_3A40E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/36_3A40E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/37_121230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/37_121230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/37_1FB40828.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/37_1FB40828.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/38_1FB50A28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/38_1FB50A28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/38_3A40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/38_3A40C17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/39_101230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/39_101230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/39_1FB60C28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/39_1FB60C28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/3_23BE0017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/3_23BE0017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/40_1FB70E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/40_1FB70E28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/40_3A40817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/40_3A40817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/41_23BE0028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/41_23BE0028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/41_E1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/41_E1230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/42_23BF0228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/42_23BF0228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/42_3A40617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/42_3A40617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/43_A1230B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/43_A1230B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/44_23BD0415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/44_23BD0415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/44_3A40017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/44_3A40017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/45_8061B30B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/45_8061B30B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/46_41F30B.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/46_41F30B.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/47_140815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/47_140815.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/48_1BB40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/48_1BB40C17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/49_1BA50C15.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/49_1BA50C15.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/4_1FB70E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/4_1FB70E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/50_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/50_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/51_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/51_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/52_3AB0A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/52_3AB0A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/53_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "53_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "53_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "53_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/53_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/53_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/54_3AC0217.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/54_3AC0217.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/55_1BB40A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/55_1BB40A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/56_1BB50E28.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/56_1BB50E28.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/57_1BB50817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/57_1BB50817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/58_1BA50815.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/58_1BA50815.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/59_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/59_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/5_1FB60C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/5_1FB60C17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/60_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "60_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "60_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "60_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/60_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/60_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/61_2E021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/61_2E021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/62_1BA50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/62_1BA50415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/63_160415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/63_160415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/64_1BB60417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/64_1BB60417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/65_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/65_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/66_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "66_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "66_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "66_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/66_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/66_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/67_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/67_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/68_1BA50015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/68_1BA50015.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/69_1BB60017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/69_1BB60017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/6_1FB50A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/6_1FB50A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/70_1BB10628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/70_1BB10628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/71_3B10417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/71_3B10417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/72_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/72_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/73_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "73_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "73_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "73_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/73_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/73_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/74_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/74_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/75_17B50417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/75_17B50417.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/76_17B40617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/76_17B40617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/77_17B10817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/77_17B10817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/78_17B60A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/78_17B60A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/79_17B60E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/79_17B60E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/7_1FB40817.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/7_1FB40817.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/80_1BB40228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/80_1BB40228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/81_17B40C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/81_17B40C17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/82_3A40028.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/82_3A40028.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/83_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/83_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/84_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "84_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "84_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "84_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/84_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/84_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/85_17A50415.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/85_17A50415.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/86_6710015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/86_6710015.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/87_17A50015.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/87_17A50015.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/88_17B10017.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/88_17B10017.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/89_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/89_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/8_1FB30617.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/8_1FB30617.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/90_8320FACB.gv:
--------------------------------------------------------------------------------
1 | // The Round Table
2 | digraph "90_8320FACB" {
3 | "0
4 | 3550
5 | operation -> LLIL_ADD
6 | llil -> x19#1 - 0x10
7 | " -> "1
8 | stop_reg -> x19
9 | "
10 | "0
11 | 3550
12 | operation -> LLIL_ADD
13 | llil -> x19#1 - 0x10
14 | " -> "2
15 | value -> -16
16 | "
17 | "90_8320FACB" -> "0
18 | 3550
19 | operation -> LLIL_ADD
20 | llil -> x19#1 - 0x10
21 | "
22 | "4
23 | 441C
24 | operation -> LLIL_ADD
25 | llil -> x0#2 + 8
26 | " -> "5
27 | stop_reg -> x0
28 | "
29 | "4
30 | 441C
31 | operation -> LLIL_ADD
32 | llil -> x0#2 + 8
33 | " -> "6
34 | value -> 8
35 | "
36 | "3
37 | 3550
38 | reg -> x8
39 | llil -> x8#260
40 | " -> "4
41 | 441C
42 | operation -> LLIL_ADD
43 | llil -> x0#2 + 8
44 | "
45 | "90_8320FACB" -> "3
46 | 3550
47 | reg -> x8
48 | llil -> x8#260
49 | "
50 | }
51 |
--------------------------------------------------------------------------------
/doctest-output/90_8320FACB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/90_8320FACB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/91_3C021CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/91_3C021CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/92_7BE0215.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/92_7BE0215.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/93_17B60228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/93_17B60228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/94_13B30C17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/94_13B30C17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/95_3B70228.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/95_3B70228.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/96_13B70A17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/96_13B70A17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/97_13BE0E17.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/97_13BE0E17.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/98_3A40628.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/98_3A40628.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/99_8200C1CB.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/99_8200C1CB.gv.pdf
--------------------------------------------------------------------------------
/doctest-output/9_1FB20417.gv.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/doctest-output/9_1FB20417.gv.pdf
--------------------------------------------------------------------------------
/dy_code.py:
--------------------------------------------------------------------------------
1 | bbb=0
--------------------------------------------------------------------------------
/graphviz_tools.py:
--------------------------------------------------------------------------------
1 | import graphviz
2 |
3 |
4 | def generate_dot_for_llil_var(root: str, tree: dict):
5 | dot = graphviz.Digraph(f'{root}', comment='The Round Table')
6 | index = 0
7 |
8 | def _fill_content(parent=None, _tree=None):
9 | nonlocal index
10 | if parent is None:
11 | if tree.get("left_child") is not None:
12 | left = _fill_content("root", tree["left_child"])
13 | dot.edge(root, left)
14 | if tree.get("right_child") is not None:
15 | right = _fill_content("root", tree["right_child"])
16 | dot.edge(root, right)
17 | if tree.get("child"):
18 | child = _fill_content("root", tree["child"])
19 | dot.edge(root, child)
20 | else:
21 | llil = _tree["il"]
22 | current_node_text = f"{index}\n{hex(llil.address)}\n{llil.operation.name}\n{str(llil)}"
23 | index += 1
24 | if _tree.get("left_child") is not None:
25 | left = _fill_content(current_node_text, _tree["left_child"])
26 | dot.edge(current_node_text, left)
27 | if _tree.get("right_child") is not None:
28 | right = _fill_content(current_node_text, _tree["right_child"])
29 | dot.edge(current_node_text, right)
30 |
31 | if _tree.get("child"):
32 | child = _fill_content(current_node_text, _tree["child"])
33 | dot.edge(current_node_text, child)
34 |
35 | return current_node_text
36 |
37 | _fill_content()
38 |
39 | dot.render(directory='doctest-output', view=True)
40 |
41 |
42 | if __name__ == '__main__':
43 | dot = graphviz.Digraph('hello')
44 |
--------------------------------------------------------------------------------
/plugin.json:
--------------------------------------------------------------------------------
1 | {
2 | "pluginmetadataversion": 2,
3 | "name": "deobf",
4 | "type": [
5 | "core",
6 | "ui",
7 | "architecture",
8 | "binaryview",
9 | "helper"
10 | ],
11 | "api": [
12 | "python3"
13 | ],
14 | "description": "deobf",
15 | "longdescription": "deobf tx libtprt's obfuscation",
16 | "license": {
17 | "name": "GPL-3.0",
18 | "text": "Copyright (c) 2024 <0xEEEE>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
19 | },
20 | "platforms": [
21 | "Darwin",
22 | "Linux",
23 | "Windows"
24 | ],
25 | "installinstructions": {
26 | "Darwin": "Install `unicorn` using pip : `pip install setuptools unicorn`",
27 | "Linux": "Install `unicorn` using pip : `pip install setuptools unicorn`",
28 | "Windows": "Install `unicorn` using pip : `pip install setuptools unicorn`"
29 | },
30 | "dependencies": {
31 | },
32 | "version": "1.0.0",
33 | "author": "0xEEEE",
34 | "minimumbinaryninjaversion": 5571
35 | }
36 |
--------------------------------------------------------------------------------
/symbolic_.py:
--------------------------------------------------------------------------------
1 | from angr import SimulationManager
2 | import angr
3 | from queue import Queue
4 | from angr.procedures.procedure_dict import SIM_PROCEDURES
5 | from pyvex.lifting.util import JumpKind
6 |
7 |
8 | def loop_state(simgr : SimulationManager):
9 |
10 | # if simgr.successors(state).is_empty:
11 | # return
12 | new_state = simgr.step()
13 | while len(simgr.active) > 0:
14 | for active_index,active in enumerate(simgr.active):
15 | for index,suc in enumerate(new_state.successors(active)):
16 | print(hex(active.addr),f" - [{active_index}][{index}]-> " ,hex(suc.addr))
17 | print("*"*10)
18 | new_state = simgr.step()
19 | # for index,active_state in enumerate(simgr.active):
20 | # print(hex(state.addr) ,f" - [{index}]-> " , hex(active_state.addr))
21 | # loop_state(simgr,active_state)
22 |
23 | project = angr.Project('D:/TMP/libtprt.so', load_options={"auto_load_libs": False})
24 |
25 | def get_dispatcher_state(function):
26 | state = project.factory.call_state(addr=function)
27 | # Ignore function calls
28 | # https://github.com/angr/angr/issues/723
29 | state.options.add(angr.options.CALLLESS)
30 | simgr = project.factory.simulation_manager(state)
31 | # Find the dispatcher
32 | # while True:
33 | # simgr.step()
34 | # assert len(simgr.active) == 1
35 | # state = simgr.active[0]
36 | # if state.addr == dispatcher:
37 | # return state.copy()
38 | # 直接使用上面的 strp无法停在分发器的开始位置,所以不能按照文章上的写
39 | simgr.explore(find=dispatcher_addr)
40 | if simgr.found:
41 | _init = simgr.found[0]
42 | return _init.copy()
43 | else:
44 | raise Exception("未找到分发器")
45 |
46 | def find_successors(state_value, dispatcher,debug = False):
47 | state = dispatcher_state.copy()
48 | setattr(state.regs,state_register_name,state.solver.BVV(state_value, 64))
49 | simgr = project.factory.simulation_manager(state)
50 | # 必须先step一下 不然就直接结束了
51 | new_sm = simgr.step()
52 | back_state = new_sm.active[0]
53 |
54 | if debug and state_value == 0xf3498be1:
55 | print(hex(state.addr)," -> ",hex(back_state.addr))
56 | while True:
57 | simgr.step()
58 | find_state = simgr.active[0]
59 | print(hex(simgr.active[0].addr))
60 | pass
61 | new_sm.explore(find=dispatcher)
62 | if new_sm.found:
63 | # [可能1] 直接跳转到下一个块
64 | # [可能2] 这个block下面有两个后继可以选择
65 | # 所以 eval_upto 第二个参数是 2
66 | found_state = new_sm.found[0]
67 | solutions = found_state.solver.eval_upto(getattr(found_state.regs,state_register_name), 2)
68 | return found_state, solutions
69 | else:
70 | # 不跳转到分发器 可能是 ret
71 | def find_ret(_state: angr.SimState):
72 | return _state.history.jumpkind == JumpKind.Ret
73 |
74 | _ret_sm = project.factory.simulation_manager(back_state)
75 | _ret_sm.explore(find=find_ret)
76 | if _ret_sm.found:
77 | found_state = _ret_sm.found[0]
78 | return found_state, []
79 | else:
80 | raise Exception("未处理异常,可能不是ret的情况")
81 | # while True:
82 | # print(f"eax: {simgr.active[0].regs.x12}")
83 | # print(f"Stepping: {simgr.active} ...")
84 | # simgr.step()
85 | # new_state = simgr.active[0]
86 | # if simgr.successors(new_state).is_empty: # 为空就是 ret 的 block
87 | # return state,[]
88 | # if new_state.addr == dispatcher:
89 | # solutions = new_state.solver.eval_upto(new_state.regs.x12, 2)
90 | # return state, solutions
91 | # state = new_state
92 |
93 |
94 | # state_value => real basic block state
95 | states = {}
96 |
97 | if __name__ == '__main__':
98 |
99 | start_address = project.loader.min_addr
100 | # state = project.factory.blank_state(addr=start_address + 0x0009cbe0, remove_options={angr.sim_options.LAZY_SOLVES})
101 | # simgr = project.factory.simulation_manager(state)
102 | # simgr = project.factory.successors(state)
103 | # project.hook(start_address+0x9ccdc, angr.SIM_PROCEDURES["stubs"]["ReturnUnconstrained"](), replace=True)
104 | # simgr.explore(find=start_address+0x9cd14)
105 | # bin_cfg = project.analyses.CFGFast(
106 | # regions=[(start_address+0x9ccdc,start_address+0x9cd14)],
107 | # normalize=True,
108 | # resolve_indirect_jumps=True,
109 | # data_references=True,
110 | # )
111 | # dispatcher_addr = start_address+0x9cc54
112 | # dispatcher_state = get_dispatcher_state(start_address + 0x0009cbe0)
113 | # 负责跳转的寄存器
114 | state_register_name = "x22"
115 | # 分发器的地址(必须是第一行)
116 | dispatcher_addr = start_address+0x9cf7c
117 | # 根据函数起始地址获取分发器的初始 state
118 | dispatcher_state = get_dispatcher_state(start_address + 0x9ceb8)
119 |
120 | print(f"Dispatcher state: {dispatcher_state}")
121 | initial_state = dispatcher_state.solver.eval_one(dispatcher_state.regs.get(state_register_name))
122 | print(f"Initial {state_register_name}: {hex(initial_state)}")
123 |
124 | q = Queue()
125 | q.put(initial_state)
126 | while not q.empty():
127 | state_value = q.get()
128 | # Skip visited states
129 | if state_value in states:
130 | continue
131 |
132 | bb_state, successors = find_successors(state_value,dispatcher_addr,False)
133 |
134 | states[state_value] = bb_state, successors
135 | for state_value in successors:
136 | q.put(state_value)
137 |
138 | for state_value,values in states.items():
139 | _state: angr.SimState = values[0]
140 | successors = values[1]
141 | if len(successors) >0 :
142 | #条件跳转
143 | print(f"{hex(state_value)} ==>",hex(_state.history.addr -start_address),[hex(i) for i in successors])
144 | else:
145 | print(f"{hex(state_value)} ==>",hex(_state.history.addr), " [ret] ")
146 |
147 | # target_func = bin_cfg.functions.get_by_addr(start_address + 0x0009cbe0)
148 | # loop_state(simgr)
149 | # simgr.step()
150 | # while len(simgr.active) > 0:
151 | # for active_state in simgr.active:
152 | # print(hex(active_state.addr))
153 | # simgr.step()
154 |
155 |
156 |
157 | # bv = load(r"D:\TMP\libtprt.so.bndb")
158 | # project = angr.Project('D:/TMP/libtprt.so', load_options={"auto_load_libs": False})
159 |
160 | # Main(bv, project)
161 |
--------------------------------------------------------------------------------
/symbolic_libEncryptor2.py:
--------------------------------------------------------------------------------
1 | import itertools
2 | import json
3 | from array import array
4 | from typing import Dict, List
5 |
6 | import angr
7 | import faulthandler
8 | import logging
9 | import copy
10 | import pyvex
11 | from angr.state_plugins import SimStateHistory
12 |
13 | from Vm import *
14 | from Vm.BinjaAst import VarAst, decode_vm_operand
15 | from Vm.CONSTS import *
16 | import binaryninja as binja
17 | from itertools import groupby
18 |
19 | from graphviz_tools import generate_dot_for_llil_var
20 | from utils import get_llil_var_def_tree
21 | from vm_tools import VmIL, VmConst
22 |
23 | # import colorlog
24 | # logging.getLogger('angr').setLevel('DEBUG')
25 |
26 | logger = logging.getLogger('angr')
27 | # logger.setLevel(logging.INFO)
28 | logger.setLevel(logging.ERROR)
29 |
30 | bv = binja.load(r"D:\window\AndroidRe\ttEncrypt\libEncryptor.so.bndb")
31 | func = bv.get_function_at(0x2c18)
32 | project = angr.Project(r'D:\window\AndroidRe\ttEncrypt\libEncryptor.so', load_options={"auto_load_libs": False})
33 |
34 | start_address = project.loader.min_addr
35 |
36 |
37 | def collect_llil_action(_history: SimStateHistory):
38 | addr2llil = {}
39 | addr2action = {}
40 | # actions_len = len(_history.actions)
41 | last_ins_addr = 0
42 | last_llil = 0
43 | addrs = []
44 | for index,action in enumerate(history.actions):
45 | ins_addr = action.ins_addr-start_address
46 | # 跟上一个action的地址不一样才收集
47 | if ins_addr != last_ins_addr:
48 | current_llil = func.get_llil_at(ins_addr)
49 | if current_llil == last_llil:
50 | # 上一个跟 现在的 llil是一样的话,就把上一个删掉
51 | del addr2llil[last_ins_addr]
52 | addr2llil[ins_addr] = current_llil
53 | addrs.append(ins_addr)
54 | if addr2action.get(ins_addr) is None:
55 | addr2action[ins_addr] = [action]
56 | else:
57 | addr2action[ins_addr].append(action)
58 |
59 | last_ins_addr = ins_addr
60 |
61 | addrs.reverse()
62 |
63 | # 这种写法会遇到写奇怪的东西
64 | # for index,action in enumerate(history.actions):
65 | # ins_addr = action.ins_addr - start_address
66 | # current_llil = func.get_llil_at(ins_addr)
67 | # if ins_addr != last_action_addr:
68 | # addr2action[current_llil.address] = [action]
69 | # last_action_addr = current_llil.address
70 | #
71 | #
72 | # addr2llil[current_llil.address] = current_llil
73 | # else:
74 | # addr2action[current_llil.address].append(action)
75 |
76 | # for addr,llil in addr2llil.items():
77 | # print(hex(addr),llil)
78 | # for action in addr2action[addr]:
79 | # print("\t",action)
80 | return addrs,addr2llil,addr2action
81 |
82 |
83 | def from_action_get_value(addr2action,hlil : binja.HighLevelILInstruction):
84 | actions = addr2action[hlil.address]
85 | actions.reverse()
86 | reg_name = hlil.llil.dest.reg.name
87 | for action in actions:
88 | if isinstance(action, angr.state_plugins.SimActionData):
89 | if action.type == action.REG and action.WRITE and action.storage == reg_name:
90 | # reg/write
91 | bv = action.data.ast
92 | actions.reverse()
93 | return bv.concrete_value,bv.length
94 | raise Exception("没有在action里面找到寄存器的值")
95 | if __name__ == '__main__':
96 | faulthandler.enable() # start @ the beginning
97 | state = project.factory.blank_state(addr=start_address+0x2AC4)
98 | project.factory.block(0x402394).vex
99 |
100 | simgr = project.factory.simgr(state)
101 | simgr.use_technique(VmExploration(start_address))
102 | # simgr.explore(find=start_address+0x3c18, extra_stop_points=[or_addr])
103 |
104 | simgr.explore(find=start_address+0x4440,
105 | extra_stop_points=
106 | [start_address+i for i in
107 | [
108 | or_offset,
109 | dispatcher_offset,
110 | external_call_offset,
111 | ip_increase_offset
112 | ]
113 | ],
114 | # [start_address+or_offset,
115 | # start_address+dispatcher_offset,
116 | # start_address+external_call_offset],
117 | # num_find=1,
118 | num_find=100,
119 | fail_fast=True
120 | )
121 | # simgr.explore(find=start_address+0x2c20,num_find=1)
122 | if simgr.found:
123 | # for found_state in simgr.found[2]:
124 | found_state = simgr.found[2]
125 | # found_state = simgr.found[0]
126 | data: VMGlobalData = found_state.VmState.data
127 |
128 | vm_info = {}
129 | for index_opcode,history in data.history:
130 | history: SimStateHistory
131 | # 最后一个 指令来
132 | last_ins_addr = history.actions[-1].ins_addr - start_address
133 | primary_llil = func.get_llil_at(last_ins_addr)
134 |
135 | if primary_llil.operation == binja.LowLevelILOperation.LLIL_STORE:
136 |
137 | primary_hlil_ssa = primary_llil.hlil.ssa_form
138 |
139 | addrs,addr2llil,addr2action = collect_llil_action(history)
140 | str_index_opcode = f"{index_opcode[0]}_{index_opcode[1]:X}"
141 | vm_info[f"{str_index_opcode}"] = list(addrs)
142 | if index_opcode[0] == 28:
143 | print("branch0(先不处理)")
144 | continue
145 | var_ast = VarAst(func, addrs)
146 | var_ast.generate_dot_for_llil_var(str_index_opcode, var_ast.tree)
147 | var_ast.explore_vm_object()
148 |
149 | if len(var_ast.left_vm_operand) < 1:
150 | print("未知")
151 | continue
152 | if len(var_ast.right_vm_operand) < 1:
153 | print("未知")
154 | continue
155 | # print(f"{index_opcode[0]}_{index_opcode[1]:X}")
156 | if index_opcode[0] == 40:
157 | pass
158 |
159 | decode_vm_operand(var_ast,addr2action)
160 | else:
161 | # 不是store就是 if ==> 跳转指令
162 | addrs = []
163 | for i in history.actions:
164 | addrs.append(i.ins_addr-start_address)
165 | for k,g in groupby(addrs):
166 | _llil = func.get_llil_at(k)
167 | # print(hex(_llil.address),_llil)
168 | # print(f"{primary_llil.operation} {primary_llil.address:X}: {primary_llil}")
169 | # print(history)
170 |
171 | if data.opcode_index2_ext_call.get(index_opcode) is not None:
172 | ext_call_addr = data.opcode_index2_ext_call.get(index_opcode)
173 | ext_call_addr -= start_address
174 | print(f"call {hex(ext_call_addr)}")
175 | pass
176 | with open("./vm_data.json","w") as f:
177 | f.write(json.dumps(vm_info))
178 |
179 |
180 |
--------------------------------------------------------------------------------
/symbolic_libEncryptor2_back.py:
--------------------------------------------------------------------------------
1 | from angr import SimulationManager
2 | import angr
3 | from queue import Queue
4 | from angr.procedures.procedure_dict import SIM_PROCEDURES
5 | from angr.sim_options import *
6 | from pyvex.lifting.util import JumpKind
7 | import pyvex
8 | import json
9 | from binaryninja import *
10 | import logging
11 | logging.getLogger('angr').setLevel('DEBUG')
12 | from graphviz_tools import generate_dot_for_llil_var
13 |
14 | project = angr.Project(r'D:\window\AndroidRe\ttEncrypt\libEncryptor.so', load_options={"auto_load_libs": False})
15 | bv = load(r"D:\window\AndroidRe\ttEncrypt\libEncryptor.so.bndb")
16 | func = bv.get_function_at(0x2c18)
17 |
18 |
19 | def get_dispatcher_state(statr_addr):
20 | state = project.factory.blank_state(addr=statr_addr)
21 | state.options.add(SYMBOL_FILL_UNCONSTRAINED_MEMORY)
22 | state.options.add(SYMBOL_FILL_UNCONSTRAINED_REGISTERS)
23 |
24 |
25 | # SYMBOL_FILL_UNCONSTRAINED_
26 | # {MEMORY, REGISTERS}
27 | # Ignore function calls
28 | # https://github.com/angr/angr/issues/723
29 | # state.options.add(angr.options.CALLLESS)
30 | simgr = project.factory.simulation_manager(state)
31 | # state.options.add(angr.options.TRACK_OP_ACTIONS)
32 | # state.options.add(angr.options.TRACK_ACTION_HISTORY)
33 | # state.options.add(angr.options.TRACK_REGISTER_ACTIONS)
34 | # 记录中间变量
35 | # state.options.add(angr.options.TRACK_TMP_ACTIONS)
36 | simgr.explore(find=dispatcher_addr)
37 | # simgr.explore(find=start_address+ 0x3c1c)
38 | if simgr.found:
39 | _init = simgr.found[0]
40 | return _init.copy()
41 | else:
42 | raise Exception("未找到分发器")
43 |
44 |
45 | def explore_vm(init_state):
46 | init_state.options.add(angr.options.TRACK_REGISTER_ACTIONS)
47 |
48 | ip_increase_addr = start_address + 0x00003a78 # ip++ 的位置
49 | simgr = project.factory.simulation_manager(init_state)
50 |
51 | def step_func(lsm: angr.SimulationManager):
52 |
53 | """
54 | if len(lsm.active) != 1:
55 | raise Exception("未知")
56 | sim_state = lsm.active[0]
57 | if dispatcher_addr == sim_state.addr:
58 | opcode = sim_state.regs.w12.v
59 | index2opcode[index] = opcode
60 | # new_simgr = project.factory.simulation_manager(new_state)
61 | IndexOpcode2simgr[f"{index}_{opcode:X}"] = sim_state.history.actions
62 | sim_state.history.trim()
63 | index += 1
64 | if start_address+0x2cd4 == sim_state.addr:
65 | sim_state.history.trim()
66 | if ip_increase_addr == sim_state.addr:
67 | print(f"ip increase addr : {sim_state.addr}")
68 | """
69 | return lsm
70 |
71 | simgr.explore(find=start_address + 0x3c18, step_func=step_func,
72 | extra_stop_points=[dispatcher_addr,
73 | ip_increase_addr])
74 |
75 | if simgr.found:
76 | aaa = 0
77 |
78 |
79 | if __name__ == '__main__':
80 | start_address = project.loader.min_addr
81 |
82 | # 负责跳转的寄存器
83 | state_register_name = "w12"
84 | # 分发器的地址(必须是第一行)
85 | dispatcher_addr = start_address + 0x2cd0
86 | # 根据函数起始地址获取分发器的初始 state
87 | dispatcher_state = get_dispatcher_state(start_address + 0x2ac4)
88 |
89 | print(f"Dispatcher state: {dispatcher_state}")
90 | initial_state = dispatcher_state.solver.eval_one(dispatcher_state.regs.get(state_register_name))
91 | print(f"Initial {state_register_name}: {hex(initial_state)}")
92 |
93 | collected_info = {
94 |
95 | }
96 | # explore_vm(init_state=dispatcher_state)
97 |
98 | # bv = load(r"D:\TMP\libtprt.so.bndb")
99 | # project = angr.Project('D:/TMP/libtprt.so', load_options={"auto_load_libs": False})
100 |
101 | # Main(bv, project)
102 |
--------------------------------------------------------------------------------
/symbolic_libEncryptor2_back2.py:
--------------------------------------------------------------------------------
1 |
2 | import angr
3 | import faulthandler
4 | import logging
5 | import copy
6 | import pyvex
7 | from Vm import *
8 |
9 | # import colorlog
10 | # logging.getLogger('angr').setLevel('DEBUG')
11 |
12 | # logger = logging.getLogger('angr')
13 | # logger.setLevel(logging.INFO)
14 |
15 | project = angr.Project(r'D:\window\AndroidRe\ttEncrypt\libEncryptor.so', load_options={"auto_load_libs": False})
16 |
17 | start_address = project.loader.min_addr
18 |
19 | dispatcher_addr = start_address + 0x2cc8
20 | or_addr = start_address + 0x3920
21 |
22 |
23 | if __name__ == '__main__':
24 | faulthandler.enable() # start @ the beginning
25 |
26 | state = project.factory.blank_state(addr=start_address+0x2AC4)
27 |
28 | state.register_plugin("VmState",VmState())
29 |
30 |
31 | simgr = project.factory.simgr(state)
32 | # simgr.use_technique(VmExploration(start_address))
33 | # simgr.explore(find=start_address+0x3c18, extra_stop_points=[or_addr])
34 | # simgr.explore(find=start_address+0x4440,
35 | # extra_stop_points=[or_addr,dispatcher_addr],num_find=1)
36 | simgr.explore(find=start_address+0x2c20,num_find=1)
37 | if simgr.found:
38 |
39 | found_state = simgr.found[0]
40 | found_state.options.add(angr.options.CALLLESS)
41 |
42 | def my_engine_process(state):
43 | if state.addr == dispatcher_addr:
44 | solver =state.solver
45 | x0 = state.regs.x0
46 | solver.eval_one(x0)
47 | opcode = state.memory.load(solver.eval_one(x0), 4).reversed
48 | opcode = solver.eval_one(opcode)
49 | state.VmState.add_opcode(opcode)
50 |
51 |
52 | found_state.inspect.make_breakpoint("engine_process",when=angr.BP_BEFORE,action=my_engine_process)
53 | new_simgr = project.factory.simgr(found_state)
54 | new_simgr.explore(find=start_address+0x4440,
55 | extra_stop_points=[or_addr,dispatcher_addr],num_find=100)
56 | if new_simgr.found:
57 |
58 | # for found in simgr.found:
59 | # for t_state in simgr.found[0].VmState.dataClass.vmStates:
60 | # t_state : VmState
61 | # print(hex(t_state.opcode))
62 | print(new_simgr.found)
63 |
64 |
--------------------------------------------------------------------------------
/test_exe.py:
--------------------------------------------------------------------------------
1 | from itertools import groupby
2 |
3 | import angr
4 | from VMEngine import VmEngine
5 |
6 |
7 | project = angr.Project(r'D:\window\code\c++\MesonX\buildDir\main.exe',
8 | engine=VmEngine,
9 | load_options={"auto_load_libs": False})
10 |
11 |
12 | def get_dispatcher_state():
13 | state = project.factory.blank_state(addr=start_addr + 0x1000)
14 | blokc_vex = project.factory.block(addr=start_addr + 0x1000).vex
15 |
16 | state.options.add(angr.options.TRACK_OP_ACTIONS)
17 | state.options.add(angr.options.TRACK_ACTION_HISTORY)
18 | state.options.add(angr.options.TRACK_REGISTER_ACTIONS)
19 |
20 | state.regs.rcx = state.solver.BVS("rcx", 64, uninitialized=True)
21 | state.regs.rdx = state.solver.BVS("rdx", 64, uninitialized=True)
22 | simgr = project.factory.simulation_manager(state)
23 |
24 | # bin_cfg = project.analyses.CFGFast(
25 | # regions=[(start_addr+0x1000,start_addr+0x103C)],
26 | # normalize=True,
27 | # resolve_indirect_jumps=True,
28 | # data_references=True,
29 | # )
30 |
31 | # 这个函数是step成功之后调用的
32 | def step_func(lsm: angr.SimulationManager):
33 |
34 | return lsm
35 |
36 | # simgr.explore(find=start_addr + 0x3c18, step_func=step_func, num_find=10,
37 | # extra_stop_points=[start_addr + 0x100E, start_addr + 0x1038])
38 | simgr.explore(find=start_addr+0x103C,step_func=step_func,num_find=10)
39 |
40 | if simgr.found:
41 | _init = simgr.found[0]
42 | return _init.copy()
43 | else:
44 | raise Exception("未找到分发器")
45 |
46 |
47 | if __name__ == '__main__':
48 |
49 | for k, g in groupby('AAAABBBCCDAABBB'):
50 | pass
51 |
52 |
53 | start_addr = project.loader.min_addr
54 |
55 | get_dispatcher_state()
56 |
--------------------------------------------------------------------------------
/triton_test.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from triton import *
3 |
4 | import sys
5 |
6 | # A dumb function to emulate.
7 | function = {
8 | 0x40056d: b"\x55", # push rbp
9 | 0x40056e: b"\x48\x89\xe5", # mov rbp,rsp
10 | 0x400571: b"\x48\x89\x7d\xe8", # mov QWORD PTR [rbp-0x18],rdi
11 | 0x400575: b"\xc7\x45\xfc\x00\x00\x00\x00", # mov DWORD PTR [rbp-0x4],0x0
12 | 0x40057c: b"\xeb\x3f", # jmp 4005bd
13 | 0x40057e: b"\x8b\x45\xfc", # mov eax,DWORD PTR [rbp-0x4]
14 | 0x400581: b"\x48\x63\xd0", # movsxd rdx,eax
15 | 0x400584: b"\x48\x8b\x45\xe8", # mov rax,QWORD PTR [rbp-0x18]
16 | 0x400588: b"\x48\x01\xd0", # add rax,rdx
17 | 0x40058b: b"\x0f\xb6\x00", # movzx eax,BYTE PTR [rax]
18 | 0x40058e: b"\x0f\xbe\xc0", # movsx eax,al
19 | 0x400591: b"\x83\xe8\x01", # sub eax,0x1
20 | 0x400594: b"\x83\xf0\x55", # xor eax,0x55
21 | 0x400597: b"\x89\xc1", # mov ecx,eax
22 | 0x400599: b"\x48\x8b\x15\xa0\x0a\x20\x00", # mov rdx,QWORD PTR [rip+0x200aa0] # 601040
23 | 0x4005a0: b"\x8b\x45\xfc", # mov eax,DWORD PTR [rbp-0x4]
24 | 0x4005a3: b"\x48\x98", # cdqe
25 | 0x4005a5: b"\x48\x01\xd0", # add rax,rdx
26 | 0x4005a8: b"\x0f\xb6\x00", # movzx eax,BYTE PTR [rax]
27 | 0x4005ab: b"\x0f\xbe\xc0", # movsx eax,al
28 | 0x4005ae: b"\x39\xc1", # cmp ecx,eax
29 | 0x4005b0: b"\x74\x07", # je 4005b9
30 | 0x4005b2: b"\xb8\x01\x00\x00\x00", # mov eax,0x1
31 | 0x4005b7: b"\xeb\x0f", # jmp 4005c8
32 | 0x4005b9: b"\x83\x45\xfc\x01", # add DWORD PTR [rbp-0x4],0x1
33 | 0x4005bd: b"\x83\x7d\xfc\x04", # cmp DWORD PTR [rbp-0x4],0x4
34 | 0x4005c1: b"\x7e\xbb", # jle 40057e
35 | 0x4005c3: b"\xb8\x00\x00\x00\x00", # mov eax,0x0
36 | 0x4005c8: b"\x5d", # pop rbp
37 | 0x4005c9: b"\xc3", # ret
38 | }
39 |
40 |
41 |
42 | if __name__ == '__main__':
43 | # Triton context
44 | ctx = TritonContext()
45 |
46 | # Set the architecture
47 | ctx.setArchitecture(ARCH.X86_64)
48 |
49 | # Symbolic optimization
50 | ctx.setMode(MODE.ALIGNED_MEMORY, True)
51 |
52 | # Define the Python syntax
53 | ctx.setAstRepresentationMode(AST_REPRESENTATION.PYTHON)
54 |
55 | # Define entry point
56 | pc = 0x40056d
57 |
58 | # Define our input context
59 | ctx.setConcreteMemoryValue(0x1000, ord('a'))
60 | ctx.setConcreteMemoryValue(0x1001, ord('b'))
61 | ctx.setConcreteMemoryValue(0x1002, ord('c'))
62 | ctx.setConcreteMemoryValue(0x1003, ord('d'))
63 | ctx.setConcreteMemoryValue(0x1004, ord('e'))
64 |
65 | # Define the serial pointer
66 | ctx.setConcreteMemoryValue(0x601040, 0x00)
67 | ctx.setConcreteMemoryValue(0x601041, 0x00)
68 | ctx.setConcreteMemoryValue(0x601042, 0x90)
69 |
70 | # Define the serial context
71 | ctx.setConcreteMemoryValue(0x900000, 0x31)
72 | ctx.setConcreteMemoryValue(0x900001, 0x3e)
73 | ctx.setConcreteMemoryValue(0x900002, 0x3d)
74 | ctx.setConcreteMemoryValue(0x900003, 0x26)
75 | ctx.setConcreteMemoryValue(0x900004, 0x31)
76 |
77 | # Point rdi on our buffer
78 | ctx.setConcreteRegisterValue(ctx.registers.rdi, 0x1000)
79 |
80 | # Setup stack
81 | ctx.setConcreteRegisterValue(ctx.registers.rsp, 0x7fffffff)
82 | ctx.setConcreteRegisterValue(ctx.registers.rbp, 0x7fffffff)
83 |
84 | # Let's emulate the function
85 | while pc in function:
86 | # Build an instruction
87 | inst = Instruction()
88 |
89 | # Setup opcode
90 | inst.setOpcode(function[pc])
91 |
92 | # Setup Address
93 | inst.setAddress(pc)
94 |
95 | # Process the instruction
96 | ctx.processing(inst)
97 |
98 | # I know that at 0x40058b the user can control eax, so i'm tainting it.
99 | if inst.getAddress() == 0x40058b:
100 | ctx.taintRegister(ctx.registers.eax)
101 |
102 | # Print only instructions that are tainted.
103 | if inst.isTainted():
104 | print('[tainted] %s' %(str(inst)))
105 |
106 | # Next instruction
107 | pc = ctx.getConcreteRegisterValue(ctx.registers.rip)
108 |
109 | sys.exit(0)
110 |
--------------------------------------------------------------------------------
/ttEncrypt/DeviceRegister.py:
--------------------------------------------------------------------------------
1 | import secrets
2 | import uuid
3 | import time
4 | import json
5 | import hashlib
6 | import gzip
7 | import requests # pip install requests
8 | import ttEncryptorUtil
9 |
10 |
11 | # 注: 协议来自Tiktok
12 |
13 |
14 | def UUID():
15 | return str(uuid.uuid4())
16 |
17 |
18 | def md5(message):
19 | md5_hash = hashlib.md5()
20 | md5_hash.update(message)
21 | return md5_hash.hexdigest()
22 |
23 |
24 | def get_timestamp_in_millisecond():
25 | return int(time.time() * 1000)
26 |
27 |
28 | def get_timestamp_in_second():
29 | return int(time.time())
30 |
31 |
32 | def generate_android_id():
33 | return secrets.token_bytes(8).hex()
34 |
35 |
36 | def http_post(url, headers, payload):
37 | response = requests.request("POST", url, headers=headers, data=payload)
38 | return response.text
39 |
40 |
41 | def gzip_compress(buff):
42 | return gzip.compress(buff)
43 |
44 |
45 | def get_post_data(android_id, cdid, google_aid, clientudid):
46 | openudid = android_id
47 | postDataObj = {
48 | "magic_tag": "ss_app_log",
49 | "header": {
50 | "display_name": "TikTok",
51 | "update_version_code": 2023205030,
52 | "manifest_version_code": 2023205030,
53 | "app_version_minor": "",
54 | "aid": 1233,
55 | "channel": "googleplay",
56 | "package": "com.zhiliaoapp.musically",
57 | "app_version": "32.5.3",
58 | "version_code": 320503,
59 | "sdk_version": "3.9.17-bugfix.9",
60 | "sdk_target_version": 29,
61 | "git_hash": "3e93151",
62 | "os": "Android",
63 | "os_version": "11",
64 | "os_api": 30,
65 | "device_model": "Pixel 2",
66 | "device_brand": "google",
67 | "device_manufacturer": "Google",
68 | "cpu_abi": "arm64-v8a",
69 | "release_build": "e7cd5de_20231207",
70 | "density_dpi": 420,
71 | "display_density": "mdpi",
72 | "resolution": "1794x1080",
73 | "language": "en",
74 | "timezone": -5,
75 | "access": "wifi",
76 | "not_request_sender": 1,
77 | "rom": "6934943",
78 | "rom_version": "RP1A.201005.004.A1",
79 | "cdid": cdid,
80 | "sig_hash": "194326e82c84a639a52e5c023116f12a", # md5(packageInfo.signatures[0])
81 | "gaid_limited": 0,
82 | "google_aid": google_aid,
83 | "openudid": openudid,
84 | "clientudid": clientudid,
85 | "tz_name": "America\\/New_York",
86 | "tz_offset": -18000,
87 | "req_id": UUID(),
88 | "device_platform": "android",
89 | "custom": {
90 | "is_kids_mode": 0,
91 | "filter_warn": 0,
92 | "web_ua": "Mozilla\\/5.0 (Linux; Android 11; Pixel 2 Build\\/RP1A.201005.004.A1; wv) AppleWebKit\\/537.36 (KHTML, like Gecko) Version\\/4.0 Chrome\\/116.0.0.0 Mobile Safari\\/537.36",
93 | "user_period": 0,
94 | "screen_height_dp": 683,
95 | "user_mode": -1,
96 | "apk_last_update_time": 1702363135217,
97 | "screen_width_dp": 411
98 | },
99 | "apk_first_install_time": 1697783355395,
100 | "is_system_app": 0,
101 | "sdk_flavor": "global",
102 | "guest_mode": 0
103 | },
104 | "_gen_time": get_timestamp_in_millisecond()
105 | }
106 |
107 | return gzip_compress(json.dumps(postDataObj).encode(encoding='utf-8'))
108 |
109 |
110 | def get_headers(md5Hash):
111 | headers = {
112 | 'log-encode-type': 'gzip',
113 | 'x-tt-request-tag': 't=0;n=1',
114 | 'sdk-version': '2',
115 | 'X-SS-REQ-TICKET': f'{get_timestamp_in_millisecond()}',
116 | 'passport-sdk-version': '19',
117 | 'x-tt-dm-status': 'login=0;ct=1;rt=4',
118 | 'x-vc-bdturing-sdk-version': '2.3.4.i18n',
119 | 'Content-Type': 'application/octet-stream;tt-data=a',
120 | 'X-SS-STUB': md5Hash,
121 | 'Host': 'log-va.tiktokv.com'
122 | }
123 | return headers
124 |
125 |
126 | def get_device_register_url(openudid, cdid):
127 | url = 'https://log-va.tiktokv.com/service/2/device_register/?' + \
128 | "tt_data=a" + \
129 | "ac=wifi" + \
130 | "channel=googleplay" + \
131 | "aid=1233" + \
132 | "app_name=musical_ly" + \
133 | "version_code=320503" + \
134 | "version_name=32.5.3" + \
135 | "device_platform=android" + \
136 | "os=android" + \
137 | "ab_version=32.5.3" + \
138 | "ssmix=a" + \
139 | "device_type=Pixel+2" + \
140 | "device_brand=google" + \
141 | "language=en" + \
142 | "os_api=30" + \
143 | "os_version=11" + \
144 | f"openudid={openudid}" + \
145 | "manifest_version_code=2023205030" + \
146 | "resolution=1080*1794" + \
147 | "dpi=420" + \
148 | "update_version_code=2023205030" + \
149 | f"_rticket={get_timestamp_in_millisecond()}" + \
150 | "is_pad=0" + \
151 | "current_region=TW" + \
152 | "app_type=normal" + \
153 | "timezone_name=America%2FNew_York" + \
154 | "residence=TW" + \
155 | "app_language=en" + \
156 | "ac2=wifi5g" + \
157 | "uoo=0" + \
158 | "op_region=TW" + \
159 | "timezone_offset=-18000" + \
160 | "build_number=32.5.3" + \
161 | "host_abi=arm64-v8a" + \
162 | "locale=en" + \
163 | f"ts={get_timestamp_in_second()}" + \
164 | f"cdid={cdid}"
165 | return url
166 |
167 |
168 | def device_register():
169 | android_id = generate_android_id()
170 | cdid = UUID()
171 | google_aid = UUID()
172 | clientudid = UUID()
173 | gzip_post_data = get_post_data(android_id, cdid, google_aid, clientudid)
174 | ttencrypt_post_data = ttEncryptorUtil.ttEncrypt(gzip_post_data)
175 | headers = get_headers(md5(ttencrypt_post_data))
176 | url = get_device_register_url(android_id, cdid)
177 | response = http_post(url, headers, ttencrypt_post_data)
178 | print(f"设备注册结果:\n{response}")
179 |
180 | if __name__ == "__main__":
181 | device_register()
--------------------------------------------------------------------------------
/ttEncrypt/libEncryptor.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/ttEncrypt/libEncryptor.so
--------------------------------------------------------------------------------
/ttEncrypt/libEncryptor.so.bndb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhuzhu-Top/de_vm/875ee2839767f8d69511c69f92368e1a247bd672/ttEncrypt/libEncryptor.so.bndb
--------------------------------------------------------------------------------
/ttEncrypt/ttEncryptorUtil.py:
--------------------------------------------------------------------------------
1 | import secrets
2 | import hashlib
3 | from Crypto.Cipher import AES # pip install pycryptodome
4 | from Crypto.Util.Padding import pad, unpad
5 |
6 |
7 | def generate_rand_number():
8 | return secrets.token_bytes(32)
9 |
10 |
11 | def decrypt_seeds():
12 | key1 = [0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB]
13 | key1 += [0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB]
14 | key1 += [0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E]
15 | key1 += [0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25]
16 |
17 | key2 = [0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F]
18 | key2 += [0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF]
19 | key2 += [0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61]
20 | key2 += [0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D]
21 |
22 | results = bytearray()
23 | for i in range(len(key1)):
24 | results.append(key1[i] ^ key2[i])
25 | return results
26 |
27 |
28 | def sha512(buff):
29 | sha512_hash = hashlib.sha512()
30 | sha512_hash.update(buff)
31 | return sha512_hash.digest()
32 |
33 |
34 | def get_aes_key_iv(rand_num):
35 | rand_num_hash = sha512(rand_num)
36 | seeds = decrypt_seeds()
37 | data = rand_num_hash + seeds
38 | key_iv_hash = sha512(data)
39 |
40 | print(f"rand_num: {rand_num.hex()}")
41 | print(f"rand_num_hash: {rand_num_hash.hex()}")
42 | print(f"seeds: {seeds.hex()}")
43 | print(f"rand_num_hash + seeds: {data.hex()}")
44 | print(f"key_iv_hash: {key_iv_hash.hex()}")
45 | print(f"aes key: {key_iv_hash[0:0x10].hex()}")
46 | print(f"aes iv: {key_iv_hash[0x10:0x20].hex()}")
47 | return key_iv_hash[0:0x10], key_iv_hash[0x10:0x20]
48 |
49 |
50 | def aes_128_cbc_encrypt(plaintext, key, iv):
51 | # 创建一个 AES 加密器对象
52 | cipher = AES.new(key, AES.MODE_CBC, iv)
53 |
54 | # 添加填充并加密数据
55 | padded_data = pad(plaintext, AES.block_size)
56 | ciphertext = cipher.encrypt(padded_data)
57 | return ciphertext
58 |
59 |
60 | def get_magic():
61 | return b"\x74\x63\x05\x10\x00\x00"
62 |
63 |
64 | def ttEncrypt(buff):
65 | magic = get_magic()
66 | rand_number = generate_rand_number()
67 | aes_key, aes_iv = get_aes_key_iv(rand_number)
68 | buff_hash = sha512(buff)
69 | aes_plaintext = buff_hash + buff
70 | aes_ciphertext = aes_128_cbc_encrypt(aes_plaintext, aes_key, aes_iv)
71 |
72 | print(f"plaintext: {buff.hex()}")
73 | print(f"rand_number: {rand_number.hex()}")
74 | print(f"buff hash: {buff_hash.hex()}")
75 | print(f"aes_plaintext: {aes_plaintext.hex()}")
76 | print(f"ciphertext: {aes_ciphertext.hex()}")
77 |
78 | return magic + rand_number + aes_ciphertext
79 |
80 |
81 | def main():
82 | buff = b'aabbccddeeffgg'
83 | result = ttEncrypt(buff)
84 | print(f"ttEncrypt: {result.hex()}")
85 |
86 |
87 | def test_aes():
88 | buff = b"\x61\x02\xbe\x54\xa6\x2a\x73\xe7\x65\xba\x38\xc9\x87\x34\x09\xbd" +\
89 | b"\xeb\xb6\xb0\xd3\x7e\xa0\x60\x40\x3d\x0c\x26\xfe\xa5\xeb\xb6\xba" +\
90 | b"\x5a\x0c\x7f\x36\xec\xb7\x58\xc7\x7e\x19\x37\x50\x5f\xa8\x5b\x4e" +\
91 | b"\x77\xce\x82\x7a\x70\x09\xd2\x2b\x2f\xaf\xc4\x68\x00\xd7\xa9\xff" +\
92 | b"\x62\x69\x61\x6e\x66\x65\x6e\x67"
93 | aes_key = b"\xe8\xaf\x6e\x91\xde\x99\x7e\xf0\xfa\xfb\xcd\xbe\x97\x73\xb2\xc5"
94 | aes_iv = b"\x03\x7e\xed\x97\x4e\x1e\xc5\x19\xdc\xc2\xb4\x35\x5b\x26\xf0\x1b"
95 | ciphertext = aes_128_cbc_encrypt(buff, aes_key, aes_iv)
96 | print(f"ciphertext: {ciphertext.hex()}")
97 |
98 |
99 | if __name__ == "__main__":
100 | main()
101 | # test_aes()
102 |
--------------------------------------------------------------------------------
/user_il.py:
--------------------------------------------------------------------------------
1 | from binaryninja import *
2 |
3 |
4 | def create_user_func(bv: BinaryView):
5 | max_addr = 0
6 | for segment in bv.segments:
7 | max_addr = max(max_addr, segment.end + 1)
8 | # Skip one and align to 0x1000
9 | max_addr += 0x1fff
10 | max_addr &= ~0xfff
11 |
12 | segment_start = max_addr
13 | segment_length = 0x1000
14 | file_start = bv.file.raw.end
15 | bv.file.raw.insert(file_start, b'\x00' * segment_length)
16 | bv.add_user_segment(segment_start, segment_length,
17 | file_start, segment_length,
18 | SegmentFlag.SegmentContainsCode | SegmentFlag.SegmentExecutable | SegmentFlag.SegmentReadable)
19 | bv.add_user_section("rop cave", segment_start, segment_length, SectionSemantics.ReadOnlyCodeSectionSemantics)
20 |
21 |
22 | bv.create_user_function(segment_start)
23 | bv.define_user_symbol(Symbol(SymbolType.FunctionSymbol, segment_start, "rop", "rop"))
24 | func = bv.get_function_at(segment_start)
25 | func.reanalyze()
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/utils.py:
--------------------------------------------------------------------------------
1 | import capstone
2 | from binaryninja import *
3 | from capstone.arm64 import *
4 | from pprint import pprint
5 | def pp_print(str):
6 | pprint(str)
7 |
8 | def get_targte_reg_name(bv,cs,address):
9 | # address = 0x9cc7c
10 | inst_bytes = bv.read(address, bv.get_instruction_length(address))
11 | for inst in cs.disasm(inst_bytes, address):
12 | inst: capstone.CsInsn = inst
13 | for operand in inst.operands:
14 | operand: capstone.arm64.Arm64Op = operand
15 | return inst.reg_name(operand.value.reg)
16 |
17 |
18 | def find_operation(llil :LowLevelILFunction,llil_operation: LowLevelILOperation) -> List[Optional[LowLevelILInstruction]]:
19 | def find_(llil_inst: LowLevelILInstruction):
20 | if llil_inst.operation == llil_operation:
21 | return llil_inst
22 | return list(llil.traverse(find_))
23 |
24 |
25 | # 找到所有设置 flag的地方 并返回 operation(怎么比较的) raw_operands 比较的寄存器
26 | def find_all_flag_def_info(llil :LowLevelILFunction):
27 | fag_defs_il = find_operation(llil,LowLevelILOperation.LLIL_SET_FLAG)
28 | info = {
29 |
30 | }
31 | for flag in llil.flags:
32 | for index,il in enumerate(fag_defs_il):
33 | il : LowLevelILSetFlag
34 | if il.operands[0].name == flag.name:
35 | info[flag.name] = {
36 | "operation": il.operands[1].operation,
37 | "raw_operands": il.operands[1].raw_operands,
38 | "size": il.operands[1].size
39 | }
40 | fag_defs_il.pop(index)
41 | break
42 | return info
43 |
44 | # 只获取只有一个值的寄存器的值
45 | def get_reg_const_value_after(il,reg):
46 | reg_value = il.get_possible_reg_values_after(reg)
47 | # 只需要 只可能是一个值的
48 | # 多个值的是 InSetOfValues 未知的是 UndeterminedValue
49 | if not reg_value.type == RegisterValueType.ConstantValue:
50 | return None
51 | return reg_value
52 |
53 | # 判断是否是操作自己 sp = sp - 0x70
54 | # x20 = x20 + 0xc80
55 | def is_operate_self(il:LowLevelILInstruction):
56 |
57 | if not hasattr(il,"src") or not hasattr(il,"dest"):
58 | return False
59 |
60 |
61 | def get_llil_var_def_tree(func,llil):
62 | func_llil_ssa = func.llil.ssa_form
63 | if isinstance(llil, LowLevelILBinaryBase):
64 | left = llil.left
65 | right = llil.right
66 | _left = get_llil_var_def_tree(func,left)
67 | _right = get_llil_var_def_tree(func,right)
68 | return {
69 | "il": llil,
70 | "left_child": _left,
71 | "right_child": _right,
72 | "addr": llil.address,
73 | }
74 | elif isinstance(llil, LowLevelILConst):
75 | return {
76 | "il": llil,
77 | "value": llil.value.value,
78 | "addr": llil.address,
79 | }
80 | elif isinstance(llil, LowLevelILRegSsaPartial):
81 | operands = llil.operands
82 | register = operands[0]
83 | set_reg_ssa_il = func_llil_ssa.get_ssa_reg_definition(register)
84 | return get_llil_var_def_tree(func,set_reg_ssa_il)
85 | elif isinstance(llil, LowLevelILLowPart):
86 | return get_llil_var_def_tree(func,llil.src)
87 | elif isinstance(llil, LowLevelILZx) or isinstance(llil, LowLevelILSx):
88 | # 直接返回出去
89 | return get_llil_var_def_tree(func,llil.src)
90 | elif isinstance(llil, LowLevelILSetRegSsa):
91 | _ret = get_llil_var_def_tree(func,llil.src)
92 | return {
93 | "il": llil,
94 | "child": _ret,
95 | "addr": llil.address,
96 | }
97 | # ret[f"{llil.src.reg.name}#{llil.src.version}"] = _ret
98 | elif isinstance(llil, LowLevelILLoadSsa):
99 | _ret = get_llil_var_def_tree(func,llil.src)
100 | return {
101 | "il": llil,
102 | "child": _ret,
103 | "addr": llil.address,
104 | }
105 | elif isinstance(llil, LowLevelILRegSsa):
106 | set_reg_ssa_il = func_llil_ssa.get_ssa_reg_definition(llil.src)
107 | # _ret = get_llil_var_def_tree(set_reg_ssa_il)
108 | return get_llil_var_def_tree(func,set_reg_ssa_il)
109 | # ret[f"{llil.src.reg.name}#{llil.src.version}"] = _ret
110 |
111 |
112 |
113 | def to_signed(value, bits):
114 | if value & (1 << (bits - 1)):
115 | return value - (1 << bits)
116 | return value
--------------------------------------------------------------------------------