① Linux中unzip解压时中文乱码如何解决
更改源码解决乱码
调试发现问题出现在MultiByteToWideChar方法里,
如 MultiByteToWideChar(CP_ACP,0,fn,-1,tfn,MAX_PATH); 到这里时fn中的name属性值还是正常的,在这个方法内部执行完tfn就乱了。
解决方法:
打开unzip.cpp源文件,找到函数
ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
{ // ......
// ......} 12345
这个函数里有
#ifdef UNICODE
MultiByteToWideChar(CP_UTF8,0,fn,-1,tfn,MAX_PATH);#else
strcpy(tfn,fn);#endif12345
把 CP_UTF8 改为CP_ACP, ( CP_ACP 指示要使用当前设置的 API 默认 Windows ANSI 代码页)
重新编译后
这样就解决了解压中文文件名称乱码的问题
编译时解决源码问题(无需更改源码)
上面的情况,我们我观察到unzip源代码这段开始的地方有判断
#ifndef Ext_ASCII_TO_Native 1
这样问题似乎更简单了,不用改源代码,只需在make时定义 Ext_ASCII_TO_Native 即可,这样 Ext_ASCII_TO_Native 实际为一个空的宏,不进行任何转换操作。
比如,使用下面的方法编译
make -DExt_ASCII_TO_Native 1
或者在bash执行下面两行
export LOCAL_UNZIP=-DExt_ASCII_TO_Native
make12
unzip解压缩含中文文件名zip包是出现乱码的问题解决!
如果您的系统已经安装了unzip
方法一 unzip行命令解压,指定字符集
通过unzip行命令解压,指定字符集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)1
方法二 在环境变量中,指定unzip参数
在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入2行
UNZIP=”-O CP936″
ZIPINFO=”-O CP936″12
方法三 利用pyton来处理
复制以下内容(python)保存未myuzip.py文件脚本,并修改运行权限为可运行(chmod +x uzip)
#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprint "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist():
utf8name=name.decode('gbk') print "Extracting " + utf8name
pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name) if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()
这样以后我们解压缩时只需要运行此文件即可
./myuzip.py xxxx.zip
② 怎么用DOS命令攻击
DoS具有代表性的攻击手段包括PingofDeathdos攻击快闪族、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等。
具体DoS攻击方法很多,但大多都可以分为以下几类:
利用软件实现的缺陷
OOB攻击(常用工具winnuke),teardrop攻击(常用工具teardrop.cboink.cbonk.c),lan
软件主流程图
d攻击,IGMP碎片包攻击,jolt攻击,Cisco2600路由器IOSversion12.0(10)远程拒绝服务攻击等等,这些攻击都是利用了被攻击软件的实现上的缺陷完成DoS攻击的。通常这些攻击工具向被攻击系统发送特定类型的一个或多个报文,这些攻击通常都是致命的,一般都是一击致死,而且很多攻击是可以伪造源地址的,所以即使通过IDS或者别的sniffer软件记录到攻击报文也不能找到谁发动的攻击,而且此类型的攻击多是特定类型的几个报文,非常短暂的少量的报文,如果伪造源IP地址的话,使追查工作几乎是不可能。
那么如何造成这些攻击的?通常是软件开发过程中对某种特定类型的报文、或请求没有处理,导致软件遇到这种类型的报文运行出现异常,导致软件崩溃甚至系统崩溃。下面结合几个具体实例解释一下这种攻击的成因。
1997年5月7号有人发布了一个winnuke.c。首先建立一条到Win95/NT主机的TCP连接,然后发送TCP紧急数据,导致对端系统崩溃。139/TCP是Win95/NT系统最常见的侦听端口,所以winnuke.c使用了该端口。之所以称呼这种攻击为OOB攻击,因为MSG_OOB标志,实际应该是TCP紧急数据攻击。
原始teardrop.c只构造了两种碎片包,每次同时发送这两种UDP碎片包。如果指定发送次数,将完全重复先前所发送出去的两种碎片包。它可以伪造源ip并跨越路由器进行远程攻击,影响的系统包括Linux/WinNT/Win95。使用的方法是:
teardrop源ip目的ip[-s源端口][-d目的端口][-n次数]
比较新的一个DoS攻击是Windows的SMB实现中的DoS攻击,2002年8月发布,只要允许匿名连接的windows系统就可以进行远程攻击,强烈建议Windows用户打相应的补丁。它的方法就是先和目标系统建立一个连接,然后发送一个特定的请求,目标系统就会兰屏。发布的测试工具SMBdie.exe是图形界面工具,输入目标地址NETBIOS名称即可。
从上面的讨论可以看出,这种攻击行为威力很大,而且难于侦察。但真实情况下它的危害仅现于漏洞发布后的不长的时间段内,相关厂商会很快发布补丁修补这种漏洞。所以上面提到的几种较老的攻击在现实的环境中,通常是无效的。不过最新的攻击方法还是让我们不寒而栗,我们可以做的就是关注安全漏洞的发布,及时打上新的补丁。如果你想偷懒的话,购买专业安全服务公司的相关服务应该是个更好的选择。
利用协议的漏洞
如果说上面那种漏洞危害的时间不是很长,那么这种攻击的生存能力却非常强。为了能够在网络上进行互通、互联,所有的软件实现都必须遵循既有的协议,而如果这种协议存在漏洞的话,所有遵循此协议的软件都会受到影响。
最经典的攻击是synflood攻击,它利用TCP/IP协议的漏洞完成攻击。通常一次TCP连接的建立包括3个步骤,客户端发送SYN包给服务器端,服务器分配一定的资源给这里连接并返回SYN/ACK包,并等待连接建立的最后的ACK包,最后客户端发送ACK报文,这样两者之间的连接建立起来,并可以通过连接传送数据了。而攻击的过程就是疯狂发送SYN报文,而不返回ACK报文,服务器占用过多资源,而导致系统资源占用过多,没有能力响应别的操作,或者不能响应正常的网络请求。
这个攻击是经典的以小搏大的攻击,自己使用少量资源占用对方大量资源。一台P4的Linux系统大约能发到30-40M的64字节的synflood报文,而一台普通的服务器20M的流量就基本没有任何响应了(包括鼠标、键盘)。而且synflood不仅可以远程进行,而且可以伪造源IP地址,给追查造成很大困难,要查找必须所有骨干网络运营商,一级一级路由器的向上查找。
对于伪造源IP的synflood攻击,除非攻击者和被攻击的系统之间所有的路由器的管理者都配合查找,否则很难追查。当前一些防火墙产品声称有抗DoS的能力,但通常他们能力有限,包括国外的硬件防火墙大多100M防火墙的抗synflood的能力只有20-30Mbps(64字节syn包),这里涉及到它们对小报文的转发能力,再大的流量甚至能把防火墙打死机。有些安全厂商认识到DoS攻击的危害,开始研发专用的抗拒绝服务产品。
由于TCP/IP协议相信报文的源地址,另一种攻击方式是反射拒绝服务攻击,另外可以利用还有广播地址,和组播协议辅助反射拒绝服务攻击效果更好。不过大多数路由器都禁止广播地址和组播协议的地址。
另一类攻击方式是使用大量符合协议的正常服务请求,由于每个请求耗费很大系统资源,导致正常服务请求不能成功。如HTTP协议是无状态协议,攻击者构造大量搜索请求,这些请求耗费大量服务器资源,导致DoS。这种方式攻击比较好处理,由于是正常请求,暴露了正常的源IP地址,禁止这些IP就可以了。
进行资源比拼
这种攻击方式属于无赖打法,我凭借着手中的资源丰富,发送大量的垃圾数据侵占完你的资源,导致DoS。比如,ICMPflood,mstreamflood,Connectionflood。为了获得比目标系统更多资源,通常攻击者会发动DDoS(DistributedDos分布式拒绝服务)攻击者控制多个攻击傀儡发动攻击,这样才能产生预期的效果。前两类攻击是可以伪造IP地址的,追查也是非常困难,第3种攻击由于需要建立连接,可能会暴露攻击傀儡的IP地址,通过防火墙禁止这些IP就可以了。对于难于追查,禁止的攻击行为,我们只能期望专用的抗拒绝服务产品了。
攻击程序
smurf、trinoo、tfn、tfn2k以及stacheldraht是比较常见的DoS攻击程序,本文将对它们的原理以及抵御措施进行论述,以帮助管理员有效地抵御DoS风暴攻击,维护站点安全。
③ 在单片机中,RET和RETI分别是什么返回指令
在单片机中返回指令有RET、RETI或者跳转指令SJMP或LJMP。
RET是一般子程序返回指令,执行该指令,会自动弹出被保护的地址给PC指针。
RETI是中断服务程序返回指令,执行该指令,除了弹出被保护的地址指针给PC外,还会恢复影响中断的一些标志位,比如定时器中断的TFn标志。
④ TFN是什么药
1、TFN不是药,而是一个多义词;
2、TFN簇群式DOS攻击一组进行各种DDoS攻击的计算机程序,如ICMP泛洪攻击、SYN泛洪攻击、UDP泛洪攻击和smurf攻击;
3、TFN被认为是当今功能最强性能最好的DoS攻击工具,几乎不可能被察觉。
(4)tfn命令扩展阅读:
TFN使用了分布式客户服务器功能,加密技术及其它类的功能,它能被用于控制任意数量的远程机器,以产生随机匿名的拒绝服务攻击和远程访问。
客户端用于联系服务器端,可以改变服务器端的配置,衍生一个shell,控制攻击许多其它的机器。你可以tfn-ffile从一个主机名文件读取主机名,也可以使用tfn-hhostname联系一个服务器端。缺省的命令是通过杀死所有的子线程停止攻击。
参考资料来源:网络-tfn