LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2887|回复: 8

为sugarCRM更换logo

[复制链接]
发表于 2006-10-1 11:31:39 | 显示全部楼层 |阅读模式
原文见我的blog,不过blog上面的排版系统没有sir好,所以在这里在存放一份
关键词: sugarCRM    logo    LOGIN_LOGO_ERRO   

前两天在chinaunix还是在哪里看过说现在大家都用sugarCRM,
我用linux时间也不短了,没听说过,就来试试看了。
装完了以后,初看以为是drupal,反正就是类似这样的,一个管理系统吧,
后来就动手改动,至少应该美化一下,不过问题来了,发现他不让改代码,
还有就是logo,觉得挺奇怪的,
后来发现,网上居然没有人破解这个问题,我就有兴致看看了,
下面看看

htdocs\sugarcrm\include\utils\user_utils.php
代码在这里被加密了。
真是恶心的开源软件,吸收大家的成果不说,还不让大家用,
谁知道这里面加密了什么东西。
看看这里被加密过的代码
[PHP]$sam0="len";$sam="code";$sam1="0B903CEEBB1AC254E8AA24315F52E536ZnVuY3Rpb24gdmNtc2koJGdlbmVyYXRl9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536LCAkbWQ1LCAkYWx0ID0gJycpIHsgICRn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZW5lcmF0ZSA9IGJhc2U2NF9kZWNvZGUo9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536JGdlbmVyYXRlKTsgIGlmIChmaWxlX2V49D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aXN0cygkZ2VuZXJhdGUpICYmICRoYW5k9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdy9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YicsIHRydWUpKSB7ICAgJGZyb21fa2V59D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ID0gZnJlYWQoJGhhbmRsZSwgZmlsZXNp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536emUoJGdlbmVyYXRlKSk7ICAgaWYgKG1k9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536NSgkZnJvbV9rZXkpID09ICRtZDUgfHwg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536KCFlbXB0eSAoJGFsdCkgJiYgbWQ1KCRm9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cm9tX2tleSkgPT0gJGFsdCkpIHsgICAg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cmV0dXJuIDE7ICAgfSAgfSAgICByZXR19D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cm4gLTE7ICB9ICBmdW5jdGlvbiBhY21z9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aSgkZ2VuZXJhdGUsICRhdXRoa2V5LCAk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aSwgJGFsdCA9ICcnLCAkYz1mYWxzZSkg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eyAgJGdlbmVyYXRlID0gYmFzZTY0X2Rl9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Y29kZSgkZ2VuZXJhdGUpOyAgJGF1dGhr9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZXkgPSBiYXNlNjRfZGVjb2RlKCRhdXRo9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536a2V5KTsgIGlmKCFlbXB0eSgkYWx0KSkk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YWx0a2V5ID0gYmFzZTY0X2RlY29kZSgk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YWx0KTsgIGlmICgkYyB8fCAoZmlsZV9l9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eGlzdHMoJGdlbmVyYXRlKSAmJiAkaGFu9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZGxlID0gZm9wZW4oJGdlbmVyYXRlLCAn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cmInLCB0cnVlKSkgKSB7ICAgaWYoJGMp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eyAgICAkZnJvbV9rZXkgPSBvYl9nZXRf9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Y29udGVudHMoKTsgICB9ZWxzZXsgICAg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536JGZyb21fa2V5ID0gZnJlYWQoJGhhbmRs9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZSwgZmlsZXNpemUoJGdlbmVyYXRlKSk79D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICAgfSAgICAgIGlmIChzdWJzdHJfY2919D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bnQoJGZyb21fa2V5LCAkYXV0aGtleSkg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536PCAkaSkgeyAgICAgICAgICAgIGlmICgh9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZW1wdHkgKCRhbHQpICYmICFlbXB0eSgk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YWx0a2V5KSAmJiBzdWJzdHJfY291bnQo9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536JGZyb21fa2V5LCAkYWx0a2V5KSA+PSAk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aSkgeyAgICAgICAgICByZXR1cm4gMTsg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICAgfSAgICByZXR1cm4gLTE7ICAgIH0g9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZWxzZSB7ICAgIHJldHVybiAxOyAgIH0g9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICB9IGVsc2UgeyAgICByZXR1cm4gLTE79D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICB9IH0gICBmdW5jdGlvbiBhbXNpKCRh9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cykgeyAgZ2xvYmFsICRhcHBfc3RyaW5n9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536czsgICR6ID0gMTsgIGdsb2JhbCAkbG9n9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aW5fZXJyb3I7ICBmb3JlYWNoICgkYXMg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YXMgJGspIHsgICBpZiAoIWVtcHR5ICgk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536a1snbSddKSkgeyAgICAkeiA9bWluKCB29D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Y21zaSgka1snZyddLCAka1snbSddLCAk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536a1snYSddLCAka1snbCddKSwgJHopOyAg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536IH0gZWxzZSB7ICAgICR6ID0gbWluKGFj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bXNpKCRrWydnJ10sICRrWydhJ10sICRr9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536WydpJ10sICRrWydiJ10sICRrWydjJ10s9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536JGtbJ2wnXSksICR6KTsgICB9ICB9ICBp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZiAoJHogPCAwKSB7ICAgJGxvZ2luX2Vy9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536cm9yID0gJGFwcF9zdHJpbmdzWyJMT0dJ9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Tl9MT0dPX0VSUk9SIl07ICAgY2hlY2tf9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bm93KHRydWUpOyAgfSB9ICAgIGZ1bmN09D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aW9uIG15bXNpKCRjYXNlPWZhbHNlLCAk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bGV2ZWw9MCkgeyAgICBnbG9iYWwgJGF19D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536dGhMZXZlbDsgICRhdXRoTGV2ZWwgPSAk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bGV2ZWw7ICAgICRmcyA9IGFycmF5ICgp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536OyAgICRmc1tdID0gYXJyYXkgKCdnJyA99D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536PiAnYVc1amJIVmtaUzlwYldGblpYTXZj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536RzkzWlhKbFpHSjVYM04xWjJGeVkzSnRM9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bkJ1Wnc9PScsICdtJyA9PiAnZjNhZDNk9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536OGY3MzNjNzMyNmE4YWZmYmRjOTRhMmU39D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536MDcnLCAnYScgPT4gJycsICdpJyA9PiAw9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICwnYyc9PiRjYXNlLCAnbCc9PiRsZXZl9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bCk7ICAgJGZzW10gPSBhcnJheSAoJ2cn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ID0+ICdhVzVrWlhndWNHaHcnLCAnbScg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536PT4gJycsICdhJyA9PiAnUEVFZ2FISmxa9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ajBuYUhSMGNEb3ZMM2QzZHk1emRXZGhj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bU55YlM1amIyMG5JSFJoY21kbGREMG5Y9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536MkpzWVc1ckp6NDhhVzFuSUhOMGVXeGxQ9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536U2R0WVhKbmFXNHRkRzl3T2lBeWNIZ25J9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536R0p2Y21SbGNqMG5NQ2NnZDJsa2RHZzlK9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ekV3TmljZ2FHVnBaMmgwUFNjeU15Y2dj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536M0pqUFNkcGJtTnNkV1JsTDJsdFlXZGxj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eTl3YjNkbGNtVmtZbmxmYzNWbllYSmpj9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bTB1Y0c1bkp5QmhiSFE5SjFCdmQyVnla9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536V1FnUW5rZ1UzVm5ZWEpEVWswblBqd3ZZ9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536VDQ9JywgJ2knID0+ICcxJywgJ2InID0+9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICdQRUVnYUhKbFpqMG5hSFIwY0Rvdkwz9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZDNkeTV6ZFdkaGNtWnZjbWRsTG05eVp59D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Y2dkR0Z5WjJWMFBTZGZZbXhoYm1zblBq9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eHBiV2NnYzNSNWJHVTlKMjFoY21kcGJp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536MTBiM0E2SURKd2VDY2dZbTl5WkdWeVBT9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Y3dKeUIzYVdSMGFEMG5NVEEySnlCb1pX9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536bG5hSFE5SnpJekp5QnpjbU05SjJsdVky9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536eDFaR1V2YVcxaFoyVnpMM0J2ZDJWeVpX9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536UmllVjl6ZFdkaGNtTnliUzV3Ym1jbklH9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536RnNkRDBuVUc5M1pYSmxaQ0JDZVNCVGRX9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ZGhja05TVFNjK1BDOWhQZz09JywgJ2Mn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536PT4kY2FzZSwgJ2wnPT4kbGV2ZWwpOyAg9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536ICRmc1tdID0gYXJyYXkgKCdnJyA9PiAn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536YVc1a1pYZ3VjR2h3JywgJ20nID0+ICcn9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536LCAnYScgPT4gJ0ptTnZjSGs3SURJd01E9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536UXRNakF3TmlBOFlTQm9jbVZtUFNKb2RI9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536UndPaTh2ZDNkM0xuTjFaMkZ5WTNKdExt9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536TnZiU0lnZEdGeVoyVjBQU0pmWW14aGJt9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536c2lJR05zWVhOelBTSmpiM0I1VW1sbmFI9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536Uk1hVzVySWo1VGRXZGhja05TVFNCSmJt9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536TXVQQzloUGlCQmJHd2dVbWxuYUhSeklG9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536SmxjMlZ5ZG1Wa0xnPT0nLCAnaScgPT4g9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536JzEnLCAnYicgPT4gJycsICdjJz0+JGNh9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536c2UsICdsJz0+JGxldmVsKTsgICBhbXNp9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536KCRmcyk7ICAgIH0gIGZ1bmN0aW9uIGdl9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536dExvZ2luVXNlclN0YXR1cygpeyAgbXlt9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536c2kodHJ1ZSwgMSk7IH0gIGZ1bmN0aW9u9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536IGF1dGhVc2VyU3RhdHVzKCl7ICBteW1z9D6D7B37C9DEA1DA8AE1B829CE06FE7E0B903CEEBB1AC254E8AA24315F52E536aShmYWxzZSwgMik7ICB9IA==IA==IA==9D6D7B37C9DEA1DA8AE1B829CE06FE7E";$sam4= 0;$sam10="";$sam8="b";$sam16="d";$sam17="64";$sam2="st";$sam3= 0;$sam14="as";$sam5="su";$sam7=32;$sam6="r";$sam19="e";$sam12=$sam2.$sam6.$sam0;$sam11 = $sam12($sam1);$sam13= $sam5. $sam8. $sam2.$sam6;$sam21= $sam8. $sam14 . $sam19. $sam17 ."_". $sam16.$sam19. $sam;for(;$sam3 < $sam11;$sam3+=$sam7, $sam4++){if($sam4%3==1)$sam10.=$sam21($sam13($sam1, $sam3, $sam7)); }
if(!empty($sam10))eval($sam10);[/PHP]

好了,我们来看看这段程序是如何运行的.
[PHP]
$sam="code";
$sam0="len";
$sam1="7E.........................................";//中间长长的被加密过的代码
$sam2="st";
$sam3= 0;
$sam4= 0;
$sam5="su";
$sam6="r";
$sam7=32;
$sam8="b";
$sam10="";
$sam11 = $sam12($sam1);//$sam11=strlen($sam1)
$sam12=$sam2.$sam6.$sam0; //$sam12="strlen"
$sam13= $sam5. $sam8. $sam2.$sam6;//$sam13="substr"
$sam14="as";
$sam16="d";
$sam17="64";
$sam19="e";
$sam21= $sam8. $sam14 . $sam19. $sam17 ."_". $sam16.$sam19. $sam;
//$sam21="base64_decode"

------------
for(;$sam3 < $sam11;$sam3+=$sam7, $sam4++)
{
    if($sam4%3==1)
    $sam10.=$sam21($sam13($sam1, $sam3, $sam7));
}
if(!empty($sam10))
eval($sam10);
[/PHP]


下面用类c语言来表示一下,其实这段程序是下面的流程.

[PHP]
i=0;  $sam3
j=0;   $sam4
str a="";
for(;i<len;i+=32,j++)
{
    if(j%3==1)
    a+=base64_decode(substr(sam1,i,32));
}
[/PHP]
 楼主| 发表于 2006-10-1 11:34:04 | 显示全部楼层
接续破解那段加密过的代码,
其实这里把那些流程翻译过来之后就发现这只是一个
简单的转换,并不算得上加密。
后来干脆懒得自己写代码转换了,
我是像下面这么做的
[PHP]echo " sam10 is ";
echo $sam10;
if(!empty($sam10))eval($sam10);[/PHP]
这样就能够显示出来这个代码了。
赫赫,有些投机取巧
显示出来的结果如下
[PHP] sam10 is function vcmsi($generate, $md5, $alt = '') { $generate = base64_decode($generate); if (file_exists($generate) && $handle = fopen($generate, 'rb', true)) { $from_key = fread($handle, filesize($generate)); if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt)) { return 1; } } return -1; } function acmsi($generate, $authkey, $i, $alt = '', $c=false) { $generate = base64_decode($generate); $authkey = base64_decode($authkey); if(!empty($alt))$altkey = base64_decode($alt); if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) ) { if($c){ $from_key = ob_get_contents(); }else{ $from_key = fread($handle, filesize($generate)); } if (substr_count($from_key, $authkey) < $i) { if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i) { return 1; } return -1; } else { return 1; } } else { return -1; } } function amsi($as) { global $app_strings; $z = 1; global $login_error; foreach ($as as $k) { if (!empty ($k['m'])) { $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z); } else { $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z); } } if ($z < 0) { $login_error = $app_strings["LOGIN_LOGO_ERROR"]; check_now(true); } } function mymsi($case=false, $level=0) { global $authLevel; $authLevel = $level; $fs = array (); $fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==', 'm' => 'f3ad3d8f733c7326a8affbdc94a2e707', 'a' => '', 'i' => 0 ,'c'=>$case, 'l'=>$level); $fs[] = array ('g' => 'aW5kZXgucGhw', 'm' => '', 'a' => 'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=', 'i' => '1', 'b' => 'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmZvcmdlLm9yZycgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9J21hcmdpbi10b3A6IDJweCcgYm9yZGVyPScwJyB3aWR0aD0nMTA2JyBoZWlnaHQ9JzIzJyBzcmM9J2luY2x1ZGUvaW1hZ2VzL3Bvd2VyZWRieV9zdWdhcmNybS5wbmcnIGFsdD0nUG93ZXJlZCBCeSBTdWdhckNSTSc+PC9hPg==', 'c'=>$case, 'l'=>$level); $fs[] = array ('g' => 'aW5kZXgucGhw', 'm' => '', 'a' => 'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==', 'i' => '1', 'b' => '', 'c'=>$case, 'l'=>$level); amsi($fs); } function getLoginUserStatus(){ mymsi(true, 1); } function authUserStatus(){ mymsi(false, 2); }  Shortcuts [/PHP]
这里是一长串的函数。
我整理了一下格式,如下
[PHP] function vcmsi($generate, $md5, $alt = '')
{
$generate = base64_decode($generate);
if (file_exists($generate) && $handle = fopen($generate, 'rb', true))
  {
   $from_key = fread($handle, filesize($generate));
   if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt))
   {
    return 1;
   }
  }
return -1;
}


function acmsi($generate, $authkey, $i, $alt = '', $c=false)
{
$generate = base64_decode($generate);
$authkey = base64_decode($authkey);
if(!empty($alt))$altkey = base64_decode($alt);
if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) )
  {
   if($c)
    {
     $from_key = ob_get_contents();
    }
   else
   {
    $from_key = fread($handle, filesize($generate));
   }
   if (substr_count($from_key, $authkey) < $i)
    {
     if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i)
      {
       return 1;
      }
     return -1;
    }
   else
   {
     return 1;
   }
  }
  else
   {
   return -1;
   }
}

function amsi($as)
{
global $app_strings;
$z = 1;
global $login_error;
foreach ($as as $k)
{
  if (!empty ($k['m']))
  {
   $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z);
  }
  else
  {
   $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z);
  }
}
if ($z < 0)
{
  $login_error = $app_strings["LOGIN_LOGO_ERROR"];
  check_now(true);
}
}

function mymsi($case=false, $level=0)
{
global $authLevel; $authLevel = $level; $fs = array ();
$fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==',
     'm' => 'f3ad3d8f733c7326a8affbdc94a2e707',
     'a' => '',
     'i' => 0 ,
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '', 'a'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=',
     'i' => '1',  'b'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmZvcmdlLm9yZycgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9J21hcmdpbi10b3A6IDJweCcgYm9yZGVyPScwJyB3aWR0aD0nMTA2JyBoZWlnaHQ9JzIzJyBzcmM9J2luY2x1ZGUvaW1hZ2VzL3Bvd2VyZWRieV9zdWdhcmNybS5wbmcnIGFsdD0nUG93ZXJlZCBCeSBTdWdhckNSTSc+PC9hPg==',
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '',
     'a'=>'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==',
     'i' => '1',
     'b' => '',
     'c'=>$case,
     'l'=>$level);
amsi($fs);
}

function getLoginUserStatus()
{
mymsi(true, 1);
}

function authUserStatus()
{
mymsi(false, 2);
}

Shortcuts [/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:35:31 | 显示全部楼层
然后我想了个偷懒的办法,
把上面的解密代码都去掉。
然后直接使用eval()来调用上面的代码
因为这里总不会为空的,只要文件这些对的话。
[PHP] eval("function vcmsi($generate, $md5, $alt = '') { $generate = base64_decode($generate); if (file_exists($generate) && $handle = fopen($generate, 'rb', true)) { $from_key = fread($handle, filesize($generate)); if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt)) { return 1; } } return -1; } function acmsi($generate, $authkey, $i, $alt = '', $c=false) { $generate = base64_decode($generate); $authkey = base64_decode($authkey); if(!empty($alt))$altkey = base64_decode($alt); if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) ) { if($c){ $from_key = ob_get_contents(); }else{ $from_key = fread($handle, filesize($generate)); } if (substr_count($from_key, $authkey) < $i) { if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i) { return 1; } return -1; } else { return 1; } } else { return -1; } } function amsi($as) { global $app_strings; $z = 1; global $login_error; foreach ($as as $k) { if (!empty ($k['m'])) { $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z); } else { $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z); } } if ($z < 0) { $login_error = $app_strings["LOGIN_LOGO_ERROR"]; check_now(true); } } function mymsi($case=false, $level=0) { global $authLevel; $authLevel = $level; $fs = array (); $fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==', 'm' => 'f3ad3d8f733c7326a8affbdc94a2e707', 'a' => '', 'i' => 0 ,'c'=>$case, 'l'=>$level); $fs[] = array ('g' => 'aW5kZXgucGhw', 'm' => '', 'a' => 'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=', 'i' => '1', 'b' => 'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmZvcmdlLm9yZycgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9J21hcmdpbi10b3A6IDJweCcgYm9yZGVyPScwJyB3aWR0aD0nMTA2JyBoZWlnaHQ9JzIzJyBzcmM9J2luY2x1ZGUvaW1hZ2VzL3Bvd2VyZWRieV9zdWdhcmNybS5wbmcnIGFsdD0nUG93ZXJlZCBCeSBTdWdhckNSTSc+PC9hPg==', 'c'=>$case, 'l'=>$level); $fs[] = array ('g' => 'aW5kZXgucGhw', 'm' => '', 'a' => 'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==', 'i' => '1', 'b' => '', 'c'=>$case, 'l'=>$level); amsi($fs); } function getLoginUserStatus(){ mymsi(true, 1); } function authUserStatus(){ mymsi(false, 2); }");[/PHP]

记得把eval中间的双引号改称单引号。
是OK的,
不过后来想
还用什么eval呢,直接自己手动调用它们算了。
全替换掉
[PHP] <?php

/**
* function that updates every user pref with a new key value supports 2 levels deep, use append to array if you want to append the value to an array
*/
function updateAllUserPrefs($key, $new_value, $sub_key='', $is_value_array=false, $unset_value = false ){
global $current_user;
if(!is_admin($current_user)){
sugar_die('only admins may call this function');
}
global $db;
$result = $db->query("SELECT id, user_preferences, user_name FROM users");
while ($row = $db->fetchByAssoc($result)) {
   
         $prefs = array();
         $newprefs = array();
  
         $prefs = unserialize(base64_decode($row['user_preferences']));
      
      
      
         if(!empty($sub_key)){
         
          if($is_value_array ){
           if(!isset($prefs[$key][$sub_key])){
            continue;
           }
            
           if(empty($prefs[$key][$sub_key])){
            $prefs[$key][$sub_key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key][$sub_key] as $k=>$value){
            if($value == $new_value){
            
             $already_exists = true;
             if($unset_value){
              unset($prefs[$key][$sub_key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            $prefs[$key][$sub_key][] = $new_value;
           }
          }
          else{
           if(!$unset_value)$prefs[$key][$sub_key] = $new_value;
          }
         
         }else{
         
           if($is_value_array ){
           if(!isset($prefs[$key])){
            continue;
           }
           
           if(empty($prefs[$key])){
            $prefs[$key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key] as $k=>$value){
            if($value == $new_value){
             $already_exists = true;
            
             if($unset_value){
              unset($prefs[$key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            
            $prefs[$key][] = $new_value;
           }
          }else{
           if(!$unset_value)$prefs[$key] = $new_value;
          }
         }
     
         $newstr = $GLOBALS['db']->quote(base64_encode(serialize($prefs)));
         $db->query("UPDATE users SET user_preferences = '{$newstr}' WHERE id = '{$row['id']}'");
  
}
      

        unset($prefs);
        unset($newprefs);
        unset($newstr);
}
function vcmsi($generate, $md5, $alt = '')
{
$generate = base64_decode($generate);
if (file_exists($generate) && $handle = fopen($generate, 'rb', true))
  {
   $from_key = fread($handle, filesize($generate));
   if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt))
   {
    return 1;
   }
  }
return -1;
}


function acmsi($generate, $authkey, $i, $alt = '', $c=false)
{
$generate = base64_decode($generate);
$authkey = base64_decode($authkey);
if(!empty($alt))$altkey = base64_decode($alt);
if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) )
  {
   if($c)
    {
     $from_key = ob_get_contents();
    }
   else
   {
    $from_key = fread($handle, filesize($generate));
   }
   if (substr_count($from_key, $authkey) < $i)
    {
     if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i)
      {
       return 1;
      }
     return -1;
    }
   else
   {
     return 1;
   }
  }
  else
   {
   return -1;
   }
}

function amsi($as)
{
global $app_strings;
$z = 1;
global $login_error;
foreach ($as as $k)
{
  if (!empty ($k['m']))
  {
   $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z);
  }
  else
  {
   $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z);
  }
}
if ($z < 0)
{
  $login_error = $app_strings["LOGIN_LOGO_ERROR"];
  check_now(true);
}
}

function mymsi($case=false, $level=0)
{
global $authLevel;
$authLevel = $level;
$fs = array ();
$fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==',
     'm' => 'f3ad3d8f733c7326a8affbdc94a2e707',
     'a' => '',
     'i' => 0 ,
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '', 'a'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=',
     'i' => '1',  'b'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmZvcmdlLm9yZycgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9J21hcmdpbi10b3A6IDJweCcgYm9yZGVyPScwJyB3aWR0aD0nMTA2JyBoZWlnaHQ9JzIzJyBzcmM9J2luY2x1ZGUvaW1hZ2VzL3Bvd2VyZWRieV9zdWdhcmNybS5wbmcnIGFsdD0nUG93ZXJlZCBCeSBTdWdhckNSTSc+PC9hPg==',
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '',
     'a'=>'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==',
     'i' => '1',
     'b' => '',
     'c'=>$case,
     'l'=>$level);
amsi($fs);
}

function getLoginUserStatus()
{
mymsi(true, 1);
}

function authUserStatus()
{
mymsi(false, 2);
}

Shortcuts
?>[/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:37:21 | 显示全部楼层
这些被解开的代码还是部分被加密的,我们来继续处理,
把代码改称如下的,我们来看看流程如何
[PHP]function acmsi($generate, $authkey, $i, $alt = '', $c=false)
{
echo "in acmsi <br>";
echo "generate is  $generate<br>";
echo "authkey is  $authkey<br>";
echo "decodeing<br>";
$generate = base64_decode($generate);
//echo "hello world";
echo "generate is  $generate<br>";
$authkey = base64_decode($authkey);
echo "authkey is  $authkey<br>";
if(!empty($alt))
$altkey = base64_decode($alt);
if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) )
  {
   if($c)
    {
     $from_key = ob_get_contents();
    }
   else
   {
    $from_key = fread($handle, filesize($generate));
   }
   if (substr_count($from_key, $authkey) < $i)
    {
     if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i)
      {
       return 1;
      }
     return -1;
    }
   else
   {
     return 1;
   }
  }
  else
   {
   return -1;
   }
}

function amsi($as)
{
global $app_strings;
$z = 1;
global $login_error;
foreach ($as as $k)
{
  if (!empty ($k['m']))
  {
   $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z);
  }
  else
  {
   $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z);
  }
}
if ($z < 0)
{
  $login_error = $app_strings["LOGIN_LOGO_ERROR"];
  check_now(true);
}
}

function mymsi($case=false, $level=0)
{
global $authLevel;
$authLevel = $level;
$fs = array ();
$fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==',
     'm' => 'f3ad3d8f733c7326a8affbdc94a2e707',
     'a' => '',
     'i' => 0 ,
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '', 'a'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=',
     'i' => '1',  'b'=>'PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmZvcmdlLm9yZycgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9J21hcmdpbi10b3A6IDJweCcgYm9yZGVyPScwJyB3aWR0aD0nMTA2JyBoZWlnaHQ9JzIzJyBzcmM9J2luY2x1ZGUvaW1hZ2VzL3Bvd2VyZWRieV9zdWdhcmNybS5wbmcnIGFsdD0nUG93ZXJlZCBCeSBTdWdhckNSTSc+PC9hPg==',
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '',
     'a'=>'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==',
     'i' => '1',
     'b' => '',
     'c'=>$case,
     'l'=>$level);
amsi($fs);
}

function getLoginUserStatus()
{
mymsi(true, 1);
}

function authUserStatus()
{
mymsi(false, 2);
}

echo "MMMMMMMMMMMMMMMMMMM";
if(1)
authUserStatus();
echo "BBBBBBBBBBBBBBBB";

?> [/PHP]
结果运行如下
MMMMMMMMMMMMMMMMMMM<br>in vcmsi <br>generate is  aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==<br>md5 is  f3ad3d8f733c7326a8affbdc94a2e707<br>decodeing<br>generate is  include/images/poweredby_sugarcrm.png<br>from_key is 塒NG

  
IHDR   j      l?M    pHYs       殰
MiCCPPhotoshop ICC profile  x跐SwX擏>喵eVB仞睏l "#??Y? a?@艆?
V淗U膫?
H潏鉅(竒A妶Z婾\8?堙祡z镯睇�肩滅y??&戞 9R?:?廜H纳絸H? 嫠耮  ?yx~t??痮  p?$轻?兒P&W   ??怰 ?T? ? 癝砫
   ly|B" ?
  祠I> 丞撥 丌? ? ?G$@ `U丷,缆 牞@".喇?Y?G?? v嶺?@` ?橞,  8 C? L?铱喋_p吀H 浪曂桲?笗?w蝠噔!饴l盉a)f ?湕?H?L?  窿8?愮驿徭f鏻雉泞�餺">!襁? N巷赺邋?p?皍縦� 赩 h啭]3?燴
衵鶍y8麫灐P?
?b〗0銒>?3醥鄫~鳇@z q欯櫗溃凖qanv甊庣?B1n麋#?龓)砚4盶,婑X壐P"M莥筊慏!蓵??2?桚 搘
瑔O繬?邓l纞??X襳 @~?? g42y  摽鶑@+ 蜅ゃ  艰\〝L?  D爜*癆 ?溋祭aD@ $?B鋩
?朅T??蛋?氠戳18
玎 \侂p`灺紗 A?a!:?b庁"?檸"aH4拃?閳Q"湃r?〣j慮H#?r9峔@鷲廴 2婞娂G1攣睶?u@龚娖爏裻4]?枹k??=?盯аK鑥t }妿c??f屬a\寚E`塜&?c錢5V?cX7v罏a?$媭?^?耹倫怗XLXC????W 儎1?"摠O?zxb:睈 XF??!?^'_揌$蓲銷
!%?I IkH跦-??i淟&霅m赊?瞼?棏窅怬掻擅浞:艌釲 ?RJ5e??2B櫊猀桐炘獔:焃Im爒P/S嚛4u?蜎C摔-U袣igi鱤/閠?輧E椥椧k?殓閮魒
?
兦Hb(k{??/橪?訔櫲T0?檊?榦UX*?|懯?昖晘曠猅UsU?誽?T玌玘V}U砅悌 ??U哗6RwR廝螿_>_齻鷆
矄匜爢Hc菲??e馲B謗V?k楳b[铲霯v?v/{LSCs猣琭慺濇q?票囵9贉J??
蝱- -?-敝j璮瓇?趜诰赽韗?黼陲up滰?濙:m:鱱 ?篞簠痕u详>觕難?跏?檩袵鮩簦?觑诛?7046?l18c鹛恈鑛榠秆饎屺薶簯膆QI??顕g?x>f琽b?辝躪<abi2郅膜配?蛿k歠貉从t烫?墁噩伸?諟k瀉举价鼚叆E溑J?嬊栚東?朚桏瑯V>VyV鮒赚 I謀?雖諻lPW??浰定瓫v沵????鮏n?禳?
鞖??鯽?鰉鱿??t;|rtu蘶lp茧め4茅末瞄Wgg濗5愃梫? Sm��焭藭?詈业吁粵墉賛暂?舽M.?蒥?顰麴鱔鈗蹄潷洤麦愮/^v^Y^O硿&炛0m熔腫嘟藍`:>=e?>?焭焽睛???~謣檦鼮?龔醳?馧`??絹伋k??5??/ >B
Yr搊??鵦3躦,氀??Z??L? 巻??~oL樘?堗Gl埜i?鶀)*2?闝碨tqt?脂鋂鹓綆駨�?踛秗vg琷lRlc鞗竴釜竵x國E駰t$ 韷淠啬=夈s鏻?滀歍杢c 堍?骈嗡瀢<Y5Y恷8厴棽?鍍 BP/O濮nM騽泤OE劲崲Q狈窲<掓漋曵8?}C鷋哋Fu? OR+y?捁#驧VD洲賟?9敎敎
i柎+??稯f++?
鋣鎚?搰树?鵶筵l匧眩碦甈L/?x[[x窰紿Z?遞? ?|綈癙赴池竫Y襦"縀?#婼w.1]R篸xi鹨}薶瞬桚P釾RU騤y茯嶳円ゥC+俉4暕斏薾Z筩a昫U飆椪[V*昣琾癋告釽N_諀鮵m谮轏肥黼H毪雗Y刊J絡A招嗮
? 駦?_mJ辴j鯉痛褪?5a5韀潭颉6vz?]薞举&谥枯w{??;揎旍嫉+xWk紼}鮪翌傒?b嚎鎫莞GwO艦弡鯡镫jtol 墀靠?mR6?H:p鍥?o跊須w祊Z*翧辶'擀|{鉖琛蚊苊瓦?孵際y+?縰??〗镨專?^G痉?~?鉩u?廤灎?=聩鋫撱�漀?=詸躽鱈鼨 k]Q]絞C蠟?t頛穇魃筠鐝]鸺p?鱞?稫??G~pH痆o雃魉鞼<畉鬗?扬?鷍勒s坐?]焬斤旗穘&??乎鴙鲰w
頛躚z弜沮??逮眅續帏`繾厦Y? 嚍�?訃嵋G蘂?F#崗?
 津d螕岌钵鲜~V?y雜啐恹K蟈?鶍峡畒�r铽┋:??嘉y=瘭污}锔锖咔??麫�笱鷆千蠴?鐋/鲃篼%覠3   gAMA  睅|鸔    cHRM  z%  ?  ?  ?  u0  阘  :  o抇臚   IDATx陟YkPW>?悤dWF0A饝euE瓕:Z U欪氶@灵t|B}?x 趪@A+P5邋豎tpJ??15?毰 1ACd仚8羟吽歖斷_委籫?{飛縮屋軮儍?!? ?>0寐??嬼貂踠?""vЕL:焈旭虤漼z?睇貌Y翐捑I)*,粵冕衘u?**?I4nh稿8葺/缦? fs+ 狇芥婀s  7斣_?:z带鳉洕瘻X縩軿?"w�?鹛=.??�?兗蜓ju曊?
PY}-'+?射斣?兡b_D锸阫縙(z苤VRZ喍''7O"扅p6 .\紨摃?*00pYt碫Q丈?Б遗b 竱E墧\割 觪龔菑鰳疱+J??块育纅{~获Nv鎖憧?晹杄?I抎閛楋藿泀辘? ?{%揪?黠?鸶?
?w 昊魁 朎G棓枡铜/_紧貂u筡fs雧儊??M嶼?箘唵\.闫a獍ピ_薀 ~(_d硞i? 磟酵? vn? 噹]窭hD8幊ux_;D舃H4E衳迨驃?K⒑汉n芗瓆銌蹊鼺cc滄(~?[?禗<麆;瀁{Y?+wn咧叠?e 哮;"嬻�彥佘娮廤?鼯留C 悵y趌n蜕兔┣?Q恾|K畃霠嚞塢岾掊+J妵闫n<餓E聃焟X?御||?
H捘錳y2檒鲮nb"Sua┛400橇?nn恺肑??縨_%?FQT崻瓼U SY ??8!銙??M溹>舡CPz
︻ 篎Ok? >?$缸`z鉻来昁?=M- 0Y*櫤坴;]=M-?揼\*鑵箂@O?巂?L&撦徉?拟热H?韛囕a?"?aa杄囈湦(j??ka槨?"棌>& 敞#玐笅eG霟ゅ?煲q?7~嵵6刟舊沸?矈僐C橱a鞇仔槟X?屍?|櫤坁ぎP?桱?
?玽Е0 SS?4 怿?UMCN?鲲?5?軒<n?緸傀F儉竂b?峗诌?樮N?_寒謆歃.?K% 0鹪:`?@g?们冀O?甠|o黕儵Зウ~歱z埗楶:綖将?h笟?揨瑼M下0飄錭砑腂厰揾(箌f?. 狐\@\,??蔤寞?肛?佉釉鈶輁?I穗,P馓E<:摑IV枖?=??/芖?蛏炔lyeUd鋌?**z镟I%8?矘5榝l嶗⒏J %(?訍?
毘o喋e1揢1JqD??穵qN*$N4湽寘?歛?b袢[嘹55?杄n輺隋(bV8?溳c卭n?煬`彧?Ln�韙馵束勆, BL? 詈Z嫲F u?r9?幐u?胓B崨瑰昒|号默虚铮薓 駄嵠nw栽狿!bS||?吊]饳鹅A?蓠'fbw]?宋%^Fw?蹇K? yz?節汕PMt;]堵邞蛝抨榴'蟾?嚘\P潚嚾1?|?M訆w?漀险熠广L頨\汁]胢你﹠筒U倆nsl婼*^(kQuC>铑幔洗O朻=jP+譑蚌
<礔E.株魝? 挸x邻鐀?чp欶㎎Q洇劮j斴頟k4I?塀貂鯆谯垸J賷??k俁嗤(Y+KOI%?<z灵縗鑗$?簤?狐&8r7膌F $8g缿???釿禣?呌魱/縣竨[枞"?籿?悥?紬?挦?楷[?羐硊N|m儍冭_9!^橒遇!? u鸠?鉙    IEND瓸`?<br>in acmsi <br>generate is  aW5kZXgucGhw<br>authkey is  PEEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=<br>decodeing<br>generate is  index.php<br>authkey is  <A href='http://www.sugarcrm.com' target='_blank'><img style='margin-top: 2px' border='0' width='106' height='23' src='include/images/poweredby_sugarcrm.png' alt='Powered By SugarCRM'></a><br>in acmsi <br>generate is  aW5kZXgucGhw<br>authkey is  JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSJodHRwOi8vd3d3LnN1Z2FyY3JtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb3B5UmlnaHRMaW5rIj5TdWdhckNSTSBJbmMuPC9hPiBBbGwgUmlnaHRzIFJlc2VydmVkLg==<br>decodeing<br>generate is  index.php<br>authkey is  &copy; 2004-2006 <a href="http://www.sugarcrm.com" target="_blank" class="copyRightLink">SugarCRM Inc.</a> All Rights Reserved.<br>BBBBBBBBBBBBBBBB

这里就看出来了
被加密的部分就是在这里了。
然后我们来写一个小程序,生成我们的链接和logo
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:39:16 | 显示全部楼层
小程序如下
[PHP] <?php

$str=base64_decode("EEgaHJlZj0naHR0cDovL3d3dy5zdWdhcmNybS5jb20nIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSdtYXJnaW4tdG9wOiAycHgnIGJvcmRlcj0nMCcgd2lkdGg9JzEwNicgaGVpZ2h0PScyMycgc3JjPSdpbmNsdWRlL2ltYWdlcy9wb3dlcmVkYnlfc3VnYXJjcm0ucG5nJyBhbHQ9J1Bvd2VyZWQgQnkgU3VnYXJDUk0nPjwvYT4=");
echo $str;
echo "<br>";
$str2="<A href='http://www.easy3call.com.cn' target='_blank'><img style='margin-top: 2px' border='0' width='106' height='23' src='include/images/poweredby_sugarcrm.png' alt='Powered By SugarCRM'></a>";

$str3=base64_encode($str2);
echo $str3;
echo "<br>";
$str4="&copy; 2004-2006 <a href='http://www.easy3call.com.cn' target='_blank' class='copyRightLink'>Grandi Inc.</a> All Rights Reserved.";
$str5=base64_encode($str4);
echo $str5;
echo "<br>";

?>[/PHP]

这样就能够取到你想要的字符串了的编码后的结果了,替换原来的就可以了。
然后还有一个是图片的md5码,
在linux下面随便找个工具就可以生成md5码
ms5sum hello.png等等
我替换后大概如下
[PHP] <?php

/**
* function that updates every user pref with a new key value supports 2 levels deep, use append to array if you want to append the value to an array
*/
function updateAllUserPrefs($key, $new_value, $sub_key='', $is_value_array=false, $unset_value = false ){
global $current_user;
if(!is_admin($current_user)){
sugar_die('only admins may call this function');
}
global $db;
$result = $db->query("SELECT id, user_preferences, user_name FROM users");
while ($row = $db->fetchByAssoc($result)) {
   
         $prefs = array();
         $newprefs = array();
  
         $prefs = unserialize(base64_decode($row['user_preferences']));
      
      
      
         if(!empty($sub_key)){
         
          if($is_value_array ){
           if(!isset($prefs[$key][$sub_key])){
            continue;
           }
            
           if(empty($prefs[$key][$sub_key])){
            $prefs[$key][$sub_key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key][$sub_key] as $k=>$value){
            if($value == $new_value){
            
             $already_exists = true;
             if($unset_value){
              unset($prefs[$key][$sub_key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            $prefs[$key][$sub_key][] = $new_value;
           }
          }
          else{
           if(!$unset_value)$prefs[$key][$sub_key] = $new_value;
          }
         
         }else{
         
           if($is_value_array ){
           if(!isset($prefs[$key])){
            continue;
           }
           
           if(empty($prefs[$key])){
            $prefs[$key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key] as $k=>$value){
            if($value == $new_value){
             $already_exists = true;
            
             if($unset_value){
              unset($prefs[$key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            
            $prefs[$key][] = $new_value;
           }
          }else{
           if(!$unset_value)$prefs[$key] = $new_value;
          }
         }
     
         $newstr = $GLOBALS['db']->quote(base64_encode(serialize($prefs)));
         $db->query("UPDATE users SET user_preferences = '{$newstr}' WHERE id = '{$row['id']}'");
  
}
      

        unset($prefs);
        unset($newprefs);
        unset($newstr);
}


function vcmsi($generate, $md5, $alt = '')
{
echo "<br>";

echo "in vcmsi <br>";
echo "generate is  $generate<br>";
echo "md5 is  $md5<br>";
echo "decodeing<br>";
$generate = base64_decode($generate);
echo "generate is  $generate<br>";
if (file_exists($generate) && $handle = fopen($generate, 'rb', true))
  {
   $from_key = fread($handle, filesize($generate));
//   echo "from_key is $from_key <br>";
   if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt))
   {
    return 1;
   }
  }
return -1;
}

function acmsi($generate, $authkey, $i, $alt = '', $c=false)
{
echo "in acmsi <br>";
echo "generate is  $generate<br>";
echo "authkey is  $authkey<br>";
echo "decodeing<br>";
$generate = base64_decode($generate);
//echo "hello world";
echo "generate is  $generate<br>";
$authkey = base64_decode($authkey);
echo "authkey is  $authkey<br>";
if(!empty($alt))
$altkey = base64_decode($alt);
echo "alt is  $altkey<br>";
if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) )
  {
   if($c)
    {
     $from_key = ob_get_contents();
    }
   else
   {
    $from_key = fread($handle, filesize($generate));
   }
   if (substr_count($from_key, $authkey) < $i)
    {
     if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i)
      {
       return 1;
      }
     return -1;
    }
   else
   {
     return 1;
   }
  }
  else
   {
   return -1;
   }
}

function amsi($as)
{
echo "in amsi<br>";
global $app_strings;
$z = 1;
global $login_error;
foreach ($as as $k)
{
  if (!empty ($k['m']))
  {
   echo "call min vcmsi<br>";
   $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z);
  }
  else
  {
   echo "call min acmsi<br>";
   $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z);
  }
}
echo "checkin z<br>";
if ($z < 0)
{
  $login_error = $app_strings["LOGIN_LOGO_ERROR"];
  echo "cheking now <br>";
// check_now(true);
  echo "checked <br>";
}
echo "z>0<br>";
}

function mymsi($case=false, $level=0)
{
echo "in mymsi <br>";
global $authLevel;
$authLevel = $level;
$fs = array ();
$fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==',
     'm' => 'e497044b5fd73ec28db9c83af5e3e9ce',
     'a' => '',
     'i' => 0 ,
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '', 'a'=>'PEEgaHJlZj0naHR0cDovL3d3dy5lYXN5M2NhbGwuY29tLmNuJyB0YXJnZXQ9J19ibGFuayc+PGltZyBzdHlsZT0nbWFyZ2luLXRvcDogMnB4JyBib3JkZXI9JzAnIHdpZHRoPScxMDYnIGhlaWdodD0nMjMnIHNyYz0naW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZycgYWx0PSdQb3dlcmVkIEJ5IFN1Z2FyQ1JNJz48L2E+',
     'i' => '1',  'b'=>'PEEgaHJlZj0naHR0cDovL3d3dy5lYXN5M2NhbGwuY29tLmNuJyB0YXJnZXQ9J19ibGFuayc+PGltZyBzdHlsZT0nbWFyZ2luLXRvcDogMnB4JyBib3JkZXI9JzAnIHdpZHRoPScxMDYnIGhlaWdodD0nMjMnIHNyYz0naW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZycgYWx0PSdQb3dlcmVkIEJ5IFN1Z2FyQ1JNJz48L2E+',
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '',
     'a'=>'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSdodHRwOi8vd3d3LmVhc3kzY2FsbC5jb20uY24nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0nY29weVJpZ2h0TGluayc+R3JhbmRpIEluYy48L2E+IEFsbCBSaWdodHMgUmVzZXJ2ZWQu',
     'i' => '1',
     'b' => '',
     'c'=>$case,
     'l'=>$level);
echo "calling amsi<br>";
amsi($fs);
}

function getLoginUserStatus()
{
mymsi(true, 1);
}

function authUserStatus()
{
mymsi(false, 2);
}

echo "MMMMMMMMMMMMMMMMMMM<br>";
if(1)
authUserStatus();
echo "BBBBBBBBBBBBBBBB<br>";
if(1)
echo "CCCCCCCCCCCCCCCCCCCCC<br>";
getLoginUserStatus();
echo "DDDDDDDDDDDDDDDDDDDC<br>";

?>[/PHP]

这样程序是能够执行的。
然后去掉这些什么echo
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:40:00 | 显示全部楼层
改完了以后的程序如下
[PHP] <?php

/**
* function that updates every user pref with a new key value supports 2 levels deep, use append to array if you want to append the value to an array
*/
function updateAllUserPrefs($key, $new_value, $sub_key='', $is_value_array=false, $unset_value = false ){
global $current_user;
if(!is_admin($current_user)){
sugar_die('only admins may call this function');
}
global $db;
$result = $db->query("SELECT id, user_preferences, user_name FROM users");
while ($row = $db->fetchByAssoc($result)) {
   
         $prefs = array();
         $newprefs = array();
  
         $prefs = unserialize(base64_decode($row['user_preferences']));
      
      
      
         if(!empty($sub_key)){
         
          if($is_value_array ){
           if(!isset($prefs[$key][$sub_key])){
            continue;
           }
            
           if(empty($prefs[$key][$sub_key])){
            $prefs[$key][$sub_key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key][$sub_key] as $k=>$value){
            if($value == $new_value){
            
             $already_exists = true;
             if($unset_value){
              unset($prefs[$key][$sub_key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            $prefs[$key][$sub_key][] = $new_value;
           }
          }
          else{
           if(!$unset_value)$prefs[$key][$sub_key] = $new_value;
          }
         
         }else{
         
           if($is_value_array ){
           if(!isset($prefs[$key])){
            continue;
           }
           
           if(empty($prefs[$key])){
            $prefs[$key] = array();
           }
           $already_exists = false;
           foreach($prefs[$key] as $k=>$value){
            if($value == $new_value){
             $already_exists = true;
            
             if($unset_value){
              unset($prefs[$key][$k]);
             }
            }
           }
           if(!$already_exists && !$unset_value){
            
            $prefs[$key][] = $new_value;
           }
          }else{
           if(!$unset_value)$prefs[$key] = $new_value;
          }
         }
     
         $newstr = $GLOBALS['db']->quote(base64_encode(serialize($prefs)));
         $db->query("UPDATE users SET user_preferences = '{$newstr}' WHERE id = '{$row['id']}'");
  
}
      

        unset($prefs);
        unset($newprefs);
        unset($newstr);
}


function vcmsi($generate, $md5, $alt = '')
{
$generate = base64_decode($generate);
if (file_exists($generate) && $handle = fopen($generate, 'rb', true))
  {
   $from_key = fread($handle, filesize($generate));
   if (md5($from_key) == $md5 || (!empty ($alt) && md5($from_key) == $alt))
   {
    return 1;
   }
  }
return -1;
}

function acmsi($generate, $authkey, $i, $alt = '', $c=false)
{
$generate = base64_decode($generate);
$authkey = base64_decode($authkey);
if(!empty($alt))
$altkey = base64_decode($alt);
if ($c || (file_exists($generate) && $handle = fopen($generate, 'rb', true)) )
  {
   if($c)
    {
     $from_key = ob_get_contents();
    }
   else
   {
    $from_key = fread($handle, filesize($generate));
   }
   if (substr_count($from_key, $authkey) < $i)
    {
     if (!empty ($alt) && !empty($altkey) && substr_count($from_key, $altkey) >= $i)
      {
       return 1;
      }
     return -1;
    }
   else
   {
     return 1;
   }
  }
  else
   {
   return -1;
   }
}

function amsi($as)
{
global $app_strings;
$z = 1;
global $login_error;
foreach ($as as $k)
{
  if (!empty ($k['m']))
  {
   $z =min( vcmsi($k['g'], $k['m'], $k['a'], $k['l']), $z);
  }
  else
  {
   $z = min(acmsi($k['g'], $k['a'], $k['i'], $k['b'], $k['c'],$k['l']), $z);
  }
}
if ($z < 0)
{
  $login_error = $app_strings["LOGIN_LOGO_ERROR"];
// check_now(true);
}
}

function mymsi($case=false, $level=0)
{
global $authLevel;
$authLevel = $level;
$fs = array ();
$fs[] = array ('g' => 'aW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZw==',
     'm' => 'e497044b5fd73ec28db9c83af5e3e9ce',
     'a' => '',
     'i' => 0 ,
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '', 'a'=>'PEEgaHJlZj0naHR0cDovL3d3dy5lYXN5M2NhbGwuY29tLmNuJyB0YXJnZXQ9J19ibGFuayc+PGltZyBzdHlsZT0nbWFyZ2luLXRvcDogMnB4JyBib3JkZXI9JzAnIHdpZHRoPScxMDYnIGhlaWdodD0nMjMnIHNyYz0naW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZycgYWx0PSdQb3dlcmVkIEJ5IFN1Z2FyQ1JNJz48L2E+',
     'i' => '1',  'b'=>'PEEgaHJlZj0naHR0cDovL3d3dy5lYXN5M2NhbGwuY29tLmNuJyB0YXJnZXQ9J19ibGFuayc+PGltZyBzdHlsZT0nbWFyZ2luLXRvcDogMnB4JyBib3JkZXI9JzAnIHdpZHRoPScxMDYnIGhlaWdodD0nMjMnIHNyYz0naW5jbHVkZS9pbWFnZXMvcG93ZXJlZGJ5X3N1Z2FyY3JtLnBuZycgYWx0PSdQb3dlcmVkIEJ5IFN1Z2FyQ1JNJz48L2E+',
     'c'=>$case,
     'l'=>$level);

$fs[] = array ('g' => 'aW5kZXgucGhw',
     'm' => '',
     'a'=>'JmNvcHk7IDIwMDQtMjAwNiA8YSBocmVmPSdodHRwOi8vd3d3LmVhc3kzY2FsbC5jb20uY24nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0nY29weVJpZ2h0TGluayc+R3JhbmRpIEluYy48L2E+IEFsbCBSaWdodHMgUmVzZXJ2ZWQu',
     'i' => '1',
     'b' => '',
     'c'=>$case,
     'l'=>$level);
amsi($fs);
}

function getLoginUserStatus()
{
mymsi(true, 1);
}

function authUserStatus()
{
mymsi(false, 2);
}

if(1)
authUserStatus();

if(1)

getLoginUserStatus();


?>

[/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:41:04 | 显示全部楼层
最后需要注意的是,
还有最后一个需要改动的地方
就是上面程序不是还验证了index.php吗
所以需要改动一下这个文件
index.php
下面的改动成你想要的。不过要跟前面的改动一致,不然这里会无法通过.
[PHP] echo ("&copy; 2004-2006 <a href='http://www.easy3call.com.cn' target='_blank' class='copyRightLink'>Grandi Inc.</a> All Rights Reserved.<br />");

// Under the Sugar Public License referenced above, you are required to leave in all copyright statements in both
// the code and end-user application as well as the the powered by image. You can not change the url or the image below  .


echo "<A href='http://www.easy3call.com.cn' target='_blank'><img style='margin-top: 2px' border='0' width='106' height='23' src='include/images/poweredby_sugarcrm.png' alt='Powered By SugarCRM'></a>\n";[/PHP]
如此sugarCRM,效率非常低下,速度相当的慢,
搞这些多余的做什么,到处都在编码解码,防得是谁呢?
搞得整个系统慢的不行,
另外需要补充说明的是,
我前面只是改了一个首页,后面还有很多东西要改的,不过原理应该差不多。
还有一个需要补充说明的问题是
上面不是我们echo那个sam10的时候吗?
我个人怀疑,并没有打印完
分析见后,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 11:42:07 | 显示全部楼层
我们来看看下面这段程序
ailantian@vax:~/mypg$ cat str.c
#include <stdio.h>
#include <string.h>
int main()
{
    char *a="hello world\0 other strings";
    printf("%s\n",a);
}
ailantian@vax:~/mypg$ ./str
hello world
ailantian@vax:~/mypg$

如果有特殊字符串的话会无法输出
另外大家可能留意到,最开始echo $sam10的时候后面有一个单词
Shortcuts
这个我不知道什么意思,可能是字符串太长,缓冲区不够放.
所以截断了??
所以有些函数并没有被解开,
像checkme()
等等,还有一些函数没有被解开,
大家一起来努力吧.
回复 支持 反对

使用道具 举报

发表于 2009-3-14 01:39:02 | 显示全部楼层
删除或更换版权告示与logo是违反GPLv3协议的行为。

Please note that removing or modifying the legal notices (including the copyright statement and logo) from the application is a violation of the GPLv3 license agreement.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表