今天终于搞定更改过密钥的php-screw解密问题,乐呵一下!

改进下

这样就可以解密任何加密过的PHP源码(包括更改过密钥的),解密的原理稍后具体列出,先说下如何加密

列出之前写使用php screw加密PHP的自动加密代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include "php_screw.h"
#include "my_screw.h"
 
main(int argc, char**argv)
{
    FILE    *fp;
    struct  stat    stat_buf;
    char    *datap, *newdatap;
    int datalen, newdatalen;
    int cryptkey_len = sizeof pm9screw_mycryptkey / 2;
    char    newfilename[256];
    int i;
 
    if (argc != 2) {
        fprintf(stderr, "Usage: filename. ");
        exit(0);
    }
 
    fp = fopen(argv[1], "r");
    if (fp == NULL) {
        fprintf(stderr, "File not found(%s) ", argv[1]);
        exit(0);
    }
 
    fstat(fileno(fp), &stat_buf);
    datalen = stat_buf.st_size;
    datap = (char*)malloc(datalen + PM9SCREW_LEN);
    fread(datap, datalen, 1, fp);
    fclose(fp);
 
    if (memcmp(datap, PM9SCREW, PM9SCREW_LEN) == 0) {
        fprintf(stderr, "Already Crypted(%s) ", argv[1]);
        exit(0);
    }
 
    sprintf(newfilename, "%s.screw", argv[1]);
 
    fp = fopen(newfilename, "w");
    if (fp == NULL) {
        fprintf(stderr, "Can not create file(%s) ", newfilename);
        exit(0);
    }
 
    newdatap = zencode(datap, datalen, &newdatalen);
 
    for(i=0; i<newdatalen; i++) {
        newdatap[i] = (char)pm9screw_mycryptkey[(newdatalen - i) % cryptkey_len] ^ (~(newdatap[i]));
    }
 
    fwrite(PM9SCREW, PM9SCREW_LEN, 1, fp);
    fwrite(newdatap, newdatalen, 1, fp);
    fclose(fp);
    fprintf(stderr, "Success Crypting(%s) ", argv[1]);
    free(newdatap);
    free(datap);
}

破解php-screw加密过的文件有效方法的更多相关文章

  1. linux md5 加密字符串和文件方法

    linux md5 加密字符串和文件方法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意 ...

  2. php screw加密与破解

    一.破解工具之php-screw-brute 1.项目地址 https://github.com/securifybv/php-screw-brute 2.项目介绍 此脚本可以恢复/爆破php scr ...

  3. 破解phpjm.net加密,解密程序,全部公布

    原文:破解phpjm.net加密,解密程序,全部公布 2014-05-23更新: 很久没人找我解密了,看来这加密已过时,现公布我这边最新的解密工具. 若有解不出的可联系qq: 267014855 (不 ...

  4. 无线安全之破解WPA/WPA2 加密WiFi

    准备 可以使用无线网络的Kali Linux 由于古老的WPE加密的WiFi已经几乎没有了,所以这里我就不去细说如何破解WPE加密的WiFi了.今天就来聊聊 如何来使用Kali Linux来破解Wpa ...

  5. mac系统怎么给文件夹加密?mac文件夹加密教程

    mac系统怎么给文件夹加密?目前来说,若想要对你的Mac OS下面的文件进行加密的话有三种方法可以可以做到,第一种方法,Mac自带磁盘工具:第二种方法,例如BatterZip此类Mac压缩解压工具打包 ...

  6. SpringBoot自定义classloader加密保护class文件

    背景 最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密 ...

  7. Radmin Server-3.5 完美绿色破解版(x32 x64通用) 第三版 + 单文件制作方法

    Radmin Server v3.5 汉化破解绿色版(x32 x64通用) 第三版 下载链接: https://pan.baidu.com/s/1qYVcSQo 2016年7月8日更新第三版1.修复在 ...

  8. 是否允许处理由Zend Encoder加密的PHP文件

    Zend Optimizer是由PHP核心引擎"Zend"创建者Zend技术公司所开的免费PHP优化软件.据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上!Zen ...

  9. 1秒破解 js packer 加密

    原文:1秒破解 js packer 加密 其实有点标题党了,不过大概就是这个意思. 进入正题, eval(function(p,a,c,k,e,d){e=function(c){return(c< ...

随机推荐

  1. struts2动态方法

    动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过, ...

  2. Docker-2 的创建、启动、终止、删除、迁移等

    学习博客地址:http://www.dwhd.org/20151115_140935.html

  3. JQuery思维导图

  4. Oracle创建主外键

    -创建表格语法:      create table 表名(       字段名1 字段类型(长度) 是否为空,        字段名2 字段类型       是否为空); -增加主键     alt ...

  5. 淘宝业务常用english

    ADX        ad exchange 广告交易平台 coupon     赠品 CPC         cost per click CPS         cost per sales CT ...

  6. 洛谷P2279 [HNOI2003]消防局的设立

    题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状 ...

  7. TCP/IP详解 笔记八

    UDP协议 UDP是传输层协议,提供无连接不可靠的数据传输,其优点失效率高,确定确定是无序不可靠. 报文格式 UDP头部 TCP和UDP的端口号是独立的 UDP长度是指UDP数据报的总长度 UDP的校 ...

  8. 两个大的整数的运算(java)

    import java.math.BigInteger; public class BigInt { BigInteger m1; BigInteger m2; BigInteger m3; BigI ...

  9. PL/0编译器(java version) - Err.java

    1: package compiler; 2:   3: import java.io.BufferedWriter; 4:   5: public class Err { 6:   7: publi ...

  10. 由chrome剪贴板问题研究到了js模拟鼠标键盘事件

    写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.cli ...