阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 2056|回复: 1

方维o2o系统域名绑定破解详解

[复制链接]

4208

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
126153
QQ
发表于 2017-4-7 12:04:48 | 显示全部楼层 |阅读模式

方维o2o系统是一款电子商城类的网站系统,提供给需要快速建立电子商城的用户,因为该系统可供用户自主安装,网站通过后台的操作,可塑性比较强,若想对该系统进行二次开发,则必须让每个程序员都可以在本地安装并使用,由于方维开发团队对该系统进行了绑定唯一域名的限制,以限制系统被滥用,重复建站;此时就产生了矛盾,所以以下是个人的一下开发经验,仅供参考,不可用于非法活动,一经转载请说明出处 http://blog.csdn.net/haiqiao_2010


方维o2o系统绑定唯一域名的原理

1.      项目在安装成功后,首次运行,程序会自动生成该文件~public/runtime/~core.php,该文件的主页用途是判断当前域名是否授权

2.      文件~public/runtime/~core.php是根据项目加密文件license(位于项目根目录下,是方维经过加密后的域名许可证文件,该文件会在网站运行时进行判断是否存在,不存在则抛出异常”domain not authorized”即域名未经授权),进行解密并生成的,密钥为文件~system/utils/es_key.php;

3.      文件~public/runtime/~core.php不仅承当着域名是否授权的功能,还有项目运行的基本框架文件的加载及配置的作用,所以单纯的删除文件~public/runtime/~core.php会导致网站无法运行,此时就需要对该文件进行破解,补充网站运行所缺少的项目构架


方维o2o系统绑定唯一域名的破解方法

1.      在网站运行前,需要主动创建文件~public/runtime/~core.php避免方维系统程序对该文件自动生成

2.      文件~public/runtime/~core.php的作用是绑定指定域名,并是完善项目构架,保证项目正常运行;


文件~public/runtime/~core.php的重新编写

对文件~core.php的重写,代码如下:

  1. <?php
  2. /*
  3. * desc: init_checker()检测当前域名是否授权
  4. *return:true or false
  5. */
  6. function init_checker($str)
  7. {
  8.         If(empty($str))
  9.         {
  10.                 return false;
  11.         }
  12.         $arr = explode("|",base64_decode($str));               
  13.         $arr = unserialize($arr[1]);
  14.         foreach($arr as $k=>$v)
  15.         {
  16.                 $arr[$k] = base64_decode(base64_decode($v));
  17.         }       
  18.         $host = $_SERVER['HTTP_HOST'];
  19.         $host = explode(":",$host);
  20.         $host = $host[0];
  21.         $passed = false;
  22.         if(!in_array($host,$arr))
  23.     {
  24.             return false;
  25.     }
  26.         return true;
  27. }
  28. //调用方法,判断当前域名是否授权,若未经授权则抛出异常,结束进程
  29. $urldecode=" ";//已经被加密的编码字符串
  30.         $checker = init_checker($urldecode);
  31. if(!$checker)die("domain not authorized");

  32. //域名授权通过后,完善项目构架,保证项目正常运行
  33. //定义缓存
  34. require APP_ROOT_PATH.'system/cache/Cache.php';
  35. $cache = CacheService::getInstance();
  36. require_once APP_ROOT_PATH."system/cache/CacheFileService.php";
  37. $fcache = new CacheFileService();  //专用于保存静态数据的缓存实例
  38. $fcache->set_dir(APP_ROOT_PATH."public/runtime/data/");
  39. //end 定义缓存

  40. //定义DB
  41. require APP_ROOT_PATH.'system/db/db.php';
  42. define('DB_PREFIX', app_conf('DB_PREFIX'));
  43. if(!file_exists(APP_ROOT_PATH.'public/runtime/app/db_caches/'))
  44.         mkdir(APP_ROOT_PATH.'public/runtime/app/db_caches/',0777);
  45. $pconnect = false;
  46. $db = new mysql_db(app_conf('DB_HOST').":".app_conf('DB_PORT'), app_conf('DB_USER'),app_conf('DB_PWD'),app_conf('DB_NAME'),'utf8',$pconnect);
  47. //end 定义DB


  48. //定义模板引擎
  49. require  APP_ROOT_PATH.'system/template/template.php';
  50. if(!file_exists(APP_ROOT_PATH.'public/runtime/app/tpl_caches/'))
  51.         mkdir(APP_ROOT_PATH.'public/runtime/app/tpl_caches/',0777);       
  52. if(!file_exists(APP_ROOT_PATH.'public/runtime/app/tpl_compiled/'))
  53.         mkdir(APP_ROOT_PATH.'public/runtime/app/tpl_compiled/',0777);
  54. $tmpl = new AppTemplate;

  55. //end 定义模板引擎
  56. $_REQUEST = array_merge($_GET,$_POST);
  57. filter_request($_REQUEST);
  58. $lang = require APP_ROOT_PATH.'/app/Lang/'.app_conf("SHOP_LANG").'/lang.php';

  59. ?>
复制代码

该文件中, 变量$urldecode为已经授权并加密后的域名字符串,对授权的域名进行加密的方法domain_encryption()


  1. /*
  2. * desc:domain_encryption()对授权的域名进行加密的方法
  3. * param:$arr授权的域名或者ip的数组
  4. * return:$str 返回已经加密后的域名字符串
  5. */
  6. function domain_encryption($arr=array())
  7. {
  8.         if (count($arr>0))
  9.         {
  10.                 foreach ($arr as $k=>$v)
  11.                 {
  12.                         $domain_array[]=base64_encode(base64_encode($v));
  13.                 }
  14.         }
  15.         return base64_encode(base64_encode(serialize($domain_array))."|".serialize($domain_array));
  16. }

  17. echo domain_encryption(array("imember.cc","localhost","127.0.0.1"));
复制代码

以上是本人自己总结的经验,希望对大家有所帮助

  1. 原始地址:http://blog.csdn.net/haiqiao_2010/article/details/10898423
复制代码



捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

0

主题

2

回帖

14

积分

新手上路

Rank: 1

积分
14
发表于 2017-4-7 15:48:34 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-4-19 09:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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