找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
查看: 2597|回复: 6

找到AKCMS的Powered藏身之处

[复制链接]
发表于 2011 年 2 月 11 日 11:41:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
render.inc.bin解码...不解释
  1. <?php

  2. $sysname = 'AKCMS';
  3. $sysedition = '3.6';
  4. $authkey = '2011';
  5. $safecode = base64_decode('Wypha2Ntcypd');
  6. $itemfields = array('title','shorttitle','aimurl','filename','category','section','template','author','source','dateline','pageview','picture','attach','comment','keywords','digest','data','orderby','orderby2','orderby3','orderby4');
  7. $authfile = AK_ROOT.'configs/auth.php';
  8. $authlist = AK_ROOT.'configs/auth.lst';
  9. $authsuccess = 0;
  10. if($__callmode == 'web') $_vc = ak_md5($_SERVER['HTTP_USER_AGENT']."\t".$_SERVER['REMOTE_ADDR'],1);
  11. if(file_exists($authfile)) {
  12. $auth = readfromfile($authfile);
  13. $auth = decodeauth($auth);
  14. if($auth != '') {
  15. if(strpos($auth,'#') !== false) {
  16. $auth = substr($auth,0,-11);
  17. $expire = substr($auth,-11);
  18. if($expire <$thetime) writetofile('',$authfile);
  19. }
  20. $auths = explode("\t",$auth);
  21. foreach($auths as $auth) {
  22. if($__callmode != 'web') {
  23. $authsuccess = 1;
  24. break;
  25. }
  26. if($auth == $_SERVER['SERVER_ADDR']) $authsuccess = 1;
  27. if($auth == $_SERVER['HTTP_HOST']) $authsuccess = 1;
  28. if(strlen($_SERVER['HTTP_HOST']) >strlen($auth) &&substr($_SERVER['HTTP_HOST'],strlen($auth) * -1) == $auth) $authsuccess = 1;
  29. if($authsuccess == 1) break;
  30. }
  31. }
  32. if($auth == ''&&empty($foreflag)) {
  33. if(file_exists($authlist)) {
  34. $list = readfromfile($authlist);
  35. $list = str_replace("\r\n","\n",$list);
  36. $lists = explode("\n",$list);
  37. }else {
  38. $lists = array($_SERVER['SERVER_ADDR'],$_SERVER['HTTP_HOST']);
  39. }
  40. $lists = implode(',',$lists);
  41. $authonline = readfromurl('http://auth.akcms.com/getauth.php?version='.$sysedition.'&key='.$lists);
  42. if(substr($authonline,0,5) == '<?php'&&strlen($authonline) >41) {
  43. writetofile($authonline,$authfile);
  44. exit('auth file update successfully,refresh now.');
  45. }elseif($authonline == '') {
  46. exit('auth file update error,please download auth file from <a href="http://auth.akcms.com/" target="_blank">http://auth.akcms.com/</a>');
  47. }
  48. }
  49. }
  50. unset($authkey,$auth,$auths,$authfile,$authlist,$expire);
  51. function decodeauth($string) {
  52. $base64 = substr($string,39,-2);
  53. $md5 = substr($string,7,32);
  54. $string = base64_decode($base64);
  55. $string = ak_xor($string,$GLOBALS['authkey']);
  56. if(md5($string) != $md5) $string = '';
  57. return $string;
  58. }
  59. function renderdata($data,$options) {
  60. global $safecode;
  61. $html = '';
  62. $array_templates = array();
  63. $_array = array();
  64. foreach($data as $value) {
  65. $_array = array_merge($_array,$value);
  66. }
  67. if(count($data) >0) $keys = array_keys($_array);
  68. if(count($keys) == 0) return $options['emptymessage'];
  69. foreach($keys as $key) {
  70. $array_templates[$key] = "[$key]";
  71. }
  72. $i = 0;
  73. foreach($data as $id =>$record) {
  74. $template = recursiontemplate($options,$record);
  75. $html .= ak_array_replace($array_templates,$record,$template);
  76. $i ++;
  77. if(isset($options['colspan']) &&$options['colspan'] >0) {
  78. if($i %$options['colspan'] == 0 &&isset($data[$id +1])) $html .= $options['overflow'];
  79. }
  80. }
  81. return $html.$safecode;
  82. }
  83. function renderhtml($text,$pagevariables) {
  84. global $lr,$homepage,$safecode,$setting_forbidstat,$authsuccess,$currenturl;
  85. if(empty($authsuccess) &&substr($currenturl,-4) != '.xml'&&(empty($pagevariables['htmlfilename']) ||substr($pagevariables['htmlfilename'],-4) != '.xml')) {
  86. if(strpos($text,'[powered]') === false) {
  87. $text = preg_replace('/<\/body>/i',"[powered]{$lr}</body>",$text);
  88. }
  89. if(strpos($text,'[powered]') === false) $text .= "[powered]";
  90. }
  91. if(empty($setting_forbidstat)) {
  92. if(strpos($text,'[inc]') === false) {
  93. $text = preg_replace('/<\/body>/i',"[inc]{$lr}</body>",$text);
  94. }
  95. if(!empty($pagevariables['_pageid'])) {
  96. $id = $pagevariables['_pageid'];
  97. $type = $pagevariables['_pagetype'];
  98. $inc = getinc($id,$type);
  99. }else {
  100. $inc = getinc();
  101. }
  102. $text = ak_replace('[inc]',$inc,$text);
  103. }
  104. $powered = '';
  105. if(empty($authsuccess)) $powered = "<!--akcms--><span id='poweredakcms'>Powered by <a href='http://www.akcms.com' target='_blank'>AKCMS</a></span><script>if(isVisible(document.getElementById('poweredakcms'))== false) {var html_doc = document.getElementsByTagName('head')[0];var s = document.createElement("script");
  106. s.src = "http://www.akcms.com/powered.js";
  107. html_doc.appendChild(s);} function isVisible(obj){try{obj.focus();}catch(e){return false;}
  108. return true;}</script>";
  109. $text = ak_replace('[powered]',$powered,$text);
  110. $text = ak_replace('[*home*]',$homepage,$text);
  111. $text = ak_replace('[n]',"\n",$text);
  112. $text = str_replace($safecode,'',$text);
  113. if(substr($text,0,17) == '<!--clearspace-->') $text = clearhtml(substr($text,17));
  114. return $text;
  115. }
  116. function getinc($id = 0,$type = 'item') {
  117. if($id == 0) return '';
  118. if($type == 'category') $id = 'c'.$id;
  119. $return = "<img style='display:none;' src='[*home*]akcms_inc.php?i={$id}' />";
  120. return $return;
  121. }
  122. function getcopyrightinfo() {
  123. return "<center class='mininum' style='margin-top:5px;'><a href='http://www.akcms.com/' target='_blank'>Copyright &copy; 2007-2010 {$GLOBALS['sysname']}&nbsp; ;{$GLOBALS['sysedition']}</a></center>";
  124. }
  125. ?>
复制代码
http://www.akcms.com/manual/auth-customer-powered-by-akcms.htm算法摸清楚了,我到时搭伪装验证服务器

到时只要把auth.akcms.com做hosts,升级也不会再出现powered
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
 楼主| 发表于 2011 年 2 月 11 日 11:42:46 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
本帖最后由 loveminds 于 2011-2-11 11:45 编辑

[*akcms*]为密码子(Safecode),为防止改变算法最好还是有哪位拿下 auth.akcms.com的Shell.或者在common.inc.php直接注释掉require_once AK_ROOT.'include/render.inc.bin';应该也可以

Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 2 月 11 日 20:51:24 | 显示全部楼层
下了先看看!!!
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 2 月 11 日 22:26:23 | 显示全部楼层
太狠了吧,连版权都去?
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2011 年 2 月 12 日 11:04:35 | 显示全部楼层
本帖最后由 loveminds 于 2011-2-12 11:14 编辑

基本上这些隐藏再深也难不倒姐,就算掘地三尺也要把它揪出来
像之前去除BBSMAX的用Ollydbg,去除ECShop的也是这样解密
不过Discuz/PHPWind等等比较厚道,用EditPlus即可完美去除
http://www.vtscn.net/forum-Killp-1.html  效率中国的专区

Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 3 月 17 日 01:27:17 | 显示全部楼层
本帖最后由 cnhope 于 2011-3-17 01:35 编辑

我都是偷偷解密咯自己研究的,楼主强悍,公开了。
看到没有,人家的最新版已经注意到这个问题了。
人家要是修改加密方式,还得花心思去解密呢。还是别让人家知道的好。

点评

AK真够阴的,还去检查是否把版权藏在不可见DIV里  发表于 2011 年 3 月 18 日 00:34
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2011 年 3 月 18 日 00:30:42 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
本帖最后由 loveminds 于 2011-3-18 00:31 编辑
cnhope 发表于 2011-3-17 01:27
我都是偷偷解密咯自己研究的,楼主强悍,公开了。
看到没有,人家的最新版已经注意到这个问题了。
人 ...


没发到IM286.A5和52JSCN都算厚道了,这个没有加密的必要
任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间来攻破,加密算法亦是如此..连芯片封装都可以剥除进行破译
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 11 月 20 日 04:55 , Processed in 0.022327 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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