If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: icode1024.com/article/465.html - Windows__-.

site address: icode1024.com/article/465.html

site title: Windows__-

Our opinion (on Monday 13 July 2026 12:35:55 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:


page from cache: 3 hours ago
Meta tags:
keywords=Windows,黑客,编程,基础,pdf,下载;
description=上面的题目带有“黑客”两个字,请大家别误会了,其实没有多少是讲黑客的,这完全是一篇菜鸟级的编程杂谈,如果您已是高手,就不必在此浪费时间了 。前几天在网上看了“病毒”兄写的《WIN下编程须知》一文,觉得在编程方面要写出一篇适合初学者们看的入门级文章的确很重要,可惜病毒兄只...;
author=;

Headings (most frequently used words):

windows黑客编程基础, 了解windows, 内部机制, 编程语言以及工具的选择, 谈谈促进编程能力提高的两个途径, socket, 编程与网络通信基础, 相关推荐, 网友评论,

Text of the page (most frequently used words):
pdf (20), registry (11), include (10), #windows (9), builder (8), void (8), tform1 (8), 2024 (7), wsadata (7), wversionrequested (6), return (6), hcurwindow (6), __fastcall (5), wclassname (5), 2025 (4), java (4), char (4), name (4), hostinfo (4), sizeof (4), null (4), tobject (4), sender (4), application (4), false (4), struct (3), wsacleanup (3), int (3), main (3), pragma (3), gethostipaddress (3), thishost (3), myname (3), ptr (3), err (3), socket (3), winsock (3), wndhandle (3), findwindow (3), 台湾是中国的一部分 (3), 世界上只有一个中国 (3), software (3), closekey (3), 技术文章 (3), 爱码网 (2), com (2), sql (2), 第3版 (2), 第2版 (2), python (2), 源码下载 (2), string (2), checkip (2), word (2), 255 (2), makeword (2), wsastartup (2), gethostname (2), gethostbyname (2), inet_ntoa (2), in_addr (2), h_addr_list (2), printf (2), 输出ip地址 (2), 卸载winsock库 (2), 实现方法 (2), 就可以了 (2), owner (2), wversion (2), formcreate (2), new (2), 新建一个工程 (2), api (2), project (2), settings (2), alt (2), 中国黑客 (2), 发送消息 (2), 一个简单木马程序的编写与伪装策略 (2), hwnd (2), api大全 (2), tregistry (2), try (2), microsoft (2), internet (2), explorer (2), writestring (2), window (2), title (2), 程序员 (2), 写程序 (2), 读程序 (2), str (2), getwindow (2), getclassname (2), 得到类名 (2), enablewindow (2), 使窗口失效 (2), 操作系统 (2), copyright, 2023, 版权所有, 免责声明, 网站所有作品均收集于网络, 仅供读者学习交流使用, 如有侵权, 请发送邮件到876027276, 告知管理员, 我们将及时处理, 皖公网安备34152402000268, 皖icp备2023004554号, 侧栏广告位, redis, css, 设计模式, spring, mysql, 中文版, 权威指南, web, javascript, 131, 540, 577, 热门标签, 一本小小的mybatis源码分析书, 基于oracle的sql优化, 数据库原理, 应用与实践, server, 漫画数据库, mysql技术内幕, javascript面向对象编程指南, mybatis从入门到精通, 高性能mysql, java并发编程之美, java并发编程实战, 随机文章, java8中stream流用法, 企业应用架构模式, kafka权威指南, 趣学python编程中文版, java从入门到精通, jquery实现图片局部放大, bootstrap, calendar日历表控件, springboot, vue学生信息管理系统, javaweb毕业设计, neo4j权威指南, 数据库系统概论第5版, 热门文章, 提交评论, 取消回复, 网友评论, 基于python语言的接口自动化测试学习过程, java基础知识总结, mysql数据库与jdbc编程, longchat4j, tools自然语言的魅力, wifi, cmcc, 手机登录, 中国移动路由器, 美国网件路由器的登录地址以及默认用户名和密码, 订单引擎, quartz集群怎么防止并发, docker安装tomcat, c语言实现注册登录算法, 相关推荐, mysql必知必会, spring源码解析, 本文链接, https, icode1024, article, 465, html, 愿你成为一个出色的舵手, 用代码去驽驾电脑的世界, 用编程去填充七彩的人生, 两者工具各有秋千, 至于选择哪种由你决定, 最好是两者相得益彰, 临渊羡鱼, 不如退而结网, 通往电脑的路不止一条, 然而对于编程, 道路却只有一条, 动手去做, 亲身实践, 程序在, 下编译通过, 通过比较你会发现他们是大同小异的, 对于同一程序, begin, from, 包含需要使用的头文件, stdafx, stdio, stdlib, 定义checkip, 用于获取本机ip地址, word类型变量, 用于存放winsock版本的正确值sadata, 定义用于存放获得的主机名的变量, cstring, 定义ip地址变量, phostent, 调用makeword, 获得winsock版本的正确值, 用于下面的加载winsock库, 现在是加载winsock库, 如果wsastartup, 函数返回值为0, 说明加载成功, 程序可以继续, 往下执行, 如果成功地将本地主机名存放入由name参数指定的缓冲区中, 这是获取主机名, 如果获得主机名成功的话, 将返回一个指针, 指向hostinfo, 为phostent型的变量, 下面即将用到这个结构体, lpcstr, 调用inet_ntoa, 将hostinfo结构变量中的h_addr_list转化为标准的点分表示的ip, 如192, 168, 并释放所有资源, argc, argv, 主函数, 程序的入口, 调用checkip, 函数获得, 由于main, 定义为int型, 所以应带回一个int型的数值, 下面接着来看看在c, 下如何实现, 其实两者的思想是一样的, 只是在c, builder下实现, 的界面友好点而已, 打开c, 默认情况下已经新建一个工程, 保存这个工程文件, 构造如下面图4所示的界面, 在相应之处添入下面的代码即可程序代码, 包含头文件, hdrstop, unit1, package, smart_init, resource, dfm, form1, tcomponent, tform, 获得本机ip地址, hostent, lobyte, hibyte, socket_error, memset, s_addr, unsigned, long, edit1, text, ansistring, button1click, close, 添加一个, 点击即关闭程序, 加载好文件之后, 就可以在checkip, cpp文件里加入以下代码了, 由于本文的主题是, 黑客编程基础, 而黑客是互连网上, 来无影, 去无踪, 的黑衣人, 如冰河, 网络神偷等黑客程序都是基于互连网的, 谈黑客编程离开网络编程就会大失其味, 下面接着谈谈网络编程, 大凡基于网络应用的程序都离不开socket, 为套接字之意, 是作为计算机与计算机之间通信的接口, 有关socket的概念在第6期, 黑客防线, 编程的基础和基本过程, 一文中有详细的描述, 请大家参考, 不在此多叙, 需要指出的是, 是访问众多的基层网络协议的一种接口, 在每个win32平台上, 它都以不同的形式存在着, 是网络编程的接口, 不是协议, 这是容易弄错的地方, 现在来谈谈winsock, 编程的过程, 大凡在win32平台上的winsock编程都要经过下列的基本步骤, 定义变量, 获得winsock版本, 加载winsock库, 初始化, 创建套接字, 设置套接字选项, 关闭套接字, 释放所有资源, 下面以一道极其简单的程序来说明如何进行winsock编程, 程序四, 编一个程序来获取本地机器的ip地址, 使用winsock提供的api函数是最基本的网络技术, 为了给初学者看个清楚, 笔者打算在visual, builder下各写一个, 便于大家区分这两种不同的编程工具的特性, 对于本程序来说, 他们都差不多, 而对于某些通信程序, 他们实现起来就相差很远了, 但本质是差不多的, 先来看visual, 下的源程序, 实现步骤, 打开visual, file, 菜单中的, win, console, 意思是说生成的是win32的控制台程序, 初学者要注意一点, 只要程序中用到了, 都要在工程设置的link, 中增加, ws2_32, lib, 不然程序将不能通过编译, 方法是, 在弹出的, 对话框右侧选, link, projectoptions, 下方的编辑框中增加ws2_32, lib文件, 编程与网络通信基础, 环境下, 定时触发器即timer控件, 有时候我们希望程序隔一段时间重复执行相同的动作, 比如对qq密码截获的时候, 就要隔一段间隔寻找一次qq登录窗口, builder中, 只要将执行这些动作的代码放到一个timer中去就ok了, 病毒运行几分钟后就自动创建一个新的线程, 用于寻找oicq的, 在10分钟内一直在找, 一旦找到就将, 等带有政治色彩的言论发送给受害者qq上的好友, 10分钟后自动结束该线程, 我想在查找, 窗口的10分钟内就运用了定时器, 该病毒是用汇编开发的, 可是在c, builder中是如何运用的呢, 其实控件的出现使得编程变得很简单, 添加一个timer控件, 设置几下控件的属性, 双击timer控件, 将代码放到里面去就行了, 程序执行的时候, 相隔指定的时间就重复执行里面的代码了, 实际上笔者在上一期的, 程序一, 中寻找qq登录窗口时, 就运用了定时器, 有关编程技巧的介绍到此为止, 请读者参考另类书籍, 掌握更多的黑客编程技巧, 编写出受欢迎的黑客程序来, 使用定时触发器, 调用registerserviceprocess, 函数将程序注册成为一个服务模式程序, 让它运行在较高的优先级下, 就不会出现在程序列表中, 对win9x有效, winnt, 2000, xp下无效, 具体的代码请参考笔者的, 不在此重叙对于, 要先定义捕获windows消息wm_hotkey的钩子函数, 然后向windows, 加入一个全局原子, 并保留其句柄, 最后向windows登记热键, 这个可以调用api函数registerhotkey来实现, setwindowlong, handle, gwl_exstyle, ws_ex_toolwindow, 要不显示窗体, 我们可以编辑winmain函数, 设置showmainform值为false就可以隐藏程序的窗体了, 参考代码, showmainform, 可以利用技巧1所介绍的方法修改注册表, 键值如下, hkey_local_machinesoftwaremicrosoftwindowscurrentversionrun, 使用的是writestring, 这是冰河等多种旧木马惯用的启动手段之一, 当然还有文件关联, 注入dll等方法, 要使程序图标不显示在任务栏上, 也很简单, 调用api函数setwindowlong, 可以让程序运行后不出现在任务栏里, 不过要放在窗体的oncreate, 代码如下, 通过热键可以调出隐藏的窗体, 不显示在按ctrl, del, 调出的任务列表中, 程序图标不显示在任务栏上, 系统每次启动都自动运行程序一次, 正常运行时, 不显示程序的窗体, 这是一个很基本的技巧, 如果你是一个木马程序的爱好者, 当你阅读众多的木马源程序的时候, 就会发现100, 的木马程序都很注意自身的后台监控本领, 也就是隐身技术, 面对不同的系统要施展不同的对策才能实现, 很多杀毒程序就采用了这种后台监控技术, 使程序随着系统的启动而运行, 然后在后台悄悄地监视系统的一举一动, 一发现有不对路的程序就把它, 出来示众, 实现程序的后台监控技术有如下几个关键, 让程序实现后台监控, 从tthread, 类派生出一个新的线程类, 创建线程对象, 设置线程对象的属性项, 挂起或唤醒线程, 根据具体情况操作, 结束线程, 要说明一点的是, 在应用程序中要合理地设置线程的优先级, 不要因为某些线程的优先级很高而使其他一些线程因为等不到cpu的处理时间而被, 也不要因为线程的级别都差不多而导致的频繁切换花费大量的cpu时间, 本段引自, 编程实例与技巧, p284, 具体流程如下, 清楚了使用多线程技术的优势之后, 下面便来谈谈如何在c, builder环境下开发多线程的应用程序, 环境中, tthread, 类就可以很方便地编写多线程应用程序, 但不能直接使用, 因此要派生新类, 采用多线程技术, 可以设置每个线程的优先级, 调整工作的进度, 提高cpu的利用率, 由于多线程并发运行, 可以使用户在做一件事情的时候还可以做另外一件事, 特别是在多个cpu的情况下, 更可以充分地利用硬件资源的优势, 将一个大任务分成几个小任务, 由不同的cpu来合作完成, 使用多线程技术编程有如下优点, 通过上一篇的介绍, 大家都很清楚线程的概念了, 它是进程内部的一个执行单元, 如一个函数等, 上期说了那么多理论, 现在该派上用场了, 编写多线程应用程序是指使程序在运行时创建多个线程并发地运行于同一个进程中, 今年6月份横空出世的, 病毒不是采用了全球独创的, 三线程技术, 虽然笔者没机会分析它的样本代码, 但此种病毒的工作效率如此之高是与它的多线程技术分不开的, 多线程编程技术, 调用api, 你可以写出功能强大的程序来, 这一技巧对于初学者来说是必须掌握的, 代码请参考黑防光, 名字和括号里的参数是什么就行了, 至于实现的过程不必理会, 也轮不到我们这些菜鸟去理会, 大家看到, 在上面调用api函数findwindow, 和showwindow, 的过程中, 只要我们知道函数的, showwindow, sw_hide, 再调用api函数showwindow, 隐藏任务栏, shell_traywnd, 调用api函数findwindow, 获得任务栏的句柄, 定义句柄类型变量, 程序三, 调用api函数隐藏windows的任务栏, 其实这是最简单的, api是系统在dll里为我们提供的程序接口, 可以直接调用的, 只要我们有一本, 之类的书就足够了, 下面举个简单的例子, 调用api编程, 编译运行上面的代码就可以将ie的标题改为, 笔者写了个小程序, 可以测出当前的ie标题和默认主页是什么, 并可随意修改他们, 还可以禁止别人修改你的默认主页和注册表编辑器, 在unit1, h文件中包含registry单元, 然后就可以在, cpp文件操作注册表了, 接着来, 在窗体的oncreate, 里加入以下代码, 你可以在try, 里面加入任何操作注册表的代码, 创建一个tregistry类型的对象registry, 用于修改注册表, rootkey, hkey_current_user, 设置主键, 这是必不可少的, 设置好主键后, 就可以操作这个主, 键下所有的键值了, openkey, 调用openkey, 括号里所指的键, 调用writestring, 往注册表里写入ie标题, 关闭该键, else, 如果打开失败的话, createkey, 就调用createkey, 新建上述键, 再写入, ie标, 题内容, 最后关闭该键, 这个也不能忽视, 它跟上面的openkey成对使用的, end, __finally, 要是出错, 跳到这里处理, 关闭所要打开的键, delete, 销毁registry对象, 释放资源, 程序二, 编程修改ie标题内容, 相信大家都知道当浏览了一些网页恶意代码, ie标题, 默认主页等被改得面目全非, 这就是通过改动注册表来更改系统设置的例子, windows中的注册表是个好东东, 它是windows系统的灵魂, 是许多软件记录数据的地方, 当然也包括windows本身, windows通过它记录大量的数据, 然后在下一次启动时再读取相应的数据来设置系统, 通过控制注册表就可以控制整个系统, 所以很多的黑客程序都在注册表上动手脚, 尤其是木马程序和作恶剧程序, 学会修改注册表可以实现一些有趣而强大的功能, 我们完全可以通过编程来操作注册表, 达到与手动更改注册表编辑器产生一样的效果, 超级兔子, 中的大部分功能就是通过修改注册表来完成的, 操作注册表有专门的api函数, 大家可以参考有关资料, 下面笔者以c, builder为例说明如何在程序中操作注册表, 学会修改注册表, 以下将要谈到的几个基本技巧很重要, 虽然对于编程高手来说这是在玩小孩子把戏, 但对于一位初学者, 掌握以下几个技巧将为你的编程扫清道路, 而且很容易编写出有趣的程序, 培养你对编程的兴趣, 黑客编程的几个基本技巧, 超级解霸梁肇新, 合订本, 程序设计, 清华大学出版社, 参考书籍, 给程序员的建议, 不要急于求成, 这样往往欲速不达, 不要什么东西都想学, 什么都没掌握, 每天都要自我总结, 分析自己的错误率和废码率, 不断加强自我管理, 代码格式很重要, 代码要规范, 效率要高, 不要盲从简单的开发工具, 这点笔者不是很同意, 最起码要有一定的功底的人才敢这么说, 有了成果要公开, 不要舍不得, 不然很快会过时的, 以上两段摘自, 增值合订本2001, 上册p18, 请读者前往参考, 看一个成功的程序员是如何写程序的, 希望对广大菜鸟有所启发, 写程序的方法, 在win98的环境中, 先写主干, 用最少的代码实现最基本的功能, 然后一点点添加功能, 每加一点都要调试, 尽量少用动态分配, 全局变量, 充分利用操作系统直接提供的api, 在win98下调试通过之后, 再在win95下调试通过, 然后是win97, windowsme, winnt4, 这样才能写出稳定, 快速的程序, 问题可谈到点子上了, 学那么多语言, 读那么多程序最终还不是为了写程序, 做出适合需要的软件来, 君子性非异也, 善加于物也, 笔者认为一切从借鉴开始, 先是修改别人的程序, 等到有了一定的程度再写出属于自己的程序, 刚开始写程序, 不要奢望一下子写出很出色的程序来, 万丈高楼平底起, 编程贵在动手, 只要你动手去写了, 就算只有一句, hello, 也是一次进步, 还要依照自身的能力循序渐进地写, 开始的时候写一点功能简单的, 篇幅短小的代码, 力求简洁, 麻雀虽小, 但五脏俱全, 然后在此基础上进行扩充, 一点一点添加功能, 下面笔者摘录一位国内一流编程高手, 豪杰超级解霸, 的作者梁肇新的编程心得, 请大家看, 无从下手了, 而且不断的问自己, 我平时的努力哪去了, 语法都会了呀, 怎么还是做不出程序来, 相信很多人都像笔者以前那样, 错误地以为学会了语法就等于掌握了编程, 编程的能力包括经验, 耐心等几个因素, 而并非想象中的那样简单, 更不要以为编程就是简简单单的写程序, 其实学一门语言并不需要刻意去记那些条条框框的语法, 在看代码的时候, 遇到了不明白的地方再去查相关的资料, 一点一点补充基础知识再配合源程序的思路, 这时的理解才是最深刻的, 我可以肯定地说, 这个时候对语法的接受程度绝对比你刚开始时的死记要强, 读程序也不能单纯地读, 要真正做到, 俯而读, 昂而思, 好的代码是百读不厌的, 比如shotgun的那道构造洪水ping攻击的代码, 我至少读了20遍, 笔者喜欢将从网上搜集来的代码打印到纸上, 尽管学校的打印费贵得要命, 打一份代码就得花去十几块甚至几十块大洋, 然后边看边做好眉批, 遇到一个新函数记下它的功能, 一些忘记了的知识在旁边标出来, 还可以写上对程序的看法等等, 特别是遇到了一些新的api函数, 最好标出来, 对你以后编程的时候也许会用得着, 最后别忘了分析一下程序的思路, 这样对你以后编写类似的程序很有帮助的, 我将读程序放在前面是有原因的, 在你没有阅读过一份完整的源代码之前, 你别指望能写出有多好的程序来, 这是对每一位初学者的忠告也是警告, 而且必须具备一定的语言基础知识, 这里的基础知识主要是指语法知识, 最起码要能读懂别人的程序的每一行意思, 有没有程序的设计思想, 在这个时期并不重要, 只要具备一定的语法基础就可以了, 思想可以通过阅读完别人的源程序后分析得来, 记得在大一学习c语言的时候, 我们都很重视语法的学习, 整天都看教材, 做练习, 而且赶在老师的讲课前预习, 课后又复习巩固, 将一些语法点记得滚瓜烂熟, 可后来一到做课程设计的时候, 坐在电脑面前简直是老鼠拖鸡蛋, 如果你是一个黑客技术的狂热者的话, 到雅虎去搜索黑客教程的时候就会发现, 很多的中文教程在谈到如何进行黑客编程时, 十有八九都会介绍以下两大最佳途径, 并且都提出了教程作者的看法, 下面我想谈谈这方面的个人观点, 谈谈促进编程能力提高的两个途径, 从上面的介绍我们对windows, 有了进一步的了解, 现在就该开始行动了, 选择要学的语言和工具是第一步, 而且是非常重要的一步工作, 笔者建议一切以简单, 易接受为原则, 不然你会自信心大减的, 何必偏要跟自己过不去自讨苦吃呢, 在开始的时候很多人都感到迷惑, 目前的编程语言那么多, html等等, 究竟学哪些好呢, 最开始我该学什么呢, 甚至有人将vc, builder也列为两种不同的语言, 这些都是对编程语言缺乏了解造成的, 笔者开始的时候也犯过同样的错误, 曾经给自己写过一份计划书, 先学c语言, 接着学c, 哪一种语言用多少时间去专攻等等, 现在回想起来觉得多么的可笑, 只要学得精, 一门就够了, 从实用的角度来讲, 是最好的选择, 个人意见, 其实每一种语言都很好, 而vc和c, builder是其相应开发工具的两大主流, 笔者极力推荐初学者使用c, 因为很容易上手, 如果一下子就用vc的话, 也许会打击你的自信心, 编程语言以及工具的选择, api与sdk, api是英文, programming, interface, 的简称, 应用程序接口, 泛指系统为应用程序提供的一系列接口函数, 其实质是程序内的一套函数调用, 在编程的时候可以直接调用, 而不必知道其内部实现的过程, 只知道它的原型和返回值就可以了, 手头经常放着一本, 之类的书也是必不可少的, 不然你根本不知道哪些api是干什么用的, 瞎编也编不出什么东西来, 在后面我们会介绍调用api编程的例子, 调用api编程工作虽然烦琐, 但由于api函数都被封装在dll库里, 程序只有在运行的时候才调用的, 因此程序的体积小而且运行效率高, sdk是英文, development, kit, 的缩写, 软件开发工具包, 在防火墙的设计中就经常涉及到sdk, 有关基本的概念就谈这些, 那些c, 的基本语法, 什么是面向对象等知识请大家查阅相关的书, 此类书籍各大书店已汗牛充栋, 不再多叙, 下面直接谈谈语种和编程工具的选择问题, 这也是初学者们最迷惑的问题, sendmessage, wm_close, 使qq一启动就关闭, 让别人永远也用不了qq, 挺有趣儿的哦, 函数中, 并在后边加上这一句代码, 以上代码在c, builder下编译通过, 只要运行次程序, qq登陆窗口的号码框和密码框马上变黑色, 无非是enablewindow, 函数所起的作用, 你还可以添加一个timer控件, 将上面的代码copy到void, timer1timer, 定义三个窗口句柄变量, hcurwindow用于存放qq用户登陆窗口的句柄, he分别存放, 号码框和密码框的句柄, qq用户登录, oicq用户登录, 很明显, 调用findwindow, 函数去获得qq登陆窗口的句柄, sprintf, tchar, 类名变量, gw_child, 得到号码框的句柄, gw_hwndnext, 接着得到密码框的句柄, 单单一个, 字便可以解释它的意思了, 我们天气热摇扇子的时候只要抓住扇柄便可以控制整个扇子的运动了, 在程序中也差不多是这个意思, 通常一个句柄就可以传递我们所要做的事情, 有经验的读者肯定清楚, 编写程序总是要和各种句柄打交道的, 句柄是系统用来标识不同对象类型的工具, 如窗口, 菜单等, 这些东西在系统中被视为不同类型的对象, 用不同的句柄将他们区分开来, 看看c, 教材中是如何给句柄下定义的, 在win32里, 句柄是指向一个无值型对象, 的指针, 是一个4字节长的数据, 虽然我对它的本质是什么还是很迷惑, 但我知道句柄并不是一个真正意义上的指针, 从结构上看, 句柄的确是一个指针, 尽管它没有指向用于存储某个对象的内存位置, 很多书都这么说, 这正是我的迷惑所在, 而实际上句柄指向的是一个包含了对该对象进行的引用的位置, 在编程时, 只要抓住了对象的句柄就可以对该对象进行操作了, 中说到的对qq密码的截获就是要找到qq登陆窗口的句柄后才开始截密行动的, 下面再举个例子来说明句柄的运用, 编一个程序, 使qq登陆窗口的号码框和密码框均变黑, 相关代码及解释, 何谓事件, 从它的字面意思我们就可以明白它的含义, 如在程序运行的过程中改变窗口的大小或者移动窗口等, 都会触发相应的, 我们几乎做每一个动作都会产生一个消息, 在用鼠标指点江山的今天, 鼠标被移动会产生wm_mousemove消息, 鼠标左键被按下会产生wm_lbuttondown的消息, 鼠标右键按下便产生wm_rbuttondown消息等等, 所有的这些都可以通过getmessage, sendmessage等函数得到, 以后的操作中我们会经常接触到这些函数, 线程是进程中的一个执行单元, 同一个进程中的各个线程对应于一组cpu指令, 一组cpu寄存器以及一堆栈, 进程本来就具有动态的含义, 然而实质上是通过线程来执行体现的, 从这个意义上说, 中进程的动态性意义已经不是很明显了, 只算是给程序所占的资源划定一个范围而已, 个人观点, 纯属个人理解, 不必引起争议, 真正具有动态性意义的是线程, 以前在大二学习操作系统课的时候就有个同学跟笔者提起这点, 笔者还跟他驳得面红耳赤呢, 现在想想, 觉得很有道理, 不得不佩服那位同学对windows内部机制了解得如此清楚, 之所以在此花那么多的篇幅说线程, 是因为下面将要介绍到多线程编程技巧, 如果不理解这点, 那就很难应用到实践上, 希望大家明白, 说到进程, 的人都很清楚, 所谓进程就是应用程序的执行实例, 或称一个执行程序, 需要注意的是, 进程是程序动态的描述, 而上面说到的程序是静态的描述, 两者有本质的区别, 举个例子, 从网上down了一个瑞星杀毒软件到c盘但没有运行, exe, 可执行文件叫做程序, 它是一个二进制码的文件, 一旦双击了exe文件图标运行程序, 正在运行着的瑞星杀毒, 便称为进程, 它在双击的那一刻被系统创建, 当你关机或者在任务栏的图标上单击鼠标右键选, 进程便消亡, 彻底结束了生命, 进程经历了由, 的生命期, 而程序自始至终存在于你的硬盘上, 不管你的机器是否启动, 通常说的程序都是指一个能让计算机识别的文件, 接触得最多的便是, exe型的可执行文件, 这个不难理解, 这是我要说的第一个概念, 似乎是地球人都知道的事儿了, 窗口是windows本身以及windows, 环境下的应用程序的基本界面单位, 但是很多人都误以为只有具有标题栏, 状态栏, 最大化, 最小化按钮这样标准的方框才叫窗口, 其实窗口的概念很广, 例如按钮和对话框等也是窗口哦, 只不过是一种特殊的窗口罢了, 从用户的角度看, 窗口就是显示在屏幕上的一个矩形区域, 其外观独立于应用程序, 事实上它就是生成该窗口的应用程序与用户间的直观接口, 从应用程序的角度看, 窗口是受其控制的一部分矩形屏幕区, 应用程序生成并控制与窗口有关的一切内容, 包括窗口的大小, 位置以及窗口内显示的内容等, 用户打开一个应用程序后, 程序将创建一个窗口, 并在那里默默地等待用户的要求, 每当用户选择窗口中的选项, 程序即对此做出响应, 下面便简单介绍一下与, 系统密切相关的几个基本概念, 在windows下执行一个程序, 只要用户进行了影响窗口的动作, 如改变窗口大小或移动, 单击鼠标等, 该动作就会触发一个相应的, 系统每次检测到一个事件时, 就会给程序发送一个, 从而使程序可以处理该事件, 每个windows, 应用程序都是基于事件和消息的, 而且包含一个主事件循环, 它不停地, 反复地检测是否有用户事件发生, 每次检测到一个用户事件, 程序就对该事件做出响应, 处理完再等待下一个事件的发生, 下的应用程序不断地重复这一过程, 直至用户终止程序, 用代码来描述实际上也就是一个消息处理过程的while循环语句, 是一个, 基于事件的, 消息驱动的, 了解windows, 内部机制, 编程是一项很繁杂的工作, 除了应用编程工具之外, 了解系统本身内部工作机理非常重要, 这是你写出稳定兼容的程序所必不可少的前提条件, 你要在哪一种系统上编程就要对该系统的机制进行研究, 至少你应该知道一个程序在那个系统上是如何运行的, 从理论上说, 任何一门语言都可以在任何一个系统上编程, 只要找到该系统提供的, 和对系统内部机制有深入的了解就可以了, 至少我是这么认为的, 正如c语言可以在windows下编程, 也同样可以在linux上大放异彩一样, 前几天在网上看了, 兄写的, win下编程须知, 觉得在编程方面要写出一篇适合初学者们看的入门级文章的确很重要, 可惜病毒兄只在该文里介绍了线程, 句柄等几个基本概念, 很多初学者看了对编程还是感到很迷惑, 一个从来没有写过程序的人如何入门, 如何在短时间内写出自己的程序来, 笔者带着这些问题写了这篇文章, 这也是笔者在学习编程的初期所遇到的困惑, 在此根据笔者的个人理解将其整理成文, 希望能引起广大菜鸟们的共鸣, 对初学者们有所帮助, 上面的题目带有, 两个字, 请大家别误会了, 其实没有多少是讲黑客的, 这完全是一篇菜鸟级的编程杂谈, 如果您已是高手, 就不必在此浪费时间了, 2187, windows黑客编程基础, 当前位置, 面试简历, 留言板, 毕业设计, 人工智能, android, 数据结构与算法, 数据库, web前端, 书籍文档, 软件工具, 视频教程, 源码模板, 爱码网专注于资源免费下载, windows黑客编程基础_技术文章_爱码网, 资源免费下载,


Text of the page (random words):
windows黑客编程基础_技术文章_爱码网 资源免费下载 爱码网专注于资源免费下载 登陆 首页 源码模板 视频教程 软件工具 书籍文档 java web前端 数据库 python 数据结构与算法 安全 android 人工智能 其他 技术文章 毕业设计 留言板 面试简历 当前位置 首页 技术文章 正文 windows黑客编程基础 爱码网 04 24 2187 技术文章 windows 黑客 编程 基础 pdf 下载 上面的题目带有 黑客 两个字 请大家别误会了 其实没有多少是讲黑客的 这完全是一篇菜鸟级的编程杂谈 如果您已是高手 就不必在此浪费时间了 前几天在网上看了 病毒 兄写的 win下编程须知 一文 觉得在编程方面要写出一篇适合初学者们看的入门级文章的确很重要 可惜病毒兄只在该文里介绍了线程 消息 句柄等几个基本概念 很多初学者看了对编程还是感到很迷惑 一个从来没有写过程序的人如何入门 如何在短时间内写出自己的程序来 笔者带着这些问题写了这篇文章 这也是笔者在学习编程的初期所遇到的困惑 在此根据笔者的个人理解将其整理成文 希望能引起广大菜鸟们的共鸣 对初学者们有所帮助 从理论上说 任何一门语言都可以在任何一个系统上编程 只要找到该系统提供的 接口 和对系统内部机制有深入的了解就可以了 至少我是这么认为的 正如c语言可以在windows下编程 也同样可以在linux上大放异彩一样 编程是一项很繁杂的工作 除了应用编程工具之外 了解系统本身内部工作机理非常重要 这是你写出稳定兼容的程序所必不可少的前提条件 你要在哪一种系统上编程就要对该系统的机制进行研究 至少你应该知道一个程序在那个系统上是如何运行的 一 了解windows 内部机制 windows 是一个 基于事件的 消息驱动的 操作系统 在windows下执行一个程序 只要用户进行了影响窗口的动作 如改变窗口大小或移动 单击鼠标等 该动作就会触发一个相应的 事件 系统每次检测到一个事件时 就会给程序发送一个 消息 从而使程序可以处理该事件 每个windows 应用程序都是基于事件和消息的 而且包含一个主事件循环 它不停地 反复地检测是否有用户事件发生 每次检测到一个用户事件 程序就对该事件做出响应 处理完再等待下一个事件的发生 windows 下的应用程序不断地重复这一过程 直至用户终止程序 用代码来描述实际上也就是一个消息处理过程的while循环语句 下面便简单介绍一下与 windows 系统密切相关的几个基本概念 窗口 这是我要说的第一个概念 似乎是地球人都知道的事儿了 窗口是windows本身以及windows 环境下的应用程序的基本界面单位 但是很多人都误以为只有具有标题栏 状态栏 最大化 最小化按钮这样标准的方框才叫窗口 其实窗口的概念很广 例如按钮和对话框等也是窗口哦 只不过是一种特殊的窗口罢了 从用户的角度看 窗口就是显示在屏幕上的一个矩形区域 其外观独立于应用程序 事实上它就是生成该窗口的应用程序与用户间的直观接口 从应用程序的角度看 窗口是受其控制的一部分矩形屏幕区 应用程序生成并控制与窗口有关的一切内容 包括窗口的大小 风格 位置以及窗口内显示的内容等 用户打开一个应用程序后 程序将创建一个窗口 并在那里默默地等待用户的要求 每当用户选择窗口中的选项 程序即对此做出响应 程序 通常说的程序都是指一个能让计算机识别的文件 接触得最多的便是 exe型的可执行文件 这个不难理解 进程 说到进程 学过 操作系统 的人都很清楚 所谓进程就是应用程序的执行实例 或称一个执行程序 需要注意的是 进程是程序动态的描述 而上面说到的程序是静态的描述 两者有本质的区别 举个例子 从网上down了一个瑞星杀毒软件到c盘但没有运行 那个 exe 可执行文件叫做程序 它是一个二进制码的文件 一旦双击了exe文件图标运行程序 那个 正在运行着的瑞星杀毒 便称为进程 它在双击的那一刻被系统创建 当你关机或者在任务栏的图标上单击鼠标右键选 退出 时 进程便消亡 彻底结束了生命 进程经历了由 创建 到 消亡 的生命期 而程序自始至终存在于你的硬盘上 不管你的机器是否启动 线程 线程是进程中的一个执行单元 同一个进程中的各个线程对应于一组cpu指令 一组cpu寄存器以及一堆栈 进程本来就具有动态的含义 然而实质上是通过线程来执行体现的 从这个意义上说 windows 中进程的动态性意义已经不是很明显了 只算是给程序所占的资源划定一个范围而已 个人观点 纯属个人理解 不必引起争议 真正具有动态性意义的是线程 以前在大二学习操作系统课的时候就有个同学跟笔者提起这点 笔者还跟他驳得面红耳赤呢 现在想想 觉得很有道理 不得不佩服那位同学对windows内部机制了解得如此清楚 之所以在此花那么多的篇幅说线程 是因为下面将要介绍到多线程编程技巧 如果不理解这点 那就很难应用到实践上 希望大家明白 消息 我们几乎做每一个动作都会产生一个消息 在用鼠标指点江山的今天 鼠标被移动会产生wm_mousemove消息 鼠标左键被按下会产生wm_lbuttondown的消息 鼠标右键按下便产生wm_rbuttondown消息等等 所有的这些都可以通过getmessage sendmessage等函数得到 以后的操作中我们会经常接触到这些函数 事件 何谓事件 从它的字面意思我们就可以明白它的含义 如在程序运行的过程中改变窗口的大小或者移动窗口等 都会触发相应的 事件 句柄 单单一个 柄 字便可以解释它的意思了 我们天气热摇扇子的时候只要抓住扇柄便可以控制整个扇子的运动了 在程序中也差不多是这个意思 通常一个句柄就可以传递我们所要做的事情 有经验的读者肯定清楚 编写程序总是要和各种句柄打交道的 句柄是系统用来标识不同对象类型的工具 如窗口 菜单等 这些东西在系统中被视为不同类型的对象 用不同的句柄将他们区分开来 看看c 教材中是如何给句柄下定义的 在win32里 句柄是指向一个无值型对象 void 的指针 是一个4字节长的数据 虽然我对它的本质是什么还是很迷惑 但我知道句柄并不是一个真正意义上的指针 从结构上看 句柄的确是一个指针 尽管它没有指向用于存储某个对象的内存位置 很多书都这么说 这正是我的迷惑所在 而实际上句柄指向的是一个包含了对该对象进行的引用的位置 在编程时 只要抓住了对象的句柄就可以对该对象进行操作了 我在 一个简单木马程序的编写与伪装策略 中说到的对qq密码的截获就是要找到qq登陆窗口的句柄后才开始截密行动的 下面再举个例子来说明句柄的运用 编一个程序 使qq登陆窗口的号码框和密码框均变黑 相关代码及解释 void __fastcall tform1 formcreate tobject sender hwnd hcurwindow hc he 定义三个窗口句柄变量 hcurwindow用于存放qq用户登陆窗口的句柄 hc he分别存放 号码框和密码框的句柄 if hcurwindow findwindow null qq用户登录 0 hcurwindow findwindow null oicq用户登录 0 很明显 调用findwindow 函数去获得qq登陆窗口的句柄 string str str sprintf 0x x hcurwindow tchar wclassname 255 类名变量 hc getwindow hcurwindow gw_child 得到号码框的句柄 he getwindow hc gw_hwndnext 接着得到密码框的句柄 getclassname he wclassname sizeof wclassname 得到类名 getclassname hc wclassname sizeof wclassname 得到类名 enablewindow he false 使窗口失效 enablewindow hc false 使窗口失效 以上代码在c builder下编译通过 只要运行次程序 qq登陆窗口的号码框和密码框马上变黑色 无非是enablewindow 函数所起的作用 你还可以添加一个timer控件 将上面的代码copy到void __fastcall tform1 timer1timer tobject sender 函数中 并在后边加上这一句代码 sendmessage hcurwindow wm_close 0 0 使qq一启动就关闭 让别人永远也用不了qq 挺有趣儿的哦 api与sdk api是英文 application programming interface 的简称 意为 应用程序接口 泛指系统为应用程序提供的一系列接口函数 其实质是程序内的一套函数调用 在编程的时候可以直接调用 而不必知道其内部实现的过程 只知道它的原型和返回值就可以了 此外 手头经常放着一本 windows api大全 之类的书也是必不可少的 不然你根本不知道哪些api是干什么用的 瞎编也编不出什么东西来 在后面我们会介绍调用api编程的例子 调用api编程工作虽然烦琐 但由于api函数都被封装在dll库里 程序只有在运行的时候才调用的 因此程序的体积小而且运行效率高 sdk是英文 software development kit 的缩写 指 软件开发工具包 在防火墙的设计中就经常涉及到sdk 有关基本的概念就谈这些 那些c c 的基本语法 什么是面向对象等知识请大家查阅相关的书 此类书籍各大书店已汗牛充栋 不再多叙 下面直接谈谈语种和编程工具的选择问题 这也是初学者们最迷惑的问题 二 编程语言以及工具的选择 从上面的介绍我们对windows 有了进一步的了解 现在就该开始行动了 选择要学的语言和工具是第一步 而且是非常重要的一步工作 笔者建议一切以简单 易接受为原则 不然你会自信心大减的 何必偏要跟自己过不去自讨苦吃呢 在开始的时候很多人都感到迷惑 目前的编程语言那么多 有c c c java 汇编 html等等 究竟学哪些好呢 最开始我该学什么呢 甚至有人将vc c builder也列为两种不同的语言 这些都是对编程语言缺乏了解造成的 笔者开始的时候也犯过同样的错误 曾经给自己写过一份计划书 先学c语言 接着学c c java 汇编 vb vc c builder 哪一种语言用多少时间去专攻等等 现在回想起来觉得多么的可笑 只要学得精 一门就够了 从实用的角度来讲 c 是最好的选择 个人意见 其实每一种语言都很好 而vc和c builder是其相应开发工具的两大主流 笔者极力推荐初学者使用c builder 因为很容易上手 如果一下子就用vc的话 也许会打击你的自信心 三 谈谈促进编程能力提高的两个途径 如果你是一个黑客技术的狂热者的话 到雅虎去搜索黑客教程的时候就会发现 很多的中文教程在谈到如何进行黑客编程时 十有八九都会介绍以下两大最佳途径 一 读程序 二 写程序 并且都提出了教程作者的看法 下面我想谈谈这方面的个人观点 读程序 我将读程序放在前面是有原因的 在你没有阅读过一份完整的源代码之前 你别指望能写出有多好的程序来 这是对每一位初学者的忠告也是警告 而且必须具备一定的语言基础知识 这里的基础知识主要是指语法知识 最起码要能读懂别人的程序的每一行意思 有没有程序的设计思想 在这个时期并不重要 只要具备一定的语法基础就可以了 思想可以通过阅读完别人的源程序后分析得来 记得在大一学习c语言的时候 我们都很重视语法的学习 整天都看教材 做练习 而且赶在老师的讲课前预习 课后又复习巩固 将一些语法点记得滚瓜烂熟 可后来一到做课程设计的时候 坐在电脑面前简直是老鼠拖鸡蛋 无从下手了 而且不断的问自己 我平时的努力哪去了 语法都会了呀 怎么还是做不出程序来 相信很多人都像笔者以前那样 错误地以为学会了语法就等于掌握了编程 编程的能力包括经验 技巧 耐心等几个因素 而并非想象中的那样简单 更不要以为编程就是简简单单的写程序 其实学一门语言并不需要刻意去记那些条条框框的语法 在看代码的时候 遇到了不明白的地方再去查相关的资料 一点一点补充基础知识再配合源程序的思路 这时的理解才是最深刻的 我可以肯定地说 这个时候对语法的接受程度绝对比你刚开始时的死记要强 读程序也不能单纯地读 要真正做到 俯而读 昂而思 好的代码是百读不厌的 比如shotgun的那道构造洪水ping攻击的代码 我至少读了20遍 笔者喜欢将从网上搜集来的代码打印到纸上 尽管学校的打印费贵得要命 打一份代码就得花去十几块甚至几十块大洋 然后边看边做好眉批 遇到一个新函数记下它的功能 一些忘记了的知识在旁边标出来 还可以写上对程序的看法等等 特别是遇到了一些新的api函数 最好标出来 对你以后编程的时候也许会用得着 最后别忘了分析一下程序的思路 这样对你以后编写类似的程序很有帮助的 写程序 问题可谈到点子上了 学那么多语言 读那么多程序最终还不是为了写程序 做出适合需要的软件来 君子性非异也 善加于物也 笔者认为一切从借鉴开始 先是修改别人的程序 等到有了一定的程度再写出属于自己的程序 刚开始写程序 不要奢望一下子写出很出色的程序来 万丈高楼平底起 编程贵在动手 只要你动手去写了 就算只有一句 printf hello 也是一次进步 此外 还要依照自身的能力循序渐进地写 开始的时候写一点功能简单的 篇幅短小的代码 力求简洁 完整 麻雀虽小 但五脏俱全 然后在此基础上进行扩充 一点一点添加功能 下面笔者摘录一位国内一流编程高手 豪杰超级解霸 的作者梁肇新的编程心得 请大家看 看一个成功的程序员是如何写程序的 希望对广大菜鸟有所启发 写程序的方法 在win98的环境中 先写主干 用最少的代码实现最基本的功能 然后一点点添加功能 每加一点都要调试 尽量少用动态分配 全局变量 充分利用操作系统直接提供的api 在win98下调试通过之后 再在win95下调试通过 然后是win97 windowsme winnt4 0 这样才能写出稳定 快速的程序 给程序员的建议 1 不要急于求成 这样往往欲速不达 2 不要什么东西都想学 什么都没掌握 3 每天都要自我总结 分析自己的错误率和废码率 不断加强自我管理 4 代码格式很重要 代码要规范 严谨 效率要高 5 不要盲从简单的开发工具 这点笔者不是很同意 最起码要有一定的功底的人才敢这么说 6 有了成果要公开 不要舍不得 不然很快会过时的 以上两段摘自 程序员 增值合订本2001 上册p18 请读者前往参考 参考书籍 windows c 程序设计 清华大学出版社 超级解霸梁肇新 程序员 合订本 黑客编程的几个基本技巧 以下将要谈到的几个基本技巧很重要 虽然对于编程高手来说这是在玩小孩子把戏 但对于一位初学者 掌握以下几个技巧将为你的编程扫清道路 而且很容易编写出有趣的程序 培养你对编程的兴趣 技巧 学会修改注册表 相信大家都知道当浏览了一些网页恶意代码 ie标题 默认主页等被改得面目全非 这就是通过改动注册表来更改系统设置的例子 windows中的注册表是个好东东 它是windows系统的灵魂 是许多软件记录数据的地方 当然也包括windows本身 windows通过它记录大量的数据 然后在下一次启动时再读取相应的数据来设置系统 通过控制注册表就可以控制整个系统 所以很多的黑客程序都在注册表上动手脚 尤其是木马程序和作恶剧程序 学会修改注册表可以实现一些有趣而强大的功能 我们完全可以通过编程来操作注册表 达到与手动更改注册表编辑器产生一样的效果 超级兔子 中的大部分功能就是通过修改注册表来完成的 操作注册表有专门的api函数 大家可以参考有关资料 下面笔者以c builder为例说明如何在程序中操作注册表 程序二 编程修改ie标题内容 新建一个工程 在unit1 h文件中包含registry单元 include 然后就可以在 cpp文件操作注册表了 接着来 在窗体的oncreate 里加入以下代码 你可以在try 里面加入任何操作注册表的代码 tregistry registry registry new tregistry 创建一个tregistry类型的对象registry 用于修改注册表 try registry rootkey hkey_current_user 设置主键 这是必不可少的 设置好主键后 就可以操作这个主 键下所有的键值了 if registry openkey software microsoft internet explorer main false 调用openkey 打开 括号里所指的键 registry writestring window title 台湾是中国的一部分 世界上只有一个中国 调用writestring 往注册表里写入ie标题 registry closekey 关闭该键 else 如果打开失败的话 registry createkey software microsoft internet explorer main 就调用createkey 新建上述键 registry writestring window title 台湾是中国的一部分 世界上只有一个中国 再写入 ie标 题内容 registry closekey 最后关闭该键 这个也不能忽视 它跟上面的openkey成对使用的 end of try __finally 要是出错 跳到这里处理 registry closekey 关闭所要打开的键 delete registry 销毁registry对象 释放资源 编译运行上面的代码就可以将ie的标题改为 台湾是中国的一部分 世界上只有一个中国 了 笔者写了个小程序 可以测出当前的ie标题和默认主页是什么 并可随意修改他们 还可以禁止别人修改你的默认主页和注册表编辑器 技巧 调用api编程 其实这是最简单的 api是系统在dll里为我们提供的程序接口 可以直接调用的 只要我们有一本 windows api大全 之类的书就足够了 下面举个简单的例子 程序三 调用api函数隐藏windows的任务栏 hwnd wndhandle 定义句柄类型变量 wndhandle findwindow shell_traywnd null 调用api函数findwindow 获得任务栏的句柄 showwindow wndhandle sw_hide 再调用api函数showwindow 隐藏任务栏 大家看到 在上面调用api函数findwindow 和showwindow 的过程中 只要我们知道函数的 名字和括号里的参数是什么就行了 至于实现的过程不必理会 也轮不到我们这些菜鸟去理会 学会 调用api 你可以写出功能强大的程序来 这一技巧对于初学者来说是必须掌握的 代码请参考黑防光 盘 技巧 多线程编程技术 通过上一篇的介绍 大家都很清楚线程的概念了 它是进程内部的一个执行单元 如一个函数等 上期说了那么多理论 现在该派上用场了 编写多线程应用程序是指使程序在运行时创建多个线程并发地运行于同一个进程中 今年6月份横空出世的 中国黑客 病毒不是采用了全球独创的 三线程技术 吗 虽然笔者没机会分析它的样本代码 但此种病毒的工作效率如此之高是与它的多线程技术分不开的 使用多线程技术编程有如下优点 提高cpu的利用率 由于多线程并发运行 可以使用户在做一件事情的时候还可以做另外一件事 特别是在多个cpu的情况下 更可以充分地利用硬件资源的优势 将一个大任务分成几个小任务 由不同的cpu来合作完成 采用多线程技术 可以设置每个线程的优先级 调整工作的进度 清楚了使用多线程技术的优势之后 下面便来谈谈如何在c builder环境下开发多线程的应用程序 在c builder 环境中 通过 tthread 类就可以很方便地编写多线程应用程序 但不能直接使用 因此要派生新类 具体流程如下 从tthread 类派生出一个新的线程类 创建线程对象 设置线程对象的属性项 挂起或唤醒线程 根据具体情况操作 结束线程 要说明一点的是 在应用程序中要合理地设置线程的优先级 不要因为某些线程的优先级很高而使其他一些线程因为等不到cpu的处理时间而被 饿死 也不要因为线程的级别都差不多而导致的频繁切换花费大量的cpu时间 本段引自 c builder 5 编程实例与技巧 p284 技巧 让程序实现后台监控 这是一个很基本的技巧 如果你是一个木马程序的爱好者 当你阅读众多的木马源程序的时候 就会发现100 的木马程序都很注意自身的后台监控本领 也就是隐身技术 面对不同的系统要施展不同的对策才能实现 很多杀毒程序就采用了这种后台监控技术 使程序随着系统的启动而运行 然后在后台悄悄地监视系统的一举一动 一发现有不对路的程序就把它 揪 出来示众 实现程序的后台监控技术有如下几个关键 正常运行时 不显示程序的窗体 系统每次启动都自动运行程序一次 程序图标不显示在任务栏上 不显示在按ctrl alt del 调出的任务列表中 通过热键可以调出隐藏的窗体 实现方法 对于 要不显示窗体 我们可以编辑winmain函数 设置showmainform值为false就可以隐藏程序的窗体了 参考代码 application showmainform false 对于 可以利用技巧1所介绍的方法修改注册表 键值如下 hkey_local_machinesoftwaremicrosoftwindowscurrentversionrun 使用的是writestring 方法 这是冰河等多种旧木马惯用的启动手段之一 当然还有文件关联 注入dll等方法 对于 要使程序图标不显示在任务栏上 也很简单 调用api函数setwindowlong 可以让程序运行后不出现在任务栏里 不过要放在窗体的oncreate 里面 代码如下 setwindowlong application handle gwl_exstyle ws_ex_toolwindow 对于 调用registerserviceprocess api 函数将程序注册成为一个服务模式程序 让它运行在较高的优先级下 就不会出现在程序列表中 对win9x有效 winnt 2000 xp下无效 具体的代码请参考笔者的 一个简单木马程序的编写与伪装策略 一文 不在此重叙对于 要先定义捕获windows消息wm_hotkey的钩子函数 然后向windows 加入一个全局原子 并保留其句柄 最后向windows登记热键 这个可以调用api函数registerhotkey来实现 技巧 使用定时触发器 在c builder 环境下 定时触发器即timer控件 有时候我们希望程序隔一段时间重复执行相同的动作 比如对qq密码截获的时候 就要隔一段间隔寻找一次qq登录窗口 在c builder中 只要将执行这些动作的代码放到一个timer中去就ok了 听说 中国黑客 病毒运行几分钟后就自动创建一个新的线程 用于寻找oicq的 发送消息 窗口 在10分钟内一直在找 一旦找到就将 去 功 等带有政治色彩的言论发送给受害者qq上的好友 10分钟后自动结束该线程 我想在查找 发送消息 窗口的10分钟内就运用了定时器 该病毒是用汇编开发的 可是在c builder中是如何运用的呢 其实控件的出现使得编程变得很简单 添加一个timer控件 设置几下控件的属性 双击timer控件 将代码放到里面去就行了 程序执行的时候 相隔指定的时间就重复执行里面的代码了 实际上笔者在上一期的 程序一 中寻找qq登录窗口时 就运用了定时器 有关编程技巧的介绍到此为止 请读者参考另类书籍 掌握更多的黑客编程技巧 编写出受欢迎的黑客程序来 四 socket 编程与网络通信基础 由于本文的主题是 黑客编程基础 而黑客是互连网上 来无影 去无踪 的黑衣人 如冰河 网络神偷等黑客程序都是基于互连网的 谈黑客编程离开网络编程就会大失其味 所以 下面接着谈谈网络编程 大凡基于网络应用的程序都离不开socket socket 为套接字之意 是作为计算机与计算机之间通信的接口 有关socket的概念在第6期 黑客防线 的 socket 编程的基础和基本过程 一文中有详细的描述 请大家参考 不在此多叙 需要指出的是 winsock 是访问众多的基层网络协议的一种接口 在每个win32平台上 它都以不同的形式存在着 winsock 是网络编程的接口 不是协议 这是容易弄错的地方 现在来谈谈winsock 编程的过程 大凡在win32平台上的winsock编程都要经过下列的基本步骤 定义变量 获得winsock版本 加载winsock库 初始化 创建套接字 设置套接字选项 关闭套接字 卸载winsock库 释放所有资源 下面以一道极其简单的程序来说明如何进行winsock编程 程序四 编一个程序来获取本地机器的ip地址 使用winsock提供的api函数是最基本的网络技术 为了给初学者看个清楚 笔者打算在visual c 和c builder下各写一个 便于大家区分这两种不同的编程工具的特性 对于本程序来说 他们都差不多 而对于某些通信程序 他们实现起来就相差很远了 但本质是差不多的 先来看visual c 下的源程序 实现步骤 打开visual c 从 file 菜单中的 new 新建一个工程 选中 win 32 console application 意思是说生成的是win32的控制台程序 另外 初学者要注意一点 只要程序中用到了 winsock api 函数 都要在工程设置的link 中增加 ws2_32 lib 文件 不然程序将不能通过编译 方法是 点击 project 菜单 选择 settings alt f7 在弹出的 project settings 对话框右侧选 link 标签 再在 projectoptions 下方的编辑框中增加ws2_32 lib文件 点 ok 就可以了 加载好文件之后 就可以在checkip cpp文件里加入以下代码了 begin from 包含需要使用的头文件 include stdafx h include windows h include include stdio h include stdlib h include string h void checkip void 定义checkip 函数 用于获取本机ip地址 word wversionrequested word类型变量 用于存放winsock版本的正确值sadata wsadata char name 255 定义用于存放获得的主机名的变量 cstring ip 定义ip地址变量 phostent hostinfo wversionrequested makeword 2 0 调用makeword 获得winsock版本的正确值 用于下面的加载winsock库 if wsastartup wversionrequested wsadata 0 现在是加载winsock库 如果wsastartup 函数返回值为0 说明加载成功 程序可以继续 往下执行 if gethostname name sizeof name 0 如果成功地将本地主机名存放入由name参数指定的缓冲区中 if hostinfo gethostbyname name null 这是获取主机名 如果获得主机名成功的话 将返回一个指针 指向hostinfo hostinfo 为phostent型的变量 下面即将用到这个结构体 lpcstr ip inet_ntoa struct in_addr hostinfo h_addr_list 调用inet_ntoa 函数 将hostinfo结构变量中的h_addr_list转化为标准的点分表示的ip 地址 如192 168 0 1 printf sn ip 输出ip地址 wsacleanup 卸载winsock库 并释放所有资源 int main int argc char argv 主函数 程序的入口 checkip 调用checkip 函数获得 输出ip地址 return 0 由于main 定义为int型 所以应带回一个int型的数值 下面接着来看看在c builder 下如何实现 其实两者的思想是一样的 只是在c builder下实现 的界面友好点而已 实现方法 打开c builder 5 默认情况下已经新建一个工程 保存这个工程文件 就可以了 构造如下面图4所示的界面 在相应之处添入下面的代码即可程序代码 包含头文件 include include pragma hdrstop include unit1 h pragma package smart_init pragma resource dfm tform1 form1 __fastcall tform1 tform1 tcomponent owner tform owner void tform1 gethostipaddress gethostipaddress 获得本机ip地址 struct hostent thishost struct in_addr in char myname 80 char ptr word wversionrequested wsadata wsadata int err wversionrequested makeword 2 0 err wsastartup wversionrequested wsadata if err 0 return if lobyte wsadata wversion 2 hibyte wsadata wversion 0 wsacleanup return if gethostname myname 80 socket_error return if thishost gethostbyname myname return memset void in sizeof in 0 in s_addr unsigned long thishost h_addr_list 0 if ptr inet_ntoa in return wsacleanup edit1 text ansistring ptr void __fastcall tform1 formcreate tobject sender gethostipaddress void __fastcall tform1 button1click tobject sender close 添加一个 确定 按钮 点击即关闭程序 程序在 c builder 5 下编译通过 通过比较你会发现他们是大同小异的 对于同一程序 两者工具各有秋千 至于选择哪种由你决定 最好是两者相得益彰 临渊羡鱼 不如退而结网 虽说 通往电脑的路不止一条 然而对于编程 道路却只有一条 就是 动手去做 亲身实践 兄弟 愿你成为一个出色的舵手 用代码去驽驾电脑的世界 用编程去填充七彩的人生 本文链接 https icode1024 com article 465 html spring源码解析 pdf 下载 mysql必知必会 pdf 下载 相关推荐 2025 04 02 c语言实现注册登录算法 2025 04 02 docker安装tomcat 2025 04 02 quartz集群怎么防止并发 2024 12 17 订单引擎 2024 07 16 美国网件路由器的登录地址以及默认用户名和密码 2024 07 16 wifi cmcc 手机登录 中国移动路由器 2024 07 11 longchat4j tools自然语言的魅力 2024 07 09 mysql数据库与jdbc编程 2024 07 09 java基础知识总结 2024 07 09 基于python语言的接口自动化测试学习过程 网友评论 取消回复 提交评论 热门文章 数据库系统概论第5版 王珊 pdf 下载 neo4j权威指南 pdf 下载 springboot vue学生信息管理系统 javaweb毕业设计 bootstrap calendar日历表控件 源码下载 jquery实现图片局部放大 源码下载 java从入门到精通 pdf 下载 趣学python编程中文版 pdf 下载 kafka权威指南 pdf 下载 企业应用架构模式 pdf 下载 java8中stream流用法 随机文章 java并发编程实战 pdf 下载 java并发编程之美 pdf 下载 高性能mysql 第3版 pdf 下载 mybatis从入门到精通 pdf 下载 javascript面向对象编程指南 pdf 下载 mysql技术内幕 第2版 pdf 下载 漫画数据库 pdf 下载 数据库原理 应用与实践 sql server pdf 下载 基于oracle的sql优化 pdf 下载 一本小小的mybatis源码分析书 pdf 下载 热门标签 下载 577 pdf 540 java 131 python 91 实战 74 编程 59 与 54 开发 50 技术 48 第2版 44 算法 33 指南 32 版 31 设计 30 核心 24 javascript 23 教程 23 应用 23 实践 23 学习 22 web 22 深入 22 第3版 21 入门 20 数据 20 基础 20 程序 20 权威指南 19 中文版 18 源码 17 手册 17 系统 16 黑客 16 mysql 15 网络 15 分析 15 spring 14 架构 14 sql 14 实现 14 精通 14 并发 14 视频 14 设计模式 13 css 13 高级 13 服务 13 权威 13 语言 13 redis 12 侧栏广告位 copyright 2023 2025 爱码网 版权所有 免责声明 网站所有作品均收集于网络 仅供读者学习交流使用 如有侵权 请发送邮件到876027276 qq com 告知管理员 我们将及时处理 皖icp备2023004554号 1 皖公网安备34152402000268
Images from subpage: "icode1024.com/book/" Verify
Images from subpage: "icode1024.com/java/" Verify
Images from subpage: "icode1024.com/webfront/" Verify
Images from subpage: "icode1024.com/database/" Verify
Images from subpage: "icode1024.com/python/" Verify

Verified site has: 103 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-103


The site also has 1 references to external domain(s).

 beian.miit.gov.cn  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/2 200
server nginx
date Mon, 13 Jul 2026 08:48:07 GMT
content-type text/html; charset=utf-8
vary Accept-Encoding
product Z-BlogPHP 1.7.4
x-xss-protection 1; mode=block
upgrade-insecure-requests 1
strict-transport-security max-age=31536000
content-encoding gzip

Meta Tags

title="Windows__-"
http-equiv="Content-Type" content="text/html; charset=UTF-8"
name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"
name="keywords" content="Windows,黑客,编程,基础,pdf,下载"
name="description" content="上面的题目带有“黑客”两个字,请大家别误会了,其实没有多少是讲黑客的,这完全是一篇菜鸟级的编程杂谈,如果您已是高手,就不必在此浪费时间了 。前几天在网上看了“病毒”兄写的《WIN下编程须知》一文,觉得在编程方面要写出一篇适合初学者们看的入门级文章的确很重要,可惜病毒兄只..."
name="author" content="爱码网"
name="sogou_site_verification" content="buAWNsDsqa"
name="msvalidate.01" content="043C8A342788DE433C369C82C64CC968"
name="baidu-site-verification" content="codeva-D8vjXCq4Wn"
name="bytedance-verification-code" content="2nz2ctfGzZzcZkntpO4r"
name="shenma-site-verification" content="d6f8421783eede27898e90d1d05f2d3f_1713017800"

Load Info

page size65299
load time (s)2.003607
redirect count0
speed download11174
server IP 43.137.42.186
* all occurrences of the string "http://" have been changed to "htt???/"