Blu*_*lub 6 perl reversing opcode
有没有办法创建perl源代码,如果我有操作码?
例如
perl -MO=Concise -e "print 123"
Run Code Online (Sandbox Code Playgroud)
将输出操作码:
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
5 <@> print vK ->6
3 <0> pushmark s ->4
4 <$> const[IV 123] s ->5
Run Code Online (Sandbox Code Playgroud)
我想以某种方式扭转这种局面.
B::Concise 尝试给出操作码树的准确表示,而 B::Deparse 则获取操作码树并从中生成源代码。
$ perl -MO=Deparse -e'$x && print'
print $_ if $x;
-e syntax OK
Run Code Online (Sandbox Code Playgroud)
虽然有一些限制,但它非常好。
鉴于 B::Concise 试图非常完整,这可能是可能的,但我认为缺少一些信息。我很确定 CPAN 上没有任何东西试图做到这一点,因为我从未听说过 blead 破坏它(您希望经常发生这种情况)。
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |