Linux下支付宝安全控件安装程序运行原理

想登录个网银,结果在神样兼容性前瞬间阵亡。
想起两年多前支付宝就推出了安全控件,手滑点开看看究竟。
安全控件自身的原理当然不明;)
不过 安装程序写的也蛮有趣,代码不多逻辑简单,正好当个 经典案例

从官网上下载的 安全控件是个tar.gz的压缩包,里面很简单,只有一个shell文件即aliedit.sh。
该文件的主要内容见下:
 72 main()
 73 {
 74     SetStrings
 75     Mkdir
 76     ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' "$0"`
 77     tail -n+$ARCHIVE "$0" | tar xzvm -C $TMP_DIR > /dev/null 2>&1 3>&1
 78     if [ $? -ne 0 ]
 79     then
 80         echo $PACKAGE_BAD
 81         Quit
 82     fi
 83     CUR_DIR=`pwd`
 84     cd $TMP_DIR
 85     ./install.sh
 86     #cd "$CUR_DIR"
 87     rm -rf $TMP_DIR
 88     exit 0
 89 }
<snip>
 94 __ARCHIVE_BELOW__
<snip>
从94行以下都是二进制内容。
aliedit.sh会将该部分二进制内容当作另一个tgz包解压开来,获得install.sh和安全控件本尊。
$ awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' aliedit.sh 
95
$ tail -n+95 aliedit.sh | tar xzvm 
install.sh
lib/
lib/libaliedit32.so
lib/libaliedit64.so
README
然后调用install.sh检查系统环境,拷贝合适的安全控件到firefox的控件目录。

91 elif [ $sysinfo = 'x86' ] 92 then 93 ALIPAY_BIN=libaliedit32.so 94 elif [ $sysinfo = 'amd64' ] 95 then 96 ALIPAY_BIN=libaliedit64.so 97 fi

<snip> 120 FF_PLUGIN_DIR=$HOME/.mozilla/plugins <snip> 152 install -m 0755 $LIB_DIR/$ALIPAY_BIN $FF_PLUGIN_DIR

当然,对于opera来说,配置控件检索目录包含firefox便可支持,而chromium据说默认便会查找firefox的控件目录。

最后总结下该安装程序大概的结构如下:
Linux下支付宝安全控件安装程序运行原理 - 木天 - 木天的博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值