给客户弄WP模板的时候解密其中的加密代码

0 个评论
今天给客户弄WP模板的时候发现作者把页脚加密了 我还以为直接ECHO就可以出来了,结果却得到更乱的乱码 上网一查,如来是所谓N层加密的办法 然后我从网上找到了一些办法,最后只有这个通过了考验,解出我要的东西 附上代码   <?php /********************************************************************** *PHP eval gzinflate base64_decode str_rot13加密解密脚本 By:Neeao *目前只写了针对四种组合的,其他组合的可参考注释自行修改: *1.eval(gzinflate(str_rot13(base64_decode( *2.eval(gzinflate(base64_decode( *3.gzinflate(base64_decode(base64_decode(str_rot13( *4.eval(gzinflate(base64_decode(str_rot13( *Http://Neeao.com *2009-09-28 ***********************************************************************/ $filename=’coded.txt’;//要解密的文件 $handle = fopen($filename, “r”); $contents = fread($handle, filesize ($filename)); $contents_arr=explode(‘NeeaoNeeao’,htmlspecialchars(decode($contents))); echo “此代码被加密了”.$contents_arr[0].”层,内容如下:<br>\n”; echo $contents_arr[1]; /* 解密主函数 $Str,要解密的文件内容 */ function decode($str,$i=0) { $content=””; //eval(gzinflate(str_rot13(base64_decode( //先正则查找是否相关组合加密的,base64编码后的正则是:[A-Za-z0-9\/\+=] if(preg_match(“/(eval\(gzinflate\(str_rot13\(base64_decode\(‘)([A-Za-z0-9\/\+=]*)’/”,$str,$x)) { //替换掉没用的字符,获取加密后的密文 $content=str_replace(“eval(gzinflate(str_rot13(base64_decode(‘”,””,$x[0]); $content=str_replace(“‘”,””,$content); //变量i是用来判断加密层数的,初始值为0,解密一次,层数加一 $i++; //采用相关组合解密 $content=gzinflate(str_rot13(base64_decode($content))); //递归判断下是不是已经结束了,没结束继续重复解密 $content=decode($content,$i); } //eval(gzinflate(base64_decode( elseif(preg_match(“/eval\(gzinflate\(base64_decode\(‘[A-Za-z0-9\/\+=]*’/”,$str,$y)) { $content=str_replace(“eval(gzinflate(base64_decode(‘”,””,$y[0]); $content=str_replace(“‘”,””,$content); $i++; $content=gzinflate(base64_decode($content)); $content=decode($content,$i); } //gzinflate(base64_decode(base64_decode(str_rot13( elseif(preg_match(“/eval\(gzinflate\(base64_decode\(base64_decode\(str_rot13\(‘[A-Za-z0-9\/\+=]*’/”,$str,$z)) { $content=str_replace(“eval(gzinflate(base64_decode(base64_decode(str_rot13(‘”,””,$z[0]); $content=str_replace(“‘”,””,$content); $i++; $content=gzinflate(base64_decode(base64_decode(str_rot13(($content))))); $content=decode($content,$i); } //eval(gzinflate(base64_decode(str_rot13( elseif(preg_match(“/eval\(gzinflate\(base64_decode\(str_rot13\(‘[A-Za-z0-9\/\+=]*’/”,$str,$m)) { $content=str_replace(“eval(gzinflate(base64_decode(str_rot13(‘”,””,$m[0]); $content=str_replace(“‘”,””,$content); $i++; $content=gzinflate(base64_decode(str_rot13(($content)))); $content=decode($content,$i); } else { $content=$i.”NeeaoNeeao”.$str; } return $content; } ?>   当然,也不是一帆风顺,中间某个步骤说是解了67层的时候,还是乱码,但是这个脚本却提示已经解出来了,我还以为这个脚本没用 结果我把他显示的结果再存入需要解密的文件那里,再解了几十层之后,我要的代码终于出来了,就几个简单的DIV加一些版权东东 让我大呼上当,还以为他加密了啥函数在里面呢
2011-04-01 / wordpress / 4,226 views浏览
阅读全文

IE6、IE7、Firefox兼容CSS Hack总结

0 个评论
IE6,IE7,Firefox兼容的css hack 第一种办法: body { background:red; *background:blue !important; *background: green; } 第一排给Firefox以及其他浏览器看; 第二排给IE7,IE7既能能识别*号,也能识别important; 第三排给IE6也能识别*号; 第二种办法,使用_来区分IE6: body { background:red; *background:blue; _background: green; } 第一排给Firefox以及其他浏览器看; 第二排给IE7,IE7既能能识别*号; 第三排给IE6能识别下划线; CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点。 常见兼容问题: 1.DOCTYPE 影响 CSS 处理(但这个声明对于WEB标准的验证是非常重要的) 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width 5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。 9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: div{margin:30px!important;margin:28px;} 注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: div{maring:30px;margin:28px} 重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important; 10.IE5 和IE6的BOX解释不一致 IE5下 div{width:300px;margin:0 10px 0 10px;} div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改 div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:) 11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 ul{margin:0;padding:0;} 就能解决大部分问题
2011-03-29 / 网站制作技术 / 3,740 views浏览
阅读全文

DEDECMS会员模型中添加新的图片字段后图片地址无法保存

0 个评论
临时处理方法: 修改/include/customfields.func.php 254 行 else if($dtype==’img’ || $dtype==’imgfile’) { if($admintype==’diy’) 改成 else if($dtype==’img’ || $dtype==’imgfile’) { return $dvalue; if($admintype==’diy’) 322 行? $dvalue = MemberUploads($fieldname,”, 0, ‘addon’, ”, -1, -1, false); 改成 //$dvalue = MemberUploads($fieldname,”, 0, ‘addon’, ”, -1, -1, false); 注释掉 477 行 到 488 行也注释一下 要不然修改时候数据默认值会丢失 $ndtp = new DedeTagParse(); $ndtp->LoadSource($fvalue); if(!is_array($ndtp->CTags)) { $ndtp->Clear(); $fvalue =? “”; } else { $ntag = $ndtp->GetTag(“img”); $fvalue = trim($ntag->GetInnerText()); } 改成 /* $ndtp = new DedeTagParse(); $ndtp->LoadSource($fvalue); if(!is_array($ndtp->CTags)) { $ndtp->Clear(); $fvalue =? “”; } else { $ntag = $ndtp->GetTag(“img”); $fvalue = trim($ntag->GetInnerText()); } */
2011-03-24 / dedecms / 5,169 views浏览
阅读全文

第一次连SSH

0 个评论
早就听说过,就是没用过 今天LVGE的网站又出问题了~ 结果主机那边说是服务器在升级 这个期间FTP用不了,说如果急用就开SSH,于是我就像被赶上架的鸭子 根据教程自己生成密匙,然后下软件登录 教程备份一份,以备不时之需 http://bbs.8-host.net/read.php?tid=2808#4060
2011-03-18 / 网站制作技术 / 5,378 views浏览
阅读全文

转一下:给织梦dedecms5.6{dede:channel}标签增加行数序号属性

1 个评论
最近使用了dedecms5.6,当制作模板时,调用channel标签需要增加行数序号属性,但官方却没有提供这样的底层标签可供选用,这相比ASP的科汛CMS差了不少,不过通过自己的DIY,行号还是可以使用的,DIY方法如下: 要实现的效果 <ul> <li class=”list1″></li> <li?class=”list2″></li> <li?class=”list3″></li> <li?class=”list4″></li> <li?class=”list5″></li> </ul>   因为需要给class属性值list后面的序号自增,默认的{dede:channel标签没有提供序号功能,所以想到进行修改这个标签,来完善这个功能 以下是默认dede:channel标签的使用方法: <ul> {dede:channel type=’top’ row=’5′} <li><a href=”[field:typeurl/]” [field:rel/] title=”[field:typename/]“>[field:typename/]</a></li> {/dede:channel} </ul> 改进后,我们要实现如下代码: <ul> {dede:channel type=’top’ row=’5′} <li class=”list[field:line/]“><a href=”[field:typeurl/]” [field:rel/] title=”[field:typename/]“>[field:typename/]</a></li> {/dede:channel} </ul> 修改步骤如下: 1.修改/include/taglib/channel.lib.php文件的lib_channel函数,把如下代码 $attlist = “typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|”; 修改成: $attlist = “typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,line|1″; 2.修改/include/taglib/channel.lib.php文件的lib_channel函数,在第9行附近追加如下代码: //默认属性里设置的行数 $default_line = $ctag->CAttribute->Items[“line”]; 3.修改/include/taglib/channel.lib.php文件的lib_channel函数,把如下代码:? $row[‘sonids’] = $row[‘rel’] = ”; 修改成如下代码: $row[‘sonids’] = $row[‘rel’] = ”; $row[‘line’] = $default_line+$i; 就OK了.
2011-03-17 / dedecms / 6,054 views浏览
阅读全文

dede自定义字段的FCK编辑器的问题

0 个评论
给客户修改会员系统,发现DEDE的竟然有自定义会员模型功能 真是非常方便啊~ 每种类型的会员都可以单独设置附加表,里面可以放一些特殊的字段,比如普通会员可以留QQ,电话什么的,但是并不需要 荣誉证书什么的 而企业会员可以有荣誉证书,企业介绍等自定义字段 我是用的的后台给的html文本字段创建上述值 但是给我发现一个小小的问题,就是这些字段编辑的时候,竟然会显示源码,而不是我们所希望的所见即所得 然后我找了一下,结果发现在\include\FCKeditor文件夹里的fckeditor.php修改一下就可以了 找到这个函数 function CreateHtml() 然后修改 $HtmlValue =htmlspecialchars( $this->Value ) ; 为$HtmlValue = $this->Value ; 我查了一下, htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。语法为:htmlspecialchars(string,quotestyle,character-set) 也就是其中一些字符变了 预定义的字符是:   &(和号) 成为&amp;   ” (双引号) 成为 ”   ’ (单引号) 成为 ‘   < (小于) 成为 &lt;   > (大于) 成为 &gt; 结果在FCK里就不能正常显示我们需要的东西 所以干脆把这个函数去掉  
2011-03-16 / dedecms / 6,066 views浏览
阅读全文

又弄完一个小单

0 个评论
DEDE里面内容也隐藏某些信息 比如联系信息 只有VIP会员可以查看 我原来想用ajax,结果客户给我个演示 直接就是JS调用,呵呵 那就更加简单了 在MEMBER里选个文件一改就可以了
2011-03-07 / 生活 / 3,902 views浏览
阅读全文

终于忙完了~

0 个评论
接的两个单弄完了 一个修改114啦~ 一个用DEDE做私服发布的~ 第2个还没验收~ 估计不用修改多少了的 今天上午又聊了一单,说是星期一联系~不知道能不能成,能成的话又可以赚一点了 唉~几千块的债不是那么容易还的~ 有活得做最好~
2011-03-05 / 生活 / 3,895 views浏览
阅读全文

发现114啦的广告管理非常不灵活

0 个评论
帮客户修改114啦的时候,发现广告位置都是定死的,不能添加新的广告位 特别是头部,客户要求放很多的广告,可是114啦的程序只有广告轮播功能,我都不知道怎么添加 只好去修改源码了 把广告轮播拆成N条广告 从后台可知编辑首页广告调用的是ADMIN文件夹里的mod_advise_index.php 打开查找发现这个函数advise_index_display,里面调用了mod_advert里面的update_cache_main_advert函数 打开同文件夹里的mod_advert.php查找update_cache_main_advert这个函数就是读取数据库里的广告信息 在 if (!empty($conf[‘style’]) && $conf[‘style’] == ‘code’) { $code = $conf[‘htmlcode’]; 后面把标题参数给读出来 $conf[‘title’]=$row[‘title’]; 然后找到生成JS的地方update_cache_advert_js 把header给独立出来 if ($key != ‘index_txt’ && $key != ‘page_baidu’ && $key != ‘header’) 然后自己写header的处理程序 //小货修改,重新设置顶部广告的形式 if ($key == ‘header’) { //echo $key.”<br>”; $tmp = ”; foreach ($val as $value) { $value[‘code’] = trim($value[‘code’]); $tmp=”; foreach (explode(“\r\n”, $value[‘code’]) as $value2) { $value2 = str_replace(array(‘”‘, ‘/’), array(‘\”‘, ‘\/’), $value2); $tmp .= ‘document.writeln(“‘ . $value2 . ‘”);’ . “\r\n”; } mod_file::write(PATH_ROOT . ‘/static/js/’ . $key .’_’.$value[‘title’]. ‘.js’, $tmp); } } //小货修改,重新设置顶部广告的形式   就可以生成hearder_标题名.js的形式的广告 然后调用就可以了
2011-03-03 / 网站制作技术 / 3,982 views浏览
阅读全文

今天进空间控制面板吓了我一跳

1 个评论
空间用了3G,超出了限制 我第一念头就是,是不是网站被黑了,或者被人上传了N多大文件 然后我查看了一下附件文件夹,发现附件很少,不太可能占用大量空间 仔细再想了一下,唯一可能的就是DEDE的淘宝客程序了 进入它的安装文件夹后看了看缓存文件,天!!!N多文件夹 我无法估计使用的空间的大小 于是想到进CP备份一下,再下载下来,解压后就知道到底是哪个文件夹出问题 花了10来分钟下了备份压缩包,一共300多M,解压一看,淘宝客临时文件夹就占了差不多2G 毫不犹豫,删除它 发现FTP删除实在是慢~用CP提供的文件管理器却没反应 没办法,只能使用以前我收集的一个PHP小程序去操作 却发现老是提示错误 天啊,删除都是个大问题  
2011-03-03 / 生活 / 4,817 views浏览
阅读全文