触动精灵对某东cookie读取并解密--记lua调用C语言
在Mac上构建Lua扩展模块:AES解密与Base64解码实战
今天我要分享一个实用技术:如何在Mac系统上为Lua编写和编译C扩展模块,特别是实现一个某东iOS PIN码解密功能的扩展。这对于需要在Lua环境中执行高性能计算或使用底层系统功能的开发者非常有用。
起因
某东ios环境中是对pin
,wskey
进行加密存储在plist
中的,具体可参阅我之前的文章
某电商ios版WJLoginInfo.plist和*DLoginInfo.plist文件的应用与安全机制分析
那我们常用的触动精灵
,只有aes-ecb
加解密函数,并没有aes-cbc
加解密函数,所以使用起来很不方便
想要从plist中读取加密的cookie,并还原出明文的话,更是困难重重。
所以,本文即探讨如何使用lua的配合c代码自行编译so,用来解密此cookie,方便手机中直接读取明文。
下面实操(本文仅做技术探讨,故已经抹去关键信息,仅做抛砖引玉功能)
1. 安装Lua 5.2
由于目标环境使用的是Lua 5.2,首先需要在Mac上安装相应版本:
# 下载Lua 5.2.1源码
# 下载地址:http://www.lua.org/ftp/lua-5.2.1.tar.gz# 解压并进入目录
cd lua-5.2.1# 编译和安装
sudo make macos
sudo make install
安装完成后,可以通过启动Lua解释器来验证安装:
$lua
Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
>
2. 编写C扩展模块
接下来,我们将创建一个名为mt.c
的C源文件,实现两个主要功能:
- 一个简单的Hello World函数
- 一个更复杂的IosPinDecode函数,用于解密特定格式的数据
cd src
touch mt.c
下面是核心C代码结构(出于安全考虑,部分实现细节已隐去):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lualib.h"