首页
关于
留言
友情链接
推荐
粽子SHOP
Search
1
粽子SHOP即时到账 微信插件(MyWechat)
4,862 阅读
2
PS人像美颜插件 DR5.0增强版 一键人像磨皮/美白/高低频
4,086 阅读
3
彩虹聚合登录API源码/上元二开 QQ互联分发
2,927 阅读
4
Windows Navicat Premium16.3.2 免安装 绿色汉化版
2,778 阅读
5
LayuiTable导出所有数据,无需修改后端代码
2,440 阅读
程序源码
PHP源码
HTML源码
精品程序
易语言源码
活动资讯
技术分享
实用代码
实用工具
学习笔记
PHP笔记
前端笔记
uniapp
Python
逆向
docker
thinkPHP
登录
Search
标签搜索
python
typescript
swoole
docker
thinkphp6
php
composer
composer命令
tp6
tp中间件
vue
node.js
粽子shop
thinkSwoole
timi
王者荣耀
王者荣耀ios扫码
layer
layer图片预览
layer图片
烂掉的ay
累计撰写
93
篇文章
累计收到
947
条评论
首页
栏目
程序源码
PHP源码
HTML源码
精品程序
易语言源码
活动资讯
技术分享
实用代码
实用工具
学习笔记
PHP笔记
前端笔记
uniapp
Python
逆向
docker
thinkPHP
页面
关于
留言
友情链接
推荐
粽子SHOP
搜索到
1
篇与
Charles
的结果
2023-12-02
Window/Mac 抓包工具 Charles 正版激活/使用教程
下载安装官方下载地址:https://www.charlesproxy.com/download/当前最新的还是4.X版本的。激活默认情况下,30天内不激活也是可以正常使用的。激活码有以下几种方式获取:golang代码,也可以找个在线运行的网站执行( https://www.bejson.com/runcode/golang/ )把里面的0en换成你自己的名字package main import ( "bytes" "encoding/binary" "fmt" "math/rand" "time" ) const ( rounds = 12 roundKeys = 2 * (rounds + 1) ) func main() { rand.Seed(time.Now().UnixNano()) name := "0en" fmt.Println("name:", name, " key:", crack(name)) } func crack(text string) string { name := []byte(text) length := len(name) + 4 padded := ((-length) & (8 - 1)) + length bs := make([]byte, 4) binary.BigEndian.PutUint32(bs, uint32(len(name))) buff := bytes.Buffer{} buff.Write(bs) buff.Write(name) var ckName int64 = 0x7a21c951691cd470 var ckKey int64 = -5408575981733630035 ck := newCkCipher(ckName) outBuff := bytes.Buffer{} for i := 0; i < padded; i += 8 { bf := buff.Bytes()[i : i+8] buf := bytes.NewBuffer(bf) var nowVar int64 if err := binary.Read(buf, binary.BigEndian, &nowVar); err != nil { panic(err) } dd := ck.encrypt(nowVar) outBuff.WriteByte(byte(dd >> 56)) outBuff.WriteByte(byte(dd >> 48)) outBuff.WriteByte(byte(dd >> 40)) outBuff.WriteByte(byte(dd >> 32)) outBuff.WriteByte(byte(dd >> 24)) outBuff.WriteByte(byte(dd >> 16)) outBuff.WriteByte(byte(dd >> 8)) outBuff.WriteByte(byte(dd)) } var n int32 for _, b := range outBuff.Bytes() { n = rotateLeft(n^int32(int8(b)), 0x3) } prefix:= n ^ 0x54882f8a suffix:=rand.Int31() in := int64(prefix) << 32 s := int64(suffix) switch suffix >> 16 { case 0x0401: case 0x0402: case 0x0403: in |= s break default: in |= 0x01000000 | (s & 0xffffff) break } out := newCkCipher(ckKey).decrypt(in) var n2 int64 for i := 56; i >= 0; i -= 8 { n2 ^= int64((uint64(in) >> i) & 0xff) } vv := int32(n2 & 0xff) if vv < 0 { vv = -vv } return fmt.Sprintf("%02x%016x", vv, uint64(out)) } type ckCipher struct { rk [roundKeys]int32 } func newCkCipher(ckKey int64) ckCipher { ck := ckCipher{} var ld [2]int32 ld[0] = int32(ckKey) ld[1] = int32(uint64(ckKey) >> 32) ck.rk[0] = -1209970333 for i := 1; i < roundKeys; i++ { ck.rk[i] = ck.rk[i-1] + -1640531527 } var a, b int32 var i, j int for k := 0; k < 3*roundKeys; k++ { ck.rk[i] = rotateLeft(ck.rk[i]+(a+b), 3) a = ck.rk[i] ld[j] = rotateLeft(ld[j]+(a+b), a+b) b = ld[j] i = (i + 1) % roundKeys j = (j + 1) % 2 } return ck } func (ck ckCipher) encrypt(in int64) int64 { a := int32(in) + ck.rk[0] b := int32(uint64(in)>>32) + ck.rk[1] for r := 1; r <= rounds; r++ { a = rotateLeft(a^b, b) + ck.rk[2*r] b = rotateLeft(b^a, a) + ck.rk[2*r+1] } return pkLong(a, b) } func (ck ckCipher) decrypt(in int64) int64 { a := int32(in) b := int32(uint64(in) >> 32) for i := rounds; i > 0; i-- { b = rotateRight(b-ck.rk[2*i+1], a) ^ a a = rotateRight(a-ck.rk[2*i], b) ^ b } b -= ck.rk[1] a -= ck.rk[0] return pkLong(a, b) } func rotateLeft(x int32, y int32) int32 { return int32(x<<(y&(32-1))) | int32(uint32(x)>>(32-(y&(32-1)))) } func rotateRight(x int32, y int32) int32 { return int32(uint32(x)>>(y&(32-1))) | int32(x<<(32-(y&(32-1)))) } func pkLong(a int32, b int32) int64 { return (int64(a) & 0xffffffff) | (int64(b) << 32) }注册码 生成成功然后打开软件,help/register 注册就ok了。安装根证书:https出现unknown处理配置SSL代理:首先在charles的 Proxy选项选择SSL Proxy Settings:其他常见问题:https://blog.csdn.net/m0_58095675/article/details/126456000https://blog.csdn.net/gongzi2311/article/details/135755715
2023年12月02日
93 阅读
0 评论
0 点赞