首页
学习
活动
专区
圈层
工具
发布

PHP 代码混淆处理思路

昨天在一个 PHP 的群里看到一个图片,图片如下: ? 看到这个图片,我觉得这应该是某个收费项目的源码,收费的项目为什么还要提供源码,这就是 PHP 的问题之一吧。...虽然我对 PHP 不怎么懂,但是我知道对于 PHP 这种源代码层面的处理想要还原问题不大(我自己的臆想,毕竟各种的处理方法可能很多,只是我不知罢了),关键在于还原一下值不值。...针对这个图片,我给出一个处理的思路,和大家进行交流。 说说我的思路 说说如果是我处理的话,我处理的思路吧。...有些格式化后的代码,和我想要的预期也不太相同,比如多行连续标签,标签后面接 goto 之类的情况,我没有去一一处理,因为我为的不是还原源码,而是验证我的思路。...知道了混淆的思路,那么反混淆的话,其实也是这种思路,可以人肉进行处理,如果量大就不合适人肉了。量大就需要写工具去自动化完成了。

2.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一种注册表沙箱的思路、实现

    该项目的需求要求我们的沙箱具有良好的安全性和兼容性。当时我们研究了SandBoxIE和360的沙箱,基本确定通过“重定向”思路来实现这款沙箱。而我主要负责研究注册表这块。...这些操作的源便是那个对象,“重定向”思路就是针对这个对象“作手脚”。说得通俗点,就是通过“狸猫换太子”的方式达到欺骗上层的目的。以后有什么操作,我们便是对这个“狸猫”去作,从而达到保护“太子”的目的。...当然以上只是最最简单的情况,而实际的思路则比这个要复杂的多。         要达到“狸猫换太子”的目的,我们必须要在外界第一次接触到“太子”之前就下手做点事。于是这就涉及到下手早晚的问题。...打个比方,一个操作要枚举Classes Root注册表键,难道我们要将成千上万子键的Classes Root拷贝到我们重定向的键下么?...修改,我会在对应的重定向注册表中修改它 删除,我优先在重定向表中删除,其次再“操作”原始注册表(不是真删除,而是找个位置做标记)         基于以上的原则和规则,就可以开始我们的开发之旅了。

    72920

    php生成唯一uid的解决思路

    uid的重复 但是生成的uid太长,足足36个字符,而且是混杂英文和数字符号的,可读性很差 而一般的uid中都是纯数值组成的 php function generateUUid($strtoupper = false) { $charid = call_user_func($strtoupper ?...都是纯数值型的 而要保证唯一性,必然要跟时间戳有关系,因此有了以下代码 为了尽可能的在同一秒中注册人数的uid不同,将时间戳进行打乱随机排序,也不失为一个好办法 但是这种缺点就是,uid长度是固定的,无法进行改变...php function generateUid() { return call_user_func('str_shuffle', time()); } //结果:4067524162 三、...实践学习php,thinkphp,Redis,vue,uni-app等技术,推荐开源电商系统likeshop,可以借鉴思路,点击阅读原文,或打开地址:

    1.9K30

    PHP代码审计实战思路浅析

    没错就是这了,不过代码太长了就不贴了,大概就是判断传来的类名中是否有Admincp或者App,如果没有就加载app/xx/xx.class.php,如果有Admincp则加载app/xx/xx.Admincp.php...(代码有点长)大概就是从post或get获取应用名,加载类跟实例化类,调用方法等 划重点了(后面会用到),这里的文件名格式是xx.app.php,类名是xxApp,其实整套程序并不止index.php这一个入口文件...,还有admincp.php、user.php等,其中加载的文件名格式跟类名都是不一样的,比如:访问index.php加载的是xx.app.php的xxApp类,访问admincp.php加载的xx.admincp.php...的xxAdmincp类 跟完入口文件后,对整个框架是怎么运行的,都有了个大概的了解,接下来可以去深入了解了 我跟啊跟,发现核心类中的iHttp类的remote方法有点意思,在iPHP/core/iHttp.class.php...我想找前台的漏洞,so,直接看哪个的文件名格式类似xx.app.php就好啦 找啊找,仅发现前台只有一处调用了该方法 ? 找到之后,跟进去看看 ?

    97430

    PHP代码审计实战思路浅析

    没错就是这了,不过代码太长了就不贴了,大概就是判断传来的类名中是否有Admincp或者App,如果没有就加载app/xx/xx.class.php,如果有Admincp则加载app/xx/xx.Admincp.php...(代码有点长)大概就是从post或get获取应用名,加载类跟实例化类,调用方法等 划重点了(后面会用到),这里的文件名格式是xx.app.php,类名是xxApp,其实整套程序并不止index.php这一个入口文件...,还有admincp.php、user.php等,其中加载的文件名格式跟类名都是不一样的,比如:访问index.php加载的是xx.app.php的xxApp类,访问admincp.php加载的xx.admincp.php...的xxAdmincp类 跟完入口文件后,对整个框架是怎么运行的,都有了个大概的了解,接下来可以去深入了解了 我跟啊跟,发现核心类中的iHttp类的remote方法有点意思,在iPHP/core/iHttp.class.php...我想找前台的漏洞,so,直接看哪个的文件名格式类似xx.app.php就好啦 找啊找,仅发现前台只有一处调用了该方法 ? 找到之后,跟进去看看 ? ?

    97320

    网页注册登陆PHP代码

    实现网页注册和登录功能的PHP代码涉及多个方面,包括数据库连接、用户输入验证、密码加密、会话管理等。下面是一个简单的示例,展示了如何创建一个基本的注册和登录系统。...注册页面 (register.php)connect_error);}// 处理用户提交的注册信息if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST...上面的示例中使用了 password_hash() 和 password_verify() 来处理密码,建议使用 PHP 的预定义密码哈希函数确保密码安全性。...错误处理: 在实际开发中,应添加更多的错误处理和验证逻辑,以保证系统的稳定性和安全性。 以上代码提供了一个基本的注册和登录示例,可作为起点进行进一步的开发和调整,以满足具体项目的需求和安全要求。

    5.7K10

    php案例:MD5加密的注册登录

    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 前言 1.php 11.php 效果 ---- 前言 学习学习怎么通过md5加密.怎么进行注册登录操作...= "INSERT INTO login(username,password,time) VALUES ('{$username}','{$password}','{$date}')";//插入数据库注册的用户名...+密码+注册日期 $query=mysqli_query($link,$sql);//运行sql echo "alert('注册成功');location.href='11.php'...php //用户输入的(表单传过来的) $username=$_POST['username'];//获取用户名 $password=md5($_POST['password']);//获取密码· //...a时数据库 //然后是指定php链接数据库的字符集 mysqli_set_charset($link,'utf8');//字符集时utf-8 //查询然后判断数据库中的用户名username+密码password

    1.9K10

    Skywalking Php注册不上问题排查

    最近公司的一个Php应用在Skywalking后台查不到数据了: ? 登录到某台服务器上发现注册不上,启动时就报错了: ?...先来整理下Skywalking php的整个流程,php扩展在系统启动时注册应用和实例,然后在每次请求拦截相关调用,将相关调用情况保存下来;注册相关代码在skywalking.c的module_init...,发现注册应用是成功的,注册实例失败了,然后在GreeterClient::serviceInstanceRegister加上相应的日志: if (status.ok()) {...再从客户端证实下,既然实例ID是写入ES的,那么用以前的ID肯定是能注册成功的,因此修改客户端代码,将UUID写死注册试下: int serviceInstanceRegister(int applicationid...on line 0 再回到这个问题,原因已经知道了,如何解决呢,有两个办法: 1、加大注册时等待时间,如等待到100秒; 2、记录最近一次注册成功的UUID并且持久化,下次启动时直接用上次的; 因为

    2.9K10

    一种注册表沙箱的思路、实现——注册表的一些基础知识

    要做注册表沙箱,就必须要了解部分注册表知识。而注册表的知识很多,本文主要讲述如何在win32系统是上识别注册表映射的。         ...在我的xp 32bit系统上,Win+R regedit之后打开注册表管理器。...如果关注过注册表的同学可能发现过一个现象:修改HKEY_CURRENT_USER下某键项值为A,搜索A,可以搜索到1~3个结果,不仅值相同,其项的父键名等都一样。这种被“同步”的功能是不是很有意思。...如果Hook过NtOpenKey的同学可能发现过一个现象,我们参数中的注册表路径往往是\Registry\User\……或者\Registry\Machine\……的形式,而没有见过其他形式的路径。...下面我用程序描述这种思路:         1 枚举所有ProfileList键下子键 BOOL CConvertRegPath::GetSIDOnWin32( ATL::CString & cstrSid

    1.3K20

    Skywalking Php注册不上问题排查

    最近公司的一个Php应用在Skywalking后台查不到数据了: image.png 登录到某台服务器上发现注册不上,启动时就报错了: image.png 先来整理下Skywalking php...的整个流程,php扩展在系统启动时注册应用和实例,然后在每次请求拦截相关调用,将相关调用情况保存下来;注册相关代码在skywalking.c的module_init中: static void module_init...,发现注册应用是成功的,注册实例失败了,然后在GreeterClient::serviceInstanceRegister加上相应的日志: if (status.ok()) {...为了证实上述逻辑无误,从ES中读取数据试下,果然实例ID都注册在ES里面: image.png 再从客户端证实下,既然实例ID是写入ES的,那么用以前的ID肯定是能注册成功的,因此修改客户端代码,...on line 0 再回到这个问题,原因已经知道了,如何解决呢,有两个办法: 1、加大注册时等待时间,如等待到100秒; 2、记录最近一次注册成功的UUID并且持久化,下次启动时直接用上次的; 因为

    2K00
    领券