AlgoSec破解license
AlgoSec是防火墙规则审计的好工具。但是其license奇贵无比,一个防火墙的license动辄几万人民币。所以如果想试用的话,需要进行破解。
1. 查找关键文件
一开始我也不知道破解的入口在哪里。大胆猜测,在服务器上以关键字license和lic进行查找,发现了以下文件:/usr/share/fa/bin/install_lic_cli
。运行一下,结果为:
[root@localhost afa]# /usr/share/fa/bin/install_lic_cli
Error: Please provide license file.
Usage: install_lic_cli -file
看来这个就是安装license的程序,查看一下,发现已经被加密了:
[root@localhost afa]# cat /usr/share/fa/bin/install_lic_cli
#!/usr/bin/perl
use algoenc;
b畞疙}Rb纄J屒忲v甗U慥皳eEu{侮卍慸线yG销I踹r龠睭榝3圲u熓曕龢碥[臙鷔蜹窾兞”敨翡迧bx砍[x潚’f雪in纍 [W瓘〉fb蹃!$襣羒z綅澋.瘱鏦闻B唼遫w齙iik鶤1……
是否加密了我们就无计可施了呢?并不是的,这是一个perl脚本,而perl具有调试功能,从而让我们看到解密后的程序。调试时,n为单步运行,s为步入函数内部,q为退出。
随便写一个文件作为license,单步运行到第52、53行时发现:
[root@localhost afa]# perl -d /usr/share/fa/bin/install_lic_cli -file test.lic
……
main::(/usr/share/fa/bin/install_lic_cli:52):
52: my $fa_server = FwaUtil::which_script(“fa_server”);
DB<1> n
main::(/usr/share/fa/bin/install_lic_cli:53):
53: my $sCMD = “$fa_server -f LICENSE install $lic_path”;
查找了一下,服务器上确实有fa_server
这个文件。这还是一个加密了的perl脚本,单步运行一下就发现:
[root@localhost afa]# perl -d /usr/share/fa/bin/fa_server -f LICENSE install test.lic
……
FwaLic::CODE(0xa0dbab8)(/usr/share/fa/perl_lib/FwaLic.pm:78):
查看一下FwaLic.pm
,这次没有加密。代码比较多就不贴了,关键有两点:
这一行,校对
fa_usage
这个文件的MD5:%md5sig = ( fa_usage => ‘1ef898e850586874af2d37405b5561b9’,
这几行,说明
fa_usage
就是用来验证和安装license的:# check if defined a license file name (= it was sent)
# then we will send it to fa_usage with -v to check
# that given license file name is valid
if (defined $license_file_name)
{
$lic_param = “-v $license_file_name”;
}
再查看一下,发现fa_usage
是一个二进制文件,因此关键在于如何破解该文件。
2. 反编译寻找绕过方式
反编译Linux文件可以用objdump,我们把概要信息和完整的反编译结果都生成出来:
objdump -x /usr/share/fa/bin/fa_usage > fa_usage_info.txt
objdump -D /usr/share/fa/bin/fa_usage > fa_usage.txt
注意fa_usage_info.txt
中的SYMBOL TABLE
,摘选如下:
80502e9 g F .text 00000177 lic_sign_file_internal
0804fe86 g F .text 000000ce lic_load_file_to_ctx
0804b82d g F .text 000000ff allow_init_license
0804fd0e g F .text 00000178 lic_parse_file_stream
0804dcef g F .text 00000091 lic_print_error
08050460 g F .text 00000029 lic_sign_file
0804ff54 g F .text 00000294 copy_and_sign_file
0804db83 g F .text 00000095 lic_free_ctx
0804d078 g F .text 0000004d lfalic
0804de40 g F .text 000001ae lic_check
0804c48d g F .text 00000564 write_lic_ids
0804f6ca g F .text 0000022a lic_parse_key_value
0804dde4 g F .text 0000005a lic_perror
0804dac0 g F .text 000000c3 lic_alloc_ctx
0804bdf9 g F .text 00000385 check_ids_validity
0804e52a g F .text 0000020d lic_print_ctx
0804dd80 g F .text 00000064 lic_println_error
0804bc42 g F .text 00000119 install_license
0804dfee g F .text 0000011b lic_check_basic
0804f55d g F .text 0000016d parse_license_info
0804dc18 g F .text 000000d7 lic_strerror_r
0804ef16 g F .text 000001bf parse_sign
0805258c g O .bss 00000004 full_license_name
08050489 g F .text 00000029 lic_sign_file_forced
0804bb9f g F .text 000000a3 get_lic_path
0804d0c5 g F .text 000002c6 lfalic_lic
0804c17e g F .text 0000030f read_lic_ids
0804f8f4 g F .text 0000035a lic_parse_line
0804b92c g F .text 00000273 check_license_date
0804993f g F .text 0000039a print_license
0804f28e g F .text 000000c5 parse_issued
0804e109 g F .text 000000ab lic_check_mac_address
080504b2 g F .text 000000cf lic_validate_signature
这里就是fa_usage
中的各个子函数及其入口地址,带lic字样的就是和license相关的。我们在fa_usage.txt
中查看这些函数的反编译结果,就能找到破解方法。
假如你看过我之前的一篇文章X-Pack破解试用就知道,一般license文件都会带签名,我们只要能绕过验签环节,就能以最小的改动进行破解。于是,lic_validate_signature
这个函数吸引了我的注意力。我猜测这个函数就是比对license签名和根据license计算出的签名的函数。根据反编译结果,一个返回值是$0x0,另一个是$0x16。我们不妨假设$0x0表示一致,使其始终返回$0x0。如果猜错了,使其始终返回$0x16即可。
3. 破解
这部分涉及的汇编语句为:
8050562: c7 45 ec 16 00 00 00 movl $0x16,0xffffffec
8050569: eb 11 jmp 805057c
805056b: 83 45 fc 01 addl $0x1,0xfffffffc
805056f: 83 7d fc 01 cmpl $0x1,0xfffffffc
8050573: 7e d5 jle 805054a
8050575: c7 45 ec 00 00 00 00 movl $0x0,0xffffffec
805057c: 8b 45 ec mov 0xffffffec,%eax
805057f: c9 leave
8050580: c3 ret
注意8050562和8050575两行,对应的十六进制值为c7 45 ec 16 00 00 00
和c7 45 ec 00 00 00 00
。我们将fa_usage
用十六进制编辑器打开,例如Notepad++的插件HexEditor。然后查找c7 45 ec 16 00 00 00
,通过上下文确认无误,将其改为c7 45 ec 00 00 00 00
,保存即可。
用破解后的fa_usage
替换原文件,用破解后fa_usage
的新MD5值替换FwaLic.pm
中的旧MD5值。然后再准备一个狂拽酷炫吊炸天的license文件:
LICENSE_VER=7.0
EXP_DATE=15-sep-2017
HOSTID=E505250101F7
ISSUER=root
ISSUED=01-May-2017
LICENSE_INFO1=PerFW;3;mvpboss1004;88888888
LICENSE_INFO2=Core;Optimization;Risk
SIGN=1234567890abcdef
这就是一个licenseID为88888888、可用于3个防火墙、于2017年9月1日到期、授予mvpboss1004的license。注意这里HOSTID要改为服务器的MAC地址,ISSUED不要离当前日期超过5天。
5. 升级注意事项
显然,升级后需要重新破解。除此之外还需要以下操作:
- 破解完后要重启服务,或直接重启系统;
- 要重新导入license,其中licenseID和SIGN要改的和原来不一样,ISSUED要改成当天时间
AlgoSec破解license相关推荐
- CodeWarrior V5.1破解license+教程
解除CodeWarrior V5.1 特别版 编译代码32K限制,仅供学习使用:如若商用,请使用付费版本,谢谢! CodeWarrior for S12(X) V5.1是用来编写飞思卡尔系列单片机程序 ...
- Cadence License破解失败解决办法
问题1:Unable to restart Cadence License Server with the new license file 这个问题是在运行License Server Config ...
- ArcGIS License Manager 相关总结
LicensenManager10.2启动失败解决方法 今天安装ArcGIS 10.2 时,刚按照百度经验装完ArcGIS LicenseManager时,就出现了众多网友都出现的问题,License ...
- IAR EW8051-8.10.4安装及破解方法
第一步:获取破解license 1: 点击桌面左下角"開始"button,找到cmd.exe,右键创建cmd.exe 快捷方式到桌面: ----假设是windows7 .请右键点击 ...
- 开发环境搭建:Python(x,y) + Wing IDE4.0.3以及破解
http://blog.sina.com.cn/s/blog_905ed10101019uqk.html Python语言是一门完全面向对象的编程语言,在很多领域有成功的应用,为Google公司三大编 ...
- 渗透测试之破解详细演示
简介 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西. 请注意: 本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端 ...
- 软件License认证设计思路
需求 软件可以创建并验证license License基于硬件特征进行绑定 软件和License都要防止用户随意拷贝 License可以是永久性的或者临时性的 License要进行加密和解密 Lice ...
- 遇见BUG(4)不要默认电平标准!
纠错是一个很考验耐心与运气的事情,有时候真的让你怀疑人生. 最近,我再做一个SRIO以及Auraro 通信的事情,使用了Xilinx提供的例程,可是就是这个看似权威的例程,出现了一些让我感觉" ...
- IDEA配置 及 快捷键
出处: https://www.cnblogs.com/hero123/p/10120552.html 快捷键: 格式化代码 Ctrl+alt+L 后退Ctrl+alt+ <- 格式化代码快捷键 ...
- loadrunner11 录制手机
环境准备 笔记本一台,或者安装有无线网卡的台式机 第一步:安装LR11录制手机脚本补丁包,qfelr11patch4.msp.安装完成后需要重新破解license. 如果在新建脚本页面,看到Mobil ...
最新文章
- torch量化的流程
- (C++)1029 旧键盘
- java集合的加减_在JAVA中,对List集合的加减操作
- java kafka 设置分区_Java kafka如何实现自定义分区类和拦截器
- vue状态管理存取数据_vue状态管理vuex从浅入深详细讲解
- android 实现打开相册
- 牛客网 【每日一题】5月13日 加分二叉树
- 前端学习(1494):表格案例--axios-搜索功能
- 桌面快捷方式计算机打不开,桌面快捷方式打不开,详细教您桌面快捷方式打不开怎么解决...
- 884.两句话中的不常见单词
- 字节跳动的产品经理是怎么工作的?
- ctypes调用海康威视人脸抓拍机并将抓拍的人脸上传到指定地址
- 中国书法名词解释大全
- android sdk官网帮助文档
- PPT2016制作一个封面页实例教程
- 计算机视觉算法岗 面试经验 (转载)
- fetion飞信登录异常,错误码10033201、10033202
- ETL 部署和简单的例子
- h1283命令行下刷机法
- WiFi共享精灵与路由器