自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liujiayu2的专栏

玩点技术

  • 博客(1514)
  • 资源 (33)
  • 收藏
  • 关注

原创 22.循环控制.rs

fn main() { //while 循环 let mut number = 1; while number != 4 { println!("{}", number); number += 1; } //Rust 语言到此教程编撰之日还没有 do-while 的用法,但是 do 被规定为保留字,也许以后的版本中会用到。 // Rust 中没有for循环使用三元语句控制循环,需要用 while 循环来代替 /.

2021-03-08 12:40:18 154

原创 21.println输出打印.rs

fn main() { let a = 12; println!("a is {0}, a again is {0}", a); println!("{{}}"); }

2021-03-08 12:39:44 211

原创 20.if条件语句.rs

fn main() { // if else let number = 7; if number < 5 { println!("值小于5"); } else if number >5 { println!("值大于5"); } else { println!("值为5"); } //Rust 中的条件表达式必须是 bool 类型,例如下面的程序是错误的 /...

2021-03-08 12:38:50 254

原创 19.函数的使用.rs

fn main() { another_function(5, 6); println!("{}",test_return()); println!("{}",test_return2());}// Rust不在乎您在何处定义函数,只需在某个地方定义它们即可。// Rust 中定义函数如果需要具备参数必须声明参数名称和类型:fn another_function(x: i32, y: i32) { println!("x 的值为 : {}", x); ...

2021-03-08 12:38:16 352

原创 18.self关键字.rs

#[derive(Debug)]struct MyType { name: String}impl MyType { fn do_something(self, age: u32) { //等价于 fn do_something(self: Self, age: u32) { //等价于 fn do_something(self: MyType, age: u32) { println!("name = {}", self.name); .

2021-03-05 11:31:19 162

原创 17.默认值Default.rs

fn test_1() { //没有初始化会编译报错.use of possibly-uninitialized `i` let i: i8 = Default::default(); let (x, y): (Option<String>, f64) = Default::default(); let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default(); println!("{}.

2021-03-05 11:30:05 419

原创 16.枚举中的option和result.rs

fn test_option() { //Option 是 Rust 标准库中的枚举类,这个类用于填补 Rust 不支持 null 引用的空白 /* enum Option<T> { Some(T), None, } */ let opt = Option::Some("Option_Some_str"); match opt { Option::Some(s.

2021-03-05 11:28:21 370 1

原创 15.枚举enum.rs

//枚举类在 Rust 中并不像其他编程语言中的概念那样简单,但依然可以十分简单的使用#[derive(Debug)]enum Book { Papery, Electronic,}//如果你现在正在开发一个图书管理系统,你需要描述两种书的不同属性(纸质书有索书号,电子书只有 URL),你可以为枚举类成员添加元组属性描述enum Book2 { Papery(u32), Electronic(String),}//如果你想为属性命名,可以用结构体语法e.

2021-03-05 11:27:36 157

原创 14.结构体struct.rs

//Rust 里 struct 语句仅用来定义,不能声明实例,结尾不需要 ; 符号,而且每个字段定义之后用 , 分隔#[derive(Debug)]struct Site { domain: String, name: String, nation: String, found: u32}fn main() { let runoob = Site { domain: String::from("www.runoob.com"), .

2021-03-05 11:24:57 231

原创 13.迭代器.rs

/*在Rust中,迭代器共分为三个部分:迭代器、适配器、消费者。_迭代器_给你一个值的序列_适配器_操作迭代器,产生一个不同输出序列的新迭代器_消费者_操作迭代器,产生最终值的集合迭代器本身提供了一个惰性的序列,适配器对这个序列进行诸如筛选、拼接、转换查找等操作,消费者则在前两者的基础上生成最后的数值集合更多请看https://blog.csdn.net/guiqulaxi920/article/details/78823541*/use std::collections::Has.

2021-03-05 11:23:31 154

原创 12.映射表map.rs

/* 映射表*/use std::collections::HashMap;fn test_1() { println!("-------------------------test_1-------------------------"); let mut map = HashMap::new(); //这里没有声明散列表的泛型,是因为 Rust 的自动判断类型机制。 map.insert("color", "red"); map.insert("size",.

2021-03-05 11:20:41 176

原创 11.向量vector.rs

/*向量(Vector)是一个存放多值的单数据结构,该结构将相同类型的值线性的存放在内存中。向量是线性表,在 Rust 中的表示是 Vec<T>。向量的使用方式类似于列表(List),我们可以通过这种方式创建指定类型的向量:*/fn test_1() { let vector: Vec<i32> = Vec::new(); // 创建类型为 i32 的空向量 let vector = vec![1, 2, 4, 8]; // 通过数组创建向量 .

2021-03-05 11:20:09 205

原创 10.切片slice.rs

//切片(Slice)是对数据值的部分引用。//..y 等价于 0..y//x.. 等价于位置 x 到数据结束//.. 等价于位置 0 到结束fn main() { //最简单、最常用的数据切片类型是字符串切片(String Slice)。 let s = String::from("broadcast"); let len = s.len(); let part1 = &s[0..5]; let part2 = &s[5..len];.

2021-03-05 11:19:37 211

原创 9.整型安全操作.rs

fn main() { //值得注意的是他们返回的都是Option类型 let t = 0x12345678u32.checked_mul(15); println!("{:?}",0x12345678u32.checked_mul(15));//乘法 println!("{:?}",0x12345678u32.checked_add(15));//加法操作 println!("{:?}",100u32.checked_div(1)); println!.

2021-03-04 11:37:57 152 1

原创 8.元组tup.rs

//元组用一对 ( ) 包括的一组数据,可以包含不同种类的数据fn main() { let tup:(i32,f64,&str) = (123,0.456,"abcd"); println!("{}-{}-{}",tup.0,tup.1,tup.2); let (x,y,z) = tup; println!("{}-{}-{}",x,y,z);}

2021-03-04 11:37:21 165 1

原创 7.字符串.rs

/**/fn test_1() { //新建字符串: let string = String::new(); //字符串长度: let len = string.len(); //基础类型转换成字符串: let one = 1.to_string(); // 整数到字符串 let float = 1.3.to_string(); // 浮点数到字符串 let slice = "slice".to_string();.

2021-03-04 11:36:40 234 1

原创 6.变量的使用.rs

fn main() { let mut a = 123; // a = "abc"; 错误在于当声明 a 是 123 以后,a 就被确定为整型数字,不能把字符串类型的值赋给它。 // a = 4.56; 错误在于自动转换数字精度有损失,Rust 语言不允许精度有损失的自动数据类型转换。 //不带mut也可以改变值,变量的值可以"重新绑定" let b = 123; let b = 456; // 虽然 Rust 有自动判断类型的功能,但...

2021-03-04 11:35:53 192 1

原创 5.注释.rs

/////////////////////////////////////// 这种事第二类注释,用于说明本模块的功能。一般置于模块文件的头部。(好像必须放在头部)/////////////////////////////////////////! note: inner doc comments like this (starting with `//!` or `/*!`) can only appear before items//! # The Rust Standard Library/..

2021-03-04 11:35:10 207 1

原创 4.extern关键字.rs

/*在rust中有两种用法1.导入外部的包 extern crate mylib 。在最新的rust2018中已经可以不在声明2.extern "C" 目测和C语言完全一致每一个crate就是一个根模块。如:exp, lip, lip1, lip2, lip3。独立的一个文件就是一个mod,文件名就是mod名;但是main.rs, lib.rs, mod.rs除外,mod.rs的模块名就是其所在目录的名字; 而main.rs, lib.rs 的目录结构,如:exp/src/main.rs或 .

2021-03-04 11:34:20 1120 1

原创 3.type关键字.rs

/*你可以使用 type 关键字声明另一类型的别名(用法和C++一样一样的)类型别名:type aliasestype Name = String;type 也可以用来声明trait的关联类型,详细请看“特性trait”章节更多详细信息请看:https://github.com/rooat/RustLearn/blob/master/src/ch19-04-advanced-types.md*/fn test_1() { type Name = String; l.

2021-03-04 11:33:37 295 1

原创 2.static关键字.rs

/*Rust 全局变量(static): 1.定义如下 static NUM: i32 = 100; 2.全局变量和常量类似,但是一个重要的区别就是,全局变量不会被内联,在整个程序中,全局变量只有一个实例,也就是说所有的引用都会指向一个相同的地址。 3.定义全局变量使用关键字static,而定义常量使用const,定义普通变量使用let 4.和常量不同,全局变量可以定义为可变的(mut) 5.因为全局变量可变,就会出现被多个线程同时访问的情况,因而引发内存不安全..

2021-03-04 11:32:09 185 1

原创 1.const关键字.rs

/*定义常量与定义普通变量的区别: 1.关键字是const而不是let 2.常量声明时候必须指明类型,编译器不会进行自动推导 3.定义常量时变量的命名规则一般是全部大写(如NUM),非强制,但是会有warning。 4.常量可以在任意作用域进行定义,而定义的常量贯穿整个程序的生命周期。在编译的时候,编译器会尽 可能将其内联到代码中,所以在不同地方对同一常量的引用并不能保证引用到相同的内存地址。 5.常量的赋值只能是常量表达式/数学表达式,也就是说必须是.

2021-03-04 11:30:28 240 1

原创 Rustup 管理工具

Rustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换 —— 如编译器 rustc 和标准库,该应用所支持的平台数量不少。事实上,rustc 本身就支持大约 56 个平台,而 rustup 实际上能够为其中14个平台管理编译器,为30个平台管理标准库。一般安装不会只安装rust编译器,而是下载rustup工具,它是rust的安装器(安装编译器、标准库、Cargo等)和rust的版本管理工具(可切换rust版本)安装rustup:curl https://sh.rustup

2021-03-04 11:19:18 1408 1

原创 Rust学习资料大全

2021年接触了区块链,接触了波卡,接触了rust,接触了一个全新的世界,愿自己可以有一个好的发展,加油!!!rust语言是一门新兴起的编程语言,作为一个编程爱好者很想把他学精学透。但是一门编程语言没有个一年两载很难学精了,但是如果不进行总结就会进入到驴拉磨或者狗熊掰棒子的境地,所以稍稍做一些总结吧,但是大体上以后以学习区块链为主,以学习编程语言为辅,语言只是一门工具(小组长说的,想想还蛮有道理的)学习网站集合1.https://www.runoob.com/rust/rust-tutorial.h

2021-03-02 19:01:25 708 1

转载 gRPC简介及简单使用(C++)

原文连接:https://blog.csdn.net/fengbingchun/article/details/100626030gRPC是一个现代的、开源的、高性能远程过程调用(RPC)框架,可以在任何平台运行。gRPC使客户端和服务器端应用程序能够透明地进行通信,并简化了连接系统的构建。gRPC支持的语言包括C++、Ruby、Python、Java、Go等。gRPC默认使用Google的Protocol Buffers,关于Protocol Buffers的介绍可以参考:https://blog

2020-12-25 20:12:03 3018 1

转载 HTTP 2.0 协议

1.HTTP/2较HTTP/1.1优化亮点HTTP/2是一个二进制协议,其基于“帧”的结构设计,改进了很多HTTP/1.1痛点问题。下面列举一些最常被津津乐道的改进之处:多路复用的流 头部压缩 资源优先级和依赖设置 服务器推送 流量控制 重置消息以上列举的每一项都值得做深入细致的研究,这里就只针对“多路复用”功能的实现进行深入的学习。2.“多路复用”的原理解析2.1 什么是多路复用?网络上有一张图能清晰的解释这个问题:HTTP/1.1协议的请求-响应模型大家都是熟悉的,我们

2020-12-25 20:09:35 363

转载 QUIC协议初探

1、QUIC介绍(1)QUIC(Quick UDP Internet Connections)协议是一种全新的基于UDP的web开发协议。可以用一个公式大致概括:TCP + TLS + HTTP2 = UDP + QUIC + HTTP2’s API从公式可看出:QUIC协议虽然是基于UDP,但它不但具有TCP的可靠性、拥塞控制、流量控制等,且在TCP协议的基础上做了一些改进,比如避免了队首阻塞;另外,QUIC协议具有TLS的安全传输特性,实现了TLS的保密功能,同时又使用更少的R.

2020-12-25 20:05:40 609

转载 QUIC 协议产生的背景和核心特性

作者介绍:罗成,腾讯资深研发工程师。目前主要负责腾讯 stgw(腾讯安全云网关)的相关工作,整体推进腾讯内部及腾讯公有云,混合云的七层负载均衡及全站 HTTPS 接入。对 HTTPS,SPDY,HTTP2,QUIC 等应用层协议、高性能服务器技术、云网络技术、用户访问速度、分布式文件传输等有较深的理解。本文主要介绍 QUIC 协议产生的背景和核心特性。写在前面如果你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度。特别是弱网络的时候能够提升 20% 以上的访问速度..

2020-12-25 20:03:44 620

转载 TCP Fast Open知识

TCP Fast Open定义TCP Fast Open(TFO)是用来加速连续TCP连接的数据交互的TCP协议扩展,原理如下:在TCP三次握手的过程中,当用户首次访问Server时,发送SYN包,Server根据用户IP生成Cookie(已加密),并与SYN-ACK一同发回Client;当Client随后重连时,在SYN包携带TCP Cookie;如果Server校验合法,则在用户回复ACK前就可以直接发送数据;否则按照正常三次握手进行。起源由Google于2011年的论文(http:/.

2020-12-25 20:01:58 1069

转载 TCP的拥塞控制

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。当输入的负载到达一定程度 吞吐量不会增加,即一部分网络资源会丢失掉,网络的吞吐量维持在其所能控制的最大值,转发节点的缓存不够大这造成分组的丢失是拥塞的征兆。TCP的四种拥塞控制算法1.慢开始2.拥塞控制3.快重传4.快恢复假定:1.数

2020-12-13 12:02:33 231

转载 TCP滑动窗口

TCP窗口机制#TCP header中有一个Window Size字段,它其实是指接收端的窗口,即接收窗口。用来告知发送端自己所能接收的数据量,从而达到一部分流控的目的。其实TCP在整个发送过程中,也在度量当前的网络状态,目的是为了维持一个健康稳定的发送过程,比如拥塞控制。因此,数据是在某些机制的控制下进行传输的,就是窗口机制。窗口缩放因子(Window Scaling)#以前,window size最大为2的16次方,为65535,随着宽带不断提高,65535字节已经小了,为了突破限制

2020-12-13 12:00:51 592

转载 TIME_WAIT简介

在TCP断开的过程中会有四个状态变化过程,如下图所示:在连接撤销过程中,有如下过程:1.HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。2.HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。3.一段时间过后,HOST2上的应用程序关闭它那边的连接,引发一个FIN消息给HOST1。4.HOST1给HOST2发送一个确认消息...

2020-12-13 11:57:28 611

转载 MTU介绍

数据链路层:用于俩个设备(同一种数据链路节点)之间进行传递一、认识以太网“以太网”不是一种具体的网络,而是一种技术标准,包含了数据链路层的内容,也包含了一些物理层的内容 以太网必须使用双绞线 以太网是当前最广泛的局域网技术以太网的帧格式:目的地址:6字节,网卡中的硬件地址,固定在网卡上的 源地址:6字节,网卡中的硬件地址(MAC) 类型:协议类型:IP,ARP,RARP 数据:46~1500字节, CRC:循环冗余验证认识MTU:MTU,最大传输单元,相当于发快递时对包裹

2020-12-13 11:55:08 5057

转载 TCP的ACK原理和延迟确认机制

原文地址:https://blog.csdn.net/gamekit/article/details/53898802一、ACK定义TCP协议中,接收方成功接收到数据后,会回复一个ACK数据包,表示已经确认接收到ACK确认号前面的所有数据。ACK字段长度为32位,能表示0~2^32-1之间的值。二、ACK作用发送方在一定时间内没有收到服务端的ACK确认包后,就会重新发送TCP数据包。发送方收到了ACK,表明接收方已经接收到数据,保证了数据的可靠达到。三、ACK机制接收方在接收到数

2020-12-13 11:52:40 2201

转载 golang tcp keepalive实践

前文中已经介绍了TCP keep alive的做了详尽说明,本文结合golang,介绍如何使用TCP keep alive。目前golang net包不提供TCP keep alive空闲多长时间开始探测、探测总次数直接设置。可以使用第三方包。1.下载第三方包git clone git@github.com:felixge/tcpkeepalive.git注意放到GOPATH目录下。2.例子2.1 serverserver端,接受client连接请求,建立连接后,设置..

2020-07-02 21:45:42 1092

转载 TCP keepalive的详解(解惑)

TCP是面向连接的,一般情况,两端的应用程序可以通过发送和接收数据得知对端的存活。当两端的应用程序都没有数据发送和接收时,如何判断连接是否正常呢?这就是SO_...

2020-07-02 21:41:07 1435

转载 Go的自动化测试

自动化测试,是在预设条件下运行系统或应用程序,评估运行结果,预先条件包括正常条件和异常条件。Go本身提供了一套轻量级的测试框架,相对低级,但不过还是有效的。它依赖...

2020-07-01 22:33:49 923

转载 Go语言初探gRPC服务

原文链接:https://www.jianshu.com/p/20ed82218163环境:2018-05-12 protoc 3.5.1 go1.10.1 windowsgRPC: Google主导开发的RPC框架,这里不再赘述。准备工作先安装Protobuf 编译器 protoc,下载地址:https://github.com/google/protobuf/releases我的是windows,将压缩包bin目录下的exe放到环境PATH目录中即可。然后获取插件支持库 //

2020-06-27 18:32:31 1305

转载 go使用kafka

原文链接:https://www.cnblogs.com/angelyan/p/10800739.htmlwindows上kafka的安装1.安装jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html下载需要注册oracle添加环境变量JAVA_HOME=C:\Program Files\Java\jre1.8.0_2112.安装Zookeeper下载

2020-06-26 13:09:33 929

转载 golang 使用 redis 的教程

原文链接:https://blog.csdn.net/wangshubo1989/article/details/75050024/生命不止,继续 go go go !!!以前介绍过golang中如何使用sqlite3:《Go实战–go语言操作sqlite数据库(The way to go)》今天跟大家分享的是如何在golang中使用redis数据库。##何为redis官网:https://redis.io/Redis is an in-memory database open-s

2020-06-25 12:37:38 706

Teleport+Ultra+中文简体破解版

很不错 对网页开发的学习有帮助

2017-08-16

SSDTHook实现进程保护

SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。 这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。 SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。 通过修改此表的函数地址可以对常用 Windows 函数及 API 进行 Hook,从而实现对一些关心的系统动作进行过滤、监控的目的。 一些 HIPS、防毒软件、系统监控、注册表监控软件往往会采用此接口来实现自己的监控模块。

2017-06-09

SkinSharp开发库+百款皮肤+皮肤编辑器

SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件。通用换肤库(SkinSharp)能在软件添加换肤功能,支持所有主流的编程语言,比如C++、Delphi、VB6、.net、易语言等等。

2017-05-24

USB 摄像头

USB 摄像头, 亲测可编译可运行。

2017-05-16

minhook-1.3.2

对windows API钩子感兴趣的人都知道有一个优秀的库被微软命名为'Detours'。它真的很有用,但是它的免费版本(Express)是不支持X64。它的收费版本(Professional)支持x64,但是对我来说太昂贵了。微软说它值一万美元。 因此我决定从零开始写我自己的库。但是我没有将Detours的功能完美的复制到我的库中,它仅有API钩子功能,因为这就是我想要的。

2017-05-09

python2.7.8 32

python2.7.8 32位安装包及相关模块安装包,还有32位的PyScripter。 资源包含的文件如下: python-2.7.8.msi matplotlib-1.4.0.win32-py2.7.exe MySQL-python-1.2.4b4.win32-py2.7.exe numpy-1.8.1-win32-superpack-python2.7.exe pyparsing-2.0.2.win32-py2.7.exe python-dateutil-2.2.win32-py2.7.exe six-1.7.3.win32-py2.7.exe PyScripter-v2.5.3-Setup.exe

2016-05-25

detours HOOK API

detours HOOK API 官网网速太慢,谁用谁知道

2015-12-23

C++解析JSON

C++解析JSON

2015-12-02

AStar 算法实例

A星算法 对于空地左键单击后会产生障碍,对障碍左键单击会消除障碍,对于起点,两次左键盘单击会消除起点,如果不存在起点,单击右键会产生起点,如果存在起点不存在终点,单击右键会产生终点,如果既存在起点又存在终点,单击右键会消除终点,点击开始寻路回画出路径

2015-07-18

Visual Assist X补丁

码农们,当你使用VAX助手提示更新的时候,当你安装好新版打开VS提示注册的时候,你是否到处在找patch补丁,每次更新你都蛋碎一样到处寻找,这次我们给大家带来超级通用和谐补丁,每次更新VA_X后均可一如既往的正常使用,免去码农到处寻找补丁、反复打补丁、补丁版本不支持现有IDE的痛苦,翠花上菜!

2015-06-18

CrashFinder2.55

CrashFinder,找到崩溃代码行

2015-05-26

appverifier

AppVerifier,专门用来检测那些用普通方法检测不出的意想不到的bug(比如内存溢出、错误句柄使用等)。而且AppVerifier使用非常简单,

2015-05-22

强制复制软件

强制复制软件

2015-04-22

破解存储过程的加密

破解存储过程的加密

2015-04-22

Python平台

Python平台

2015-04-05

VC西红柿插件破解版

VC西红柿插件破解版

2015-04-05

各种各样的按钮(VC源码)

各种各样的按钮(VC源码)

2014-11-17

瞬间找文件

瞬间找文件

2014-09-05

密码查看器.zip

密码查看器.zip

2014-09-05

VC助手破解版

VC助手

2014-09-05

class-loader测试工程

class-loader测试工程

2023-06-01

mainboard测试工程

mainboard测试工程

2023-05-31

编码测试工程.rar

编码测试工程

2019-11-20

cmake-3.14.3-win64-x64.zip

cmake-3.14.3 最新安装版 CMake是一个开源的跨平台工具系列,旨在构建,测试和打包软件。CMake用于使用简单的平台和独立于编译器的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用的本机makefile和工作空间。

2019-09-05

luac逆向工具

luac编译之后的逆向,亲测可用 详细亲看:https://blog.csdn.net/liujiayu2/article/details/81940701

2018-08-22

ffmpeg推送摄像头rtmp流

详细信息请看: https://blog.csdn.net/liujiayu2/article/details/80880815

2018-07-02

IOCP网络模型

详细信息请看: https://blog.csdn.net/liujiayu2/article/details/80772904

2018-06-28

跨平台高性能TCP服务器框架 &boost;

基于boost的asio封装的高性能TCP服务器。asio已经有很好的事件封装机制,只有底层事件,没有针对TCP建立会话机制;也没有多包进行合包,以包为单位的事件提交机制。由于以上多种原因,决定对boost库进行更高的抽象和封装,对开发者提供一种更为便利的使用接口。

2018-06-25

网狐IOCP压缩版

网狐IOCP压缩版,自己整理了两天,3分不算多吧, 遗留问题: 1.由于不太会使用去掉了网络事件(收发数据、网络接受、网络断开)进队列,发的时候直接发送,接收的时候直接回调。不知道原作者都放进队列里 面有哪些确切的好处。 暂时先这样,后续更新。。。

2018-06-22

用C++实现的壳

基础版壳所实现的功能: 1.在原程序中添加一块区段,将壳部分的代码移植进去。 2.在程序启动前优先获得控制权,执行完自己的代码以后再将控制权交还给原程序。 3.对代码段进行简单的亦或加密。 4.对原程序的导入表(IAT)进行修复。 5.如果原程序开启了随机基址,则对源程序进行重定位修复。

2017-09-14

像加载DLL一样加载EXE

像加载DLL一样加载EXE 介绍 你可能已经被警告过,不要用LoadLibrary()加载可执行文件,你可能尝试这么做过,然后程序就崩溃了,所以你可能会认为这是不可能的。 但实际上这是可行的,本文就将介绍具体的方法。

2017-09-10

protobuf-2.61最新版

protocolbuffer 以下简称PB 是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了三种语言的实现:java c++ 和 python 每一种实现都包含了相应语言的编译器以及库文件 由于它是一种二进制的格式 比使用 xml 进行数据交换快许多 可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换 作为一种效率和兼容性都很优秀的二进制数据传输格式 可以用于诸如网络传输 配置文件 数据存储等诸多领域 ">protocolbuffer 以下简称PB 是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了三种语言的实现:java c++ 和 python 每一种实现都包含了相应语言的编译器以及库文件 由于它是一种二进制的格式 比使用 xml

2017-08-28

Gh0stVC6到VS2010迁移所有问题的解决方法

gh0st 由VC6.0开发的工程项目,移植到VS2010环境下,会出现各种错误和警告,此类错误多数是由编译器和环境不兼容导致,除修改工程下的某些属性参数外,还需手动修改编译过程中出现的一些错误。

2017-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除