关于Tiger Leap包V1.0说明
1.版权声明
tlplayer,wzplayer,mmsplayer等三大播放器所有权归Weiny Zhou所有,所有人不得擅自用于商业用途.不得反编译以上库的部分或全部。
2.联系方式:
a) QQ:514540005
b) E-mail:weinyzhou86@gmail.com
3.更多技术支持:
a) http://blog.csdn.net/weinyZhou
4.默认电台播放地址: mms://live.rgd.com.cn/1057
一.MmsplayerMmsplayer是一个小巧的mms协议播放器,仅支持mms协议,并且不支持seek操作.仅支持wma.目前已支持windows,wince,android(1.6以上),ios.
Tlplayer是主打中高端的全格式视频播放器,支持mms,http,file,rtsp,ftp,smb,rtmp,hls,dlna, 私有流协议等.渲染方式与wzplyaer一样,采用gles2渲染,但是也有却别,tlplayer采用主动渲染方式,有别于wzplayer被动式,效率更高.tlpalyer只发布了ios版本的demo,tlplayer版本主要用来测试视频,所以缓冲区设置得比较大,如果大家用来播放mms音频地址时候可能需要等待时间比较长.而且tlplayer接口更加丰富.
Tlplayer for ios 大部分机器支持720P视频软解.
目前支持windows,android(2.1以上),ios
Tiger Leap包中包含了mmsplayerV2 for windows,mmsplayerV2 for android(加了限制,只能支持到4.0)
wzplayer for android因为加入了广告,导致有些不稳定.
Tiger Leap包下载地址:http://download.csdn.net/detail/weinyzhou/5159057
相关文章
tlplayer :http://blog.csdn.net/weinyzhou/article/details/8611494
wzplayer:http://blog.csdn.net/weinyzhou/article/details/8275390
mmsplayerV2:http://blog.csdn.net/weinyzhou/article/details/7643632
联系方式:weinyzhou86@gmail.com
QQ:514540005
版权所有,禁止转载.
发布自:http://blog.csdn.net/weinyzhou/article/details/8693160
开发Django应用经常会用到virtualenv,它能够帮助你建立一个虚拟的python环境,非常好用。
但是,每次启动virtualenv都必须进入目录中执行source activate文件显得有点麻烦,可以在bash的配置文件中写个函数,免除每次启动环境都需要执行的步骤,更加便捷的使用virtualenv。
1、对于virtualenv的项目比较多的情况,可以采用如下方式:
在.bashrc中添加如下脚本:
# Python virtualenv SRC_DIRECTORY="$HOME/projects" function venv() { source$SRC_DIRECTORY/$1/bin/activate cd$SRC_DIRECTORY/$1/$1 }
每次打开bash,运行
$ venv project_name
即可activate虚拟环境,并且进入project_name项目所在的目录。
2、对于virtualenv的项目比较少的情况,可以采用如下方式:
echo 'alias PROJECT="source $HOME/programming/PROJECT/bin/activate" ' >> ~/.bash_aliases # Or if you want to also move to the directory: echo 'alias PROJECT="source ~/programming/PROJECT/bin/activate; cd ~/programming/PROJECT" '>> ~/.bash_aliases bash
其中把PROJECT替换成你的项目名称,以后每次打开bash之后,运行PROJECT即可。
一、序言
目前市面上已存在大量优秀权限管理工具,LBE就是其中的一个,不过LBE权限管理功能只有在用户设备已经ROOT后才能使用,今天我们来分析一款号称“不需要Root就能控制手机权限”的Android软件---洗大师。
用户可以通过http://www.xidashi.com/下载该应用及了解其工作原理。
软件基本信息如下:
二、实现原理分析
通过网站介绍我们可知,洗大师的工作流程是:
1、用户通过洗大师上传本地应用到洗大师云清洗服务器请求清洗应用。
2、洗大师云清洗服务器通过算法并应用进行清洗。
3、用户下载安装清洗后的应用。
我们通过编写Demo的方式来测试洗大师的工作原理及清洗的程度,看看洗大师权限管理是否能够有效遏制恶意软件的恶意行为。
发送短信是很多恶意吸费软件的必备行为,目前恶意软件发送短信的方式有以下几种:
1、通过SmsManager.sendTextMessage直接发送。
2、通过反射调用SmsManager发送短信。
3、通过DexClassLoader动态加载外部dex,完成短信发送。
我们的Demo程序将使用以上三种方式发送短信,看洗大师的清洗程度如何。
Demo界面如下:
Demo关键代码如下:
switch (v.getId()) { case R.id.button1: SmsManager ms = SmsManager.getDefault(); ms.sendTextMessage("5554", null, "test1", null, null); break; case R.id.button2: try { Class smClass = Class.forName("android.telephony.SmsManager"); Method defaultMethod = smClass.getDeclaredMethod("getDefault", new Class[]{}); Object smObject = defaultMethod.invoke(null, new Object[]{}); Method sendMethod = smClass.getMethod("sendTextMessage", new Class[]{String.class,String.class,String.class,PendingIntent.class,PendingIntent.class}); sendMethod.invoke(smObject, new Object[]{"5554",null,"test2",null,null}); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.button3: try { DexClassLoader dex = new DexClassLoader(this.getFilesDir().getPath()+"a.dex", "/sdcard/",null,getClassLoader()); Class sm = dex.loadClass("com.xidashi.test.SMSSend"); SMSSend obj = (SMSSend)sm.newInstance(); obj.sendSMS("5554","test3"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } break;
经洗大师清洗后的代码如下:
通过清洗前后的代码我们就可以清楚的看出洗大师在清洗过程就是敏感api的替换过程,
该种工作方式同DroidBox安全项目的APIMonitor(https://code.google.com/p/droidbox/wiki/APIMonitor)工作原理基本相同,都是通过替换敏感api来添加自己的逻辑。
三、结论
通过洗大师清洗前后的代码我们可以得出以下结论:
1、洗大师通过替换敏感API来完成权限的管理。
2、洗大师并不能有效遏制恶意软件。
因为洗大师只能替换直接的API调用,但是恶意程序经常用到的反射,动态加载调用,洗大师都不能有效的处理。
1楼zaiciyujianni昨天 16:04洗大师刚出来就见到了技术分析,分析的相当好