上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 38 下一页
摘要: IDA Pro 是一种功能强大且灵活的反汇编工具,可以在许多领域中发挥作用,例如漏洞研究、逆向工程、安全审计和软件开发等,被许多安全专家和软件开发者用于逆向工程和分析二进制代码。它支持大量的二进制文件格式和CPU架构,并提供了强大的反汇编和反编译功能。使用IDA Pro,用户可以查看和编辑汇编代码、查看函数和程序结构,并分析代码执行逻辑和漏洞。此外,IDA Pro还具有脚本编程和插件扩展功能,使用户能够轻松自定义和改进其功能。 阅读全文
posted @ 2023-11-11 10:59 lyshark 阅读(870) 评论(0) 推荐(0)
摘要: 异或加密是一种对称加密算法,通常用于加密二进制数据。异或操作的本质是对两个二进制数字进行比较,如果它们相同则返回0,如果不同则返回1。异或加密使用一把密钥将明文与密文进行异或运算,从而产生密文。同时,使用相同的密钥进行解密将返回原始的明文数据。在异或加密中,加密和解密使用的是相同的密钥。因此,它是一种对称加密算法。由于其简单性和效率,其经常用于嵌入式系统中。 阅读全文
posted @ 2023-11-10 12:43 lyshark 阅读(475) 评论(0) 推荐(0)
摘要: 同步模式下的结构体传输与原生套接字实现方式完全一致,读者需要注意的是在接收参数是应该使用`socket.read_some`函数读取,发送参数则使用`socket.write_some`函数实现,对于套接字的解析同样使用强制指针转换的方法。 阅读全文
posted @ 2023-11-10 12:42 lyshark 阅读(398) 评论(0) 推荐(0)
摘要: 这里所代指的字典是Python中的样子,本节内容我们将通过使用Boost中自带的`Tokenizer`分词器实现对特定字符串的切割功能,使用Boost Tokenizer,可以通过构建一个分隔符或正则表达式的实例来初始化`tokenizer`。然后,可以使用该实例对输入字符串进行划分。`tokenizer`将在输入字符串中寻找匹配输入模式的标记,并将其拆分为单独的字符串。 阅读全文
posted @ 2023-11-10 09:09 lyshark 阅读(387) 评论(0) 推荐(0)
摘要: 远程进程遍历功能实现原理与远程目录传输完全一致,唯一的区别在于远程进程枚举中使用`EnumProcess`函数枚举当前系统下所有活动进程,枚举结束后函数返回一个`PROCESSENTRY32`类型的容器,其中的每一个成员都是一个进程信息,只需要对该容器进行动态遍历即可得到所有的远程主机列表。服务端代码如下所示,首先代码中通过`read_some`第一次接收到对端进程数量,接着通过第一个循环,将接收到的字符串数据强制转换为`PROCESSENTRY32`类型的结构,并将结构存入`vector`容器内,第二个循环则用于枚举输出我们整理好的容器列表。 阅读全文
posted @ 2023-11-09 13:57 lyshark 阅读(401) 评论(0) 推荐(0)
摘要: 远程目录列表的获取也是一种很常用的功能,通常在远程控制软件中都存在此类功能,实现此功能可以通过`filesystem.hpp`库中的`directory_iterator`迭代器来做,该迭代器用于遍历目录中的文件和子目录,它允许开发者轻松遍历目录层次结构并对遇到的文件和目录执行各种操作。 阅读全文
posted @ 2023-11-09 08:57 lyshark 阅读(410) 评论(0) 推荐(0)
摘要: Boost框架中默认就提供了针对TCP流传输的支持,该功能可以用来进行基于文本协议的通信,也可以用来实现自定义的协议。一般`tcp::iostream`会阻塞当前线程,直到IO操作完成。首先来看服务端代码,如下所示在代码中首先通过`GetFileSize`读取文件行数,当有了行数我们就可以使用循环的方式依次调用`acceptor.accept(*tcp_stream.rdbuf())`接收客户端的相应请求,并使用`<<`符号向建立了链接的文件内追加字符串数据。 阅读全文
posted @ 2023-11-08 13:21 lyshark 阅读(509) 评论(0) 推荐(0)
摘要: Base64是一种二进制到文本的编码方案,用于将二进制数据转换为`ASCII`字符串格式。它通过将二进制数据流转换为一系列`64`个字符来工作,这些字符都可以安全地传输到设计用于处理文本数据的系统中。如下代码中我们使用Boost中提供的`base64_from_binary`头文件实现两个函数,其中`Base64Decode`函数接收一个字符串并对其进行解压缩操作输出解密后的原始字符串内容,其次`Base64Encode`函数用于将一个原始数据包压缩处理,有了这两个函数的支持,我们只需要在调用发送函数之前对数据进行压缩,在接收数据后在使用对等的函数对其进行解压缩即可,如下是该案例的完整实现。 阅读全文
posted @ 2023-11-08 09:05 lyshark 阅读(423) 评论(0) 推荐(0)
摘要: ARP中间人攻击(ARP spoofing)是一种利用本地网络的`ARP`协议漏洞进行欺骗的攻击方式,攻击者会向目标主机发送虚假`ARP`响应包,使得目标主机的`ARP`缓存中的`IP`地址和`MAC`地址映射关系被篡改,从而使得目标主机将网络流量发送到攻击者指定的虚假`MAC`地址。攻击者可以在不被发现的情况下窃取目标主机的网络流量、信息等,也可以进行其他的恶意行为,如中间人攻击、监听等。 阅读全文
posted @ 2023-11-07 13:05 lyshark 阅读(488) 评论(0) 推荐(0)
摘要: 序列化和反序列化是指将数据结构或对象转换为一组字节,以便在需要时可以将其存储在磁盘上或通过网络传输,并且可以在需要时重新创建原始对象或数据结构。序列化是将内存中的对象转换为字节的过程。在序列化期间,对象的状态被编码为一组字节,并可以保存或传输到另一个位置。序列化后的字节可以在之后进行反序列化,以将对象重建为在序列化之前的状态。反序列化则是将字节序列重新转换为对象或数据结构的过程。在反序列化期间,字节被反转回原始对象的状态,以便它可以被使用或操作。在Boost库中,提供了`text_oarchive`和`text_iarchive`于将C对象序列化为文本格式并将其反序列化回去,使用`text_oarchive`可以将C对象以可读文本形式输出,以便在文件或网络上进行存储或传输,与之对应的`text_iarchive`则可以将先前序列化的文本格式数据还原为C对象。 阅读全文
posted @ 2023-11-07 09:09 lyshark 阅读(529) 评论(0) 推荐(0)
摘要: Scapy是一款Python库,可用于构建、发送、接收和解析网络数据包。除了实现端口扫描外,它还可以用于实现各种网络安全工具,例如`SynFlood`攻击,`Sockstress`攻击,`DNS`查询攻击,`ARP`攻击,`ARP`中间人等。这些工具都是基于构造、发送和解析网络数据包来实现的,可以用于模拟各种网络攻击,测试网络安全防御措施等。Scapy是网络安全领域中非常有用的工具之一。 阅读全文
posted @ 2023-11-06 14:38 lyshark 阅读(833) 评论(0) 推荐(0)
摘要: 有了上面的基础那么传输文件的实现就变得简单了,在传输时通常我们需要打开文件,并每次读入`1024`个字节的数据包,通过`SSL`加密传输即可,此处的文件传输功能在原生套接字章节中也进行过详细讲解,此处我们还是使用原来的密钥对,实现一个服务端等待客户端上传,当客户端连接到服务端后则开始传输文件,服务端接收文件的功能。 阅读全文
posted @ 2023-11-06 09:22 lyshark 阅读(508) 评论(0) 推荐(0)
摘要: OpenSSL 中的 `SSL` 加密是通过 `SSL/TLS` 协议来实现的。`SSL/TLS` 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性。在 `SSL/TLS` 协议中,加密算法是其中最核心的组成部分之一,SSL可以使用各类加密算法进行密钥协商,一般来说会使用`RSA`等加密算法,使用`TLS`加密针对服务端来说则需要同时载入公钥与私钥文件,当传输被建立后客户端会自行下载公钥并与服务端完成握手,读者可将这个流程理解为上一章中`RSA`的分发密钥环节,只是`SSL`将这个过程简化了,当使用时无需关注传输密钥对的问题。 阅读全文
posted @ 2023-11-05 13:40 lyshark 阅读(1286) 评论(0) 推荐(1)
摘要: 通过上一节的学习读者应该能够更好的理解`RSA`加密算法在套接字传输中的使用技巧,但上述代码其实并不算完美的,因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果,而一旦公钥与私钥泄密则整个传输流程都将会变得不安全,最好的保护效果是`RSA`密钥在每次通信时都进行变换,依次来实现随机密钥对的功能。 阅读全文
posted @ 2023-11-04 14:24 lyshark 阅读(438) 评论(0) 推荐(0)
摘要: 在C++编程中,经常需要迭代一系列数字或其他可迭代对象。通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读。如果你使用过Python语言那么一定对Range语句非常的数据,我们可以使用C++来实现一个简单的Range封装,如下代码定义了一个名为Range的命名空间,其中包含一个RangeImpl类和相关的函数,用于生成指定范围内的数值序列。这序列生成器支持指定开始值、结束值和可选步长,确保生成的序列满足指定的条件。此代码简化了迭代数值序列的过程,提高了代码的可读性和可维护性,适用于处理不同数据类型的序列。 阅读全文
posted @ 2023-11-03 19:17 lyshark 阅读(624) 评论(0) 推荐(0)
摘要: RSA算法同样可以用于加密传输,但此类加密算法虽然非常安全,但通常不会用于大量的数据传输,这是因为`RSA`算法加解密过程涉及大量的数学运算,尤其是模幂运算(即计算大数的幂模运算),这些运算对于计算机而言是十分耗时。其次在`RSA`算法中,加密数据的长度不能超过密钥长度减去一定的填充长度。一般情况下,当RSA密钥长度为`1024`位时,可以加密长度为`128`字节,密钥长度为`2048`位时,可以加密长度为`245`字节;当密钥长度为`3072`位时,可以加密长度为`371`字节。因此,如果需要加密的数据长度超过了密钥长度允许的范围,可以采用分段加密的方法。我们可以将数据包切割为每个`128`个字符,这样就可以实现循环传输大量字符串。 阅读全文
posted @ 2023-11-03 08:50 lyshark 阅读(576) 评论(0) 推荐(0)
摘要: 在原生套接字编程中我们介绍了利用文件长度来控制文件传输的方法,本节我们将采用另一种传输方式,我们通过判断字符串是否包含`goodbye lyshark`关键词来验证文件是否传输结束了,当然了这种传输方式明显没有根据长度传输严谨,但使用这种方式也存在一个有点,那就是无需确定文件长度,因为无需读入文件所以在传输速度上要快一些,尤其是面对大文件时。 阅读全文
posted @ 2023-11-02 19:28 lyshark 阅读(567) 评论(0) 推荐(0)
摘要: 命令执行机制的实现与原生套接字通信一致,仅仅只是在调用时采用了Boost通用接口,在服务端中我们通过封装实现一个`run_command`函数,该函数用于发送一个字符串命令,并循环等待接收客户端返回的字符串,当接收到结束标志`goodbye lyshark`时则说明数据传输完成则退出,客户端使用`exec_command`函数,该函数通过`_popen`函数执行一条命令,并循环`fgets`读取字符串发送给服务端,最终传输一个结束标志完成通信。 阅读全文
posted @ 2023-11-02 08:41 lyshark 阅读(420) 评论(0) 推荐(0)
摘要: 多线程服务依赖于两个通用函数,首先`boost::bind`提供了一个高效的、简单的方法来创建函数对象和函数对象适配器,它的主要功能是提供了一种将函数和它的参数绑定到一起的方法,这种方法可以将具有参数的成员函数、普通函数以及函数对象转化为不带参数的函数对象。 阅读全文
posted @ 2023-11-02 08:39 lyshark 阅读(454) 评论(0) 推荐(0)
摘要: 端口流量转发(Port Forwarding)是一种网络通信技术,用于将特定的网络流量从一个端口或网络地址转发到另一个端口或地址。它在网络中扮演着一个非常重要的角色,在Python语言中实现端口转发非常容易。如下这段代码实现了一个基本的TCP端口映射,将本地指定端口的流量转发到指定的远程IP和端口。实现方式是在接收到本地客户端连接请求后,创建一个线程,将本地连接和远程连接之间的数据传输通过线程分别实现,这样就实现了数据在本地和远程之间的单向流动,从而实现了TCP端口映射。 阅读全文
posted @ 2023-11-01 11:09 lyshark 阅读(1835) 评论(0) 推荐(0)
摘要: 在读者了解了加密算法的具体使用流程后,那么我们就可以使用这些加密算法对网络中的数据包进行加密处理,加密算法此处我们先采用`AES`算法,在网络通信中,只需要在发送数据之前对特定字符串进行加密处理,而在接收到数据后在使用相同的算法对数据进行恢复即可,读者如果有了套接字编程的基础,那么理解这段代码将变得很容易。 阅读全文
posted @ 2023-11-01 08:40 lyshark 阅读(455) 评论(0) 推荐(0)
摘要: 使用`CRC32`还可实现图片去重功能,如下`FindRepeatFile`函数,运行后通过对所有文件做`crc`校验并将校验值存储至`CatalogueDict`字典内,接着依次提取`CRC`特征值并将其存储至`CatalogueList`列表内,接着通过统计特征值出现次数并将该次数放入到`CountDict`字典内,最后循环这个字典,并以此输出文件特征与重复次数,将重复值放入到`RepeatFileFeatures`列表内。 阅读全文
posted @ 2023-10-31 08:24 lyshark 阅读(418) 评论(0) 推荐(0)
摘要: Boost ASIO库是一个基于C++语言的开源网络编程库,该库提供了成熟、高效、跨平台的网络API接口,并同时支持同步与异步两种模式,ASIO库提供了多重I/O对象、异步定时器、可执行队列、信号操作和协程等支持,使得开发者可以轻松地编写可扩展的高性能网络应用程序,同时保持代码简洁、易于维护。在学习`ASIO`库之前,我们先来实现一个简单的地址解析功能,Boost库中提供了`ip::tcp::resolver`对象,该对象可用于解析给定主机名和端口号的`IP`地址,学会使用这个对象即可实现对特定主机域名地址的解析功能,如下封装实现了`GetDNSAddress`该函数传入一个域名,并输出该域名所对应的`IP`地址列表,并返回给`std::vector`容器内,其实现原理如下所示。 阅读全文
posted @ 2023-10-31 08:20 lyshark 阅读(725) 评论(0) 推荐(0)
摘要: 在当今的Web安全行业中,识别目标网站的指纹是渗透测试的常见第一步。指纹识别的目的是了解目标网站所使用的技术栈和框架,从而进一步根据目标框架进行针对性的安全测试,指纹识别的原理其实很简单,目前主流的识别方式有下面这几种。这些指纹识别方式都是通过分析目标网站的特定特征或行为,从中推断所使用的框架或技术。它们可以帮助渗透测试人员了解目标网站的技术栈和框架,从而进行针对性的安全测试和漏洞扫描。本节内容中我们将采用第二种方式通过哈希鉴定来确定目标指纹信息,此种方法需要有完善的特征库,这些库我们可以自行寻找制作,也可以使用已有的库经过转换后获取。 阅读全文
posted @ 2023-10-30 13:11 lyshark 阅读(676) 评论(0) 推荐(0)
摘要: AES算法是一种对称加密算法,全称为高级加密标准(Advanced Encryption Standard)。它是一种分组密码,以`128`比特为一个分组进行加密,其密钥长度可以是`128`比特、`192`比特或`256`比特,因此可以提供不同等级的安全性。该算法采用了替代、置换和混淆等技术,以及多轮加密和密钥扩展等机制,使得其加密效果优秀,安全性高,被广泛应用于各种领域中,如数据加密、文件加密、网络安全等。AES算法加密和解密使用的密钥是相同的,该算法加密和解密速度较快,适用于对大量数据进行加密解密的场景。在实际应用中,通常采用混合加密方式,即使用RSA算法加密对称加密算法中的密钥,再使用对称加密算法加密数据,以保证数据的机密性和加密解密的效率。 阅读全文
posted @ 2023-10-30 13:01 lyshark 阅读(1446) 评论(0) 推荐(2)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 38 下一页