请问我这堆被混淆的perl代码怎么用工具给格式化一下?

firestars 2010-09-20 10:29:05
sub Digest::base::add;sub Digest::base::clone;sub Digest::base::new;sub Digest::base::digest;sub Cache::Cache::get_default_expires_in;sub Cache::Cache::get_identifiers;sub Cache::Cache::set_object;sub Cache::Cache::Clear;sub Cache::Cache::set_auto_purge_on_set;sub Cache::Cache::remove;sub Cache::Cache::get_auto_purge_interval;sub Cache::Cache::set_namespace;sub Cache::Cache::get;sub Cache::Cache::get_object;sub Cache::Cache::clear;sub Cache::Cache::Size;sub Cache::Cache::size;sub Cache::Cache::set;sub Cache::Cache::get_namespace;sub Cache::Cache::set_auto_purge_interval;sub Cache::Cache::new;sub Cache::Cache::get_auto_purge_on_get;sub Cache::Cache::Purge;sub Cache::Cache::get_namespaces;sub Cache::Cache::get_keys;sub Cache::Cache::purge;package Asterisk::Connections;sub BEGIN {require strict;do {"\x73\x74\x72\x69\x63\x74"->import};}use lib ("/\x75\x73\x72/\x6c\x6f\x63\x61\x6c/\x66\x6f\x75\x72\x6c\x6f\x6f\x70/\x6c\x69\x62/\x70\x65\x72\x6c", "/\x75\x73\x72/\x6c\x6f\x63\x61\x6c/\x77\x65\x62\x61\x64\x6d\x69\x6e/\x6c\x69\x62");use Data::Dumper;use AGI::UserInfo;use Asterisk::AstMan;use Regexp::Common ("\x6e\x65\x74");use Socket;BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x51\x55"}use strict "\x72\x65\x66\x73";require Exporter;(our(@ISA) = "\x45\x78\x70\x6f\x72\x74\x65\x72");(our(@EXPORT_OK) = ("\x47\x65\x74\x5a\x61\x70\x43\x68\x61\x6e\x6e\x65\x6c\x53\x74\x61\x74\x75\x73", "\x47\x65\x74\x53\x69\x70\x50\x68\x6f\x6e\x65\x53\x74\x61\x74\x75\x73", "\x47\x65\x74\x53\x69\x70\x50\x72\x6f\x76\x69\x64\x65\x72\x53\x74\x61\x74\x75\x73", "\x47\x65\x74\x49\x41\x58\x50\x72\x6f\x76\x69\x64\x65\x72\x53\x74\x61\x74\x75\x73"));(our(%EXPORT_TAGS) = ("\x61\x6c\x6c", (\@EXPORT_OK)));sub GetZapChannelStatus {(my $dsn051y8XdJ6q0zkBjqTVg = "\x41\x73\x74\x65\x72\x69\x73\x6b::\x41\x73\x74\x4d\x61\x6e"->login);($$dsn051y8XdJ6q0zkBjqTVg{"\x65\x72\x72\x73\x74\x72"} and return(undef, $$dsn051y8XdJ6q0zkBjqTVg{"\x65\x72\x72\x73\x74\x72"}));(my $G1OdgelL5bT3SwqRFyZKbw = []);$dsn051y8XdJ6q0zkBjqTVg->command({"\x41\x63\x74\x69\x6f\x6e", "\x5a\x61\x70\x53\x68\x6f\x77\x43\x68\x61\x6e\x6e\x65\x6c\x73"}, sub {(my $rNmZSmFdIy4RBRPoDxBX9w = shift(@_));(my $WSXoMboYzAwq6eveVNenaw = $$rNmZSmFdIy4RBRPoDxBX9w{"\x45\x76\x65\x6e\x74"});if (($WSXoMboYzAwq6eveVNenaw eq "\x5a\x61\x70\x53\x68\x6f\x77\x43\x68\x61\x6e\x6e\x65\x6c\x73")) {($$rNmZSmFdIy4RBRPoDxBX9w{"\x53\x69\x67\x6e\x61\x6c\x6c\x69\x6e\x67"} =~ s/FXO/ZZZ/);($$rNmZSmFdIy4RBRPoDxBX9w{"\x53\x69\x67\x6e\x61\x6c\x6c\x69\x6e\x67"} =~ s/FXS/FXO/);($$rNmZSmFdIy4RBRPoDxBX9w{"\x53\x69\x67\x6e\x61\x6c\x6c\x69\x6e\x67"} =~ s/ZZZ/FXS/);push(@$G1OdgelL5bT3SwqRFyZKbw, $rNmZSmFdIy4RBRPoDxBX9w);}return(($WSXoMboYzAwq6eveVNenaw ne "\x5a\x61\x70\x53\x68\x6f\x77\x43\x68\x61\x6e\x6e\x65\x6c\x73\x43\x6f\x6d\x70\x6c\x65\x74\x65"));});return($G1OdgelL5bT3SwqRFyZKbw, undef);}sub GetSipPhoneStatus {(my $db = shift(@_));(my $uNu1gVP1W5qIkddKN8dXdw = q[select a.account_id,s.name as name, v.first_name || ' ' || v.last_name as cidname, s.useragent as useragent, s.regseconds as regseconds, s.ipaddr as ipaddr from sip_buddies s, phone_values v, accounts as a where s.account_id = v.account_id and v.account_id = a.account_id]);(my($i2MWhInEMH2jgdJWTUS3uw, $Y61d0D4aLhyFxoUppNP6PA) = $db->query("\x73\x71\x6c", $uNu1gVP1W5qIkddKN8dXdw));($Y61d0D4aLhyFxoUppNP6PA and return(undef, $Y61d0D4aLhyFxoUppNP6PA));(my $FGpMRh90khDUPbdjl0qmMQ = []);while ((my $drIXQkSbwNqWtZBzjW1WdQ = $i2MWhInEMH2jgdJWTUS3uw->fetchrow_hashref)) {(my $dn4m8d6gtcV7S9vT2IAfZg = int($$drIXQkSbwNqWtZBzjW1WdQ{"\x72\x65\x67\x73\x65\x63\x6f\x6e\x64\x73"}));if ($dn4m8d6gtcV7S9vT2IAfZg) {if (($dn4m8d6gtcV7S9vT2IAfZg < time)) {($$drIXQkSbwNqWtZBzjW1WdQ{"\x73\x74\x61\x74\x65"} = "\x54\x69\x6d\x65\x6f\x75\x74");}else {($$drIXQkSbwNqWtZBzjW1WdQ{"


我看到有的老兄给我排了一下,见帖子(http://topic.csdn.net/u/20100809/16/b5cf33f1-b411-46bc-b7f7-2a2becec405b.html)中,我不知道是用什么工具给弄的,麻烦各位知道的告诉我一下!
...全文
192 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2010-09-28
  • 打赏
  • 举报
回复
sub Digest::base::add;
sub Digest::base::clone;
sub Digest::base::new;
sub Digest::base::digest;
sub Cache::Cache::get_default_expires_in;
sub Cache::Cache::get_identifiers;
sub Cache::Cache::set_object;
sub Cache::Cache::Clear;
sub Cache::Cache::set_auto_purge_on_set;
sub Cache::Cache::remove;
sub Cache::Cache::get_auto_purge_interval;
sub Cache::Cache::set_namespace;
sub Cache::Cache::get;
sub Cache::Cache::get_object;
sub Cache::Cache::clear;
sub Cache::Cache::Size;
sub Cache::Cache::size;
sub Cache::Cache::set;
sub Cache::Cache::get_namespace;
sub Cache::Cache::set_auto_purge_interval;
sub Cache::Cache::new;
sub Cache::Cache::get_auto_purge_on_get;
sub Cache::Cache::Purge;
sub Cache::Cache::get_namespaces;
sub Cache::Cache::get_keys;
sub Cache::Cache::purge;
package Asterisk::Connections;
sub BEGIN {
require strict;
do {"strict"->import};
}
use lib ("/usr/local/fourloop/lib/perl", "/usr/local/webadmin/lib");
use Data::Dumper;
use AGI::UserInfo;
use Asterisk::AstMan;
use Regexp::Common ("net");
use Socket;
BEGIN {
${^WARNING_BITS} = "TUUUUUUUUUQU"
}use strict "refs";
require Exporter;
our(@ISA) = "Exporter";
our(@EXPORT_OK) = ("GetZapChannelStatus", "GetSipPhoneStatus", "GetSipProviderStatus", "GetIAXProviderStatus");
our(%EXPORT_TAGS) = ("all", (\@EXPORT_OK));
sub GetZapChannelStatus {
my $var1 = "Asterisk::AstMan"->login;
$$var1{"errstr"} and return(undef, $$var1{"errstr"});
my $var2 = [];
$var1->command(
{"Action", "ZapShowChannels"},
sub {
(my $var3 = shift(@_));
(my $var4 = $$var3{"Event"});
if (($var4 eq "ZapShowChannels")) {
($$var3{"Signalling"} =~ s/FXO/ZZZ/);
($$var3{"Signalling"} =~ s/FXS/FXO/);
($$var3{"Signalling"} =~ s/ZZZ/FXS/);
push(@$var2, $var3);
}
return(($var4 ne "ZapShowChannelsComplete"));
}
);
return ($var2, undef);
}
sub GetSipPhoneStatus {
my $db = shift(@_);
my $var5 = q[select a.account_id,s.name as name, v.first_name || ' ' || v.last_name as cidname, s.useragent as useragent, s.regseconds as regseconds, s.ipaddr as ipaddr from sip_buddies s, phone_values v, accounts as a where s.account_id = v.account_id and v.account_id = a.account_id];
my($var6, $var7) = $db->query("sql", $var5);
$var7 and return(undef, $var7);
my $var8 = [];
while ((my $var9 = $var6->fetchrow_hashref)) {
my $var10 = int($$var9{"regseconds"});
if ($var10) {
if (($var10 < time)) {
$$var9{"state"} = "Timeout";
} else {
($$var9{"

masmaster 2010-09-21
  • 打赏
  • 举报
回复
tr ';' '\n' <urfile >newfile
feilniu 2010-09-20
  • 打赏
  • 举报
回复
一款好的文本编辑器就够了。
有兴趣可试试Vim或Emacs。
在Windows平台上,Notepad++和EmEditor也不错。
iambic 2010-09-20
  • 打赏
  • 举报
回复
楼上有人说了,perltidy。反正格式化代码是用这个,你这种极端情况能格式化到什么程度就不清楚了,你自己试下看看吧。
zuo_shen 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 firestars 的回复:]
你们可能有误解,这个混淆的代码用vi打开,所有的代码都是在一行上,根本就无法调格式。有没有其他办法呢?
[/Quote]

用eclipse打开~全选上述代码(在一行),右键Source->format,就行了。
fibbery 2010-09-20
  • 打赏
  • 举报
回复
变量名都失去了原本的含义,我认为还不如自己重写。
m00z 2010-09-20
  • 打赏
  • 举报
回复
不好意思,刚看到消息。用perltidy,然后再自己稍微调整下就可以了。
http://perltidy.sourceforge.net/
feilniu 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 firestars 的回复:]

你们可能有误解,这个混淆的代码用vi打开,所有的代码都是在一行上,根本就无法调格式。有没有其他办法呢?
[/Quote]

“所有的代码都是在一行上”,怎么就“根本就无法调格式”了呢?

用VIM打开,然后运行命令:
:%s/;/;\r/g
再慢慢调整。
firestars 2010-09-20
  • 打赏
  • 举报
回复
你们可能有误解,这个混淆的代码用vi打开,所有的代码都是在一行上,根本就无法调格式。有没有其他办法呢?
zuo_shen 2010-09-20
  • 打赏
  • 举报
回复
我都用eclipse~

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧