探索Linux世界:目录遍历
Linux是广泛使用的操作系统,从事 服务器 管理到桌面环境,甚至开发网站应用程序,Linux经历了几十年的发展,使其成为一个必不可少的操作系统,用户们在使用Linux的时候,往往必须通过熟悉Linux目录结构才能够更好的了解Linux系统。
通常,Linux系统的文件系统由根目录开始,所有文件和目录都挂载在根目录下,其中最重要的三个目录是/bin,/etc和/usr。/bin目录包含了系统使用的可执行文件,如ls,locate,top,chmod等等;/etc目录保存了系统的配置文件,虽然在某些情况下,/usr/bin底下的命令也可以运行,但是这时候/usr/bin目录只是一个放置应用程序的地方,一般来说放置在/etc下的文件都是系统本身需要;/usr目录放置了很多系统用户安装的应用程序及相关文件,如/usr/bin下有很多常用的应用程序,/usr/share下也有很多文件可以安装使用,比如各种文档,安装源等等。
除了上述这三个重要的目录,Linux系统中还有一些其他重要的目录,比如/dev目录包含了Linux所有的设备以及/mnt目录用来挂载 CD-ROM,U 盘,和其他的移动存储设备;/home目录下存放着所有登陆用户的家目录,用户在使用Linux系统的时候可以将自己的文档保存在该目录以便于更好的访问;/lib 目录下基本上存放有 Linux 系统的各种应用和程序库文件;/proc 目录下是一个特殊文件系统,用于查看和修改内存空间中的正在运行的进程;/tmp目录下一般保存一些临时文件。

虽然Linux目录结构看似复杂,但是实际上还是比较容易理解的,只要掌握了目录结构,在Linux中管理文件和应用来说就不是什么难事了。在使用Linux的开发者们要好好探索Linux系统,不断学习它,以便能更好的开发,更高效的使用Linux系统。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
什么是灰鸽子木马?和熊猫烧香病毒有什么不同?
一、灰鸽子病毒简介 灰鸽子是国内一款著名后门。 比起前辈冰河、黑洞来,灰鸽子可以说是国内后门的集大成者。 其丰富而强大的功能、灵活多变的操作、良好的隐藏性使其他后门都相形见绌。 客户端简易便捷的操作使刚入门的初学者都能充当黑客。 当使用在合法情况下时,灰鸽子是一款优秀的远程控制软件。 但如果拿它做一些非法的事,灰鸽子就成了很强大的黑客工具。 这就好比火药,用在不同的场合,给人类带来不同的影响。 对灰鸽子完整的介绍也许只有灰鸽子作者本人能够说清楚,在此我们只能进行简要介绍。 灰鸽子客户端和服务端都是采用Delphi编写。 黑客利用客户端程序配置出服务端程序。 可配置的信息主要包括上线类型(如等待连接还是主动连接)、主动连接时使用的公网IP(域名)、连接密码、使用的端口、启动项名称、服务名称,进程隐藏方式,使用的壳,代理,图标等等。 服务端对客户端连接方式有多种,使得处于各种网络环境的用户都可能中毒,包括局域网用户(通过代理上网)、公网用户和ADSL拨号用户等。 下面介绍服务端: 配置出来的服务端文件文件名为G_(这是默认的,当然也可以改变)。 然后黑客利用一切办法诱骗用户运行G_程序。 具体采用什么办法,读者可以充分发挥想象力,这里就不赘述。 G_运行后将自己拷贝到Windows目录下(98/xp下为系统盘的windows目录,2k/NT下为系统盘的Winnt目录),然后再从体内释放G_和G_Server_到windows目录下。 G_、G_和G_Server_三个文件相互配合组成了灰鸽子服务端, G_Server_负责隐藏灰鸽子。 通过截获进程的API调用隐藏灰鸽子的文件、服务的注册表项,甚至是进程中的模块名。 截获的函数主要是用来遍历文件、遍历注册表项和遍历进程模块的一些函数。 所以,有些时候用户感觉种了毒,但仔细检查却又发现不了什么异常。 有些灰鸽子会多释放出一个名为G_的文件用来记录键盘操作。 注意,G_这个名称并不固定,它是可以定制的,比如当定制服务端文件名为时,生成的文件就是、和A_。 Windows目录下的G_文件将自己注册成服务(9X系统写注册表启动项),每次开机都能自动运行,运行后启动G_和G_Server_并自动退出。 G_文件实现后门功能,与控制端客户端进行通信;G_Server_则通过拦截API调用来隐藏病毒。 因此,中毒后,我们看不到病毒文件,也看不到病毒注册的服务项。 随着灰鸽子服务端文件的设置不同,G_Server_有时候附在的进程空间中,有时候则是附在所有进程中。 灰鸽子的作者对于如何逃过杀毒软件的查杀花了很大力气。 由于一些API函数被截获,正常模式下难以遍历到灰鸽子的文件和模块,造成查杀上的困难。 要卸载灰鸽子动态库而且保证系统进程不崩溃也很麻烦,因此造成了近期灰鸽子在互联网上泛滥的局面。 二、灰鸽子的手工检测 由于灰鸽子拦截了API调用,在正常模式下服务端程序文件和它注册的服务项均被隐藏,也就是说你即使设置了“显示所有隐藏文件”也看不到它们。 此外,灰鸽子服务端的文件名也是可以自定义的,这都给手工检测带来了一定的困难。 但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。 从上面的运行原理分析可以看出,无论自定义的服务器端文件名是什么,一般都会在操作系统的安装目录下生成一个以“_”结尾的文件。 通过这一点,我们可以较为准确手工检测出灰鸽子 服务端。 由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。 进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键(或者在启动计算机时按住Ctrl键不放),在出现的启动选项菜单中,选择“Safe Mode”或“安全模式”。 1、由于灰鸽子的文件本身具有隐藏属性,因此要设置Windows显示所有文件。 打开“我的电脑”,选择菜单“工具”—》“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“ 显示所有文件和文件夹”,然后点击“确定”。 2、打开Windows的“搜索文件”,文件名称输入“_”,搜索位置选择Windows的安装目录(默认98/xp为C:\windows,2k/NT为C:\Winnt)。 3、经过搜索,我们在Windows目录(不包含子目录)下发现了一个名为Game_的文件。 4、根据灰鸽子原理分析我们知道,如果Game_是灰鸽子的文件,则在操作系统安装目录下还会有和文件。 打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的文件。 经过这几步操作我们基本就可以确定这些文件是灰鸽子 服务端了,下面就可以进行手动清除。 三、灰鸽子的手工清除 经过上面的分析,清除灰鸽子就很容易了。 清除灰鸽子仍然要在安全模式下操作,主要有两步:1、清除灰鸽子的服务;2删除灰鸽子程序文件。 注意:为防止误操作,清除前一定要做好备份。 (一)、清除灰鸽子的服务 注意清除灰鸽子的服务一定要在注册表里完成,对注册表不熟悉的网友请找熟悉的人帮忙操作,清除灰鸽子的服务一定要先备份注册表,或者到纯DOS下将注册表文件更名,然后在去注册表删除灰鸽子的服务。 因为病毒会和EXE文件进行关联 2000/XP系统: 1、打开注册表编辑器(点击“开始”-》“运行”,输入“”,确定。 ),打开 HKey_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。 2、点击菜单“编辑”-》“查找”,“查找目标”输入“”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server,每个人这个服务项名称是不同的)。 3、删除整个Game_Server项。 98/me系统: 在9X下,灰鸽子启动项只有一个,因此清除更为简单。 运行注册表编辑器,打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run项,我们立即看到名为的一项,将项删除即可。 (二)、删除灰鸽子程序文件 删除灰鸽子程序文件非常简单,只需要在安全模式下删除Windows目录下的、、Game_以及文件,然后重新启动计算机。 至此,灰鸽子VIP 2005 服务端已经被清除干净。 以上介绍的方法适用于我们看到的大部分灰鸽子木马及其变种,然而仍有极少数变种采用此种方法无法检测和清除。 同时,随着灰鸽子新版本的不断推出,作者可能会加入一些新的隐藏方法、防删除手段,手工检测和清除它的难度也会越来越大。 四、防止中灰鸽子病毒需要注意的事项 1. 给系统安装补丁程序。 通过Windows Update安装好系统补丁程序(关键更新、安全更新和Service pack),其中MS04-011、MS04-012、MS04-013、MS03-001、MS03-007、MS03-049、MS04-032等都被病毒广泛利用,是非常必要的补丁程序 2. 给系统管理员帐户设置足够复杂足够强壮的密码,最好能是10位以上,字母+数字+其它符号的组合;也可以禁用/删除一些不使用的帐户 3. 经常更新杀毒软件(病毒库),设置允许的可设置为每天定时自动更新。 安装并合理使用网络防火墙软件,网络防火墙在防病毒过程中也可以起到至关重要的作用,能有效地阻挡自来网络的攻击和病毒的入侵。 部分盗版Windows用户不能正常安装补丁,这点也比较无奈,这部分用户不妨通过使用网络防火墙来进行一定防护 4. 关闭一些不需要的服务,条件允许的可关闭没有必要的共享,也包括C$、D$等管理共享。 完全单机的用户可直接关闭Server服务。 . 下载HijackThis扫描系统 下载地址:zww3008汉化版英文版 2. 从HijackThis日志的 O23项可以发现灰鸽子自的服务项 如最近流行的: O23 - Service: SYSTEM$ (SYSTEM$Server) - unknown owner - C:\WINDOWS\ O23 - Service: Network Connections Manager (NetConMan) - Unknown owner - C:\WINDOWS\ O23 - Service: winServer - Unknown owner - C:\WINDOWS\ O23 - Service: Gray_Pigeon_Server (GrayPigeonServer) - Unknown owner - C:\WINDOWS\G_ 用HijackThis选中上面的O23项,然后选择修复该项或Fix checked 3. 用Killbox删除灰鸽子对应的木马文件 可以从这里下载Killbox直接把文件的路径复制到 Killbox里删除 通常都是下面这样的文件 服务名具体通过HijackThis判断 C:\windows\服务 C:\windows\服务 C:\windows\服务 C:\windows\服务 C:\windows\服务名_ C:\windows\服务名_ 举例说明: C:\WINDOWS\ C:\WINDOWS\ C:\WINDOWS\ C:\WINDOWS\setemy_ C:\WINDOWS\setemy_ 用Killbox删除那些木马文件,由于文件具有隐藏属性,可能无法直接看到,但Killbox能直接删除. 上面的文件不一定全部存在,如果Killbox提示文件不存在或已经删除就没关系了
Java list集合合并问题
算法是最快的数据库实现这种低效率的遍历列表这些算法在列表的列表= ;/ /得到一个来自数据库表的集合之前完成最好这样的查询直接查询清单时指定的位置
List 、Set、 Map有什么区别和联系
List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和LinkedList。 你可以将任何东西放到一个List容器中,并在需要时从中取出。 ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。 在具体应用时可以根据需要自由选择。 前面说的Iterator只能对容器进行向前遍历,而ListIterator则继承了Iterator的思想,并提供了对List进行双向遍历的方法。 Set接口也是Collection的一种扩展,而与List不同的时,在Set中的对象元素不能重复,也就是说你不能把同样的东西两次放入同一个Set容器中。 它的常用具体实现有HashSet和TreeSet类。 HashSet能快速定位一个元素,但是你放到HashSet中的对象需要实现hashCode()方法,它使用了前面说过的哈希码的算法。 而TreeSet则将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的,这就用到了集合框架提供的另外两个实用类Comparable和Comparator。 一个类是可排序的,它就应该实现Comparable接口。 有时多个类具有相同的排序算法,那就不需要在每分别重复定义相同的排序算法,只要实现Comparator接口即可。 集合框架中还有两个很实用的公用类:Collections和Arrays。 Collections提供了对一个Collection容器进行诸如排序、复制、查找和填充等一些非常有用的方法,Arrays则是对一个数组进行类似的操作。 Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。 对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。 当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。 对于值对象则没有唯一性的要求。 你可以将任意多个键都映射到一个值对象上,这不会发生任何问题(不过对你的使用却可能会造成不便,你不知道你得到的到底是那一个键所对应的值对象)。 Map有两种比较常用的实现:HashMap和TreeMap。 HashMap也用到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。 键和值的关联很简单,用pub(Object key,Object value)方法即可将一个键与一个值对象相关联。 用get(Object key)可得到与此key对象所对应的值对象都是网上拷贝的 你看看能有些帮助没?不懂问我
发表评论