自定义博客皮肤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的专栏

玩点技术

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

原创 百度自动驾驶apollo源码解读23:/cyber/time模块和/cyber/timer模块

这两个都是和时间相关的模块,一起解读吧。

2023-06-15 15:01:06 4982 3

原创 百度自动驾驶apollo源码解读22:/cyber/node模块和/cyber/service模块

为什么要同时解读两个模块?因为:原作者把service单独领出来做了个模块,个人感觉没必要,此部分逻辑放在node模块之下更贴切。本篇文章做了统一解读。

2023-06-08 15:16:49 1077

原创 百度自动驾驶apollo源码解读21:/cyber/component 模块

成员属性有四个is_shutdown_、node_、config_file_path_、readers_,前三个都好理解的,其中的node_成员要说一下,所有Component都自带了Node成员指针,无需自己新建一个,一个Component对应一个Node对于最后一个成员readers_,不是很好理解,既然有了reader列表那是不是writer也安排一下?TimerComponent类是一个普通类,他默认提供了一个定时器的功能,就是可以在配置文件里面写一下多长时间回调一次Proc()。

2023-05-31 15:25:00 593

原创 百度自动驾驶apollo源码解读20:/cyber/mainboard 模块

该模块主要包含3部分:进程主函数、ModuleArgument类、ModuleController类。

2023-05-30 10:58:37 466

原创 百度自动驾驶apollo源码解读19:/cyber/class_loader 模块

简单来讲这个模块是干什么用的:大型系统一般不是由单个可执行程序代码组成的,而是夹杂了很多动态库,linux下的就是so文件,如何把这些so里面的类导出来,可执行程序如何动态的加载他们,比如一共写了6个so,只想动态的加载其中3个,运行过程中甚至想卸载掉其中的几个用以释放相关的资源,这个模块就是干这个工作的。

2023-05-29 17:31:52 363

原创 百度自动驾驶apollo源码解读18:cyber通讯系统

这些通讯方式是不是仍有优化点?我们现在清晰的知道,第三种通讯方式当数据量大的时候是非常不太稳定,是不是设计有问题呢,或者说fastrtps库已经到达了极限,看清楚源代码有助于解决这些问题。今天开始研究cyber的通讯模块,这个东西网上分析和解说有一大堆,想要自己真正理解还是要读懂源代码,通讯模块是最复杂的模块吧。以下模块都是通讯模块的一员,其实有了前面的基础,这些代码难倒不是很难,就是体量大,需要梳理和总结。

2023-05-09 14:48:38 504 2

原创 百度自动驾驶apollo源码解读17:/cyber/python 模块

我们从上述pyton写的talker说起,分析来分析去,最后的结果就是格式为proto的ChatterBenchmark数据最后被当做message::PyMessageWrap类型写出去了,或者更确切的说是ChatterBenchmark先调用了SerializeToString(), 这个字符串作为PyMessageWrap的成员data_,最后将PyMessageWrap发布到了cyber里面,怪不得叫做Wrap就是再给包裹一层,这么做的意义是什么呢?系统要安装基本的编译库,和python开发库。

2023-04-27 15:49:03 620

原创 百度自动驾驶apollo源码解读16:/cyber/message 模块

google::protobuf::Message,并且会自带很多接口函数,比如查询、设置字段值的,查询设置整体proto属性值的,比如SetTypeName、ByteSizeLong等,有静态函数,也有成员函数,还有序列化、反序列化的。消息头,序列化的时候将次头放在protobuf形成的内存前面,主要记录一些属性值,比如消息序列号、消息体的大小等,message_traits里面有两个接口ParseFromHC和SerializeToHC。于实现不同的消息种类,最后给外面呈现的统一接口名字。

2023-04-26 13:59:02 615

原创 百度自动驾驶apollo源码解读15:懒汉式单例宏DECLARE_SINGLETON

此处我给加了注释贴出来。

2023-04-25 16:49:18 274

原创 百度自动驾驶apollo源码解读14:接口存在判定宏DEFINE_TYPE_TRAIT

首先是有一个模板类(使用的是struct),有一个模板参数T,它里面有一个成员变量value类型为bool,和两个成员重载模板函数Test,然后value的值是通过调用Test函数获取到的,具体调用那个函数呢?按照编译规则(个人猜测)应该首先尝试调用Test(decltype(&Class::func)*),如果调用了此函数,就会返回true,如果没有调用此函数就调用后补函数Test(...),返回false,为什么叫他后补函数呢,因为他的参数很特殊,三个点,可传递任意参数,当然意味着他的优先级比较低。

2023-04-24 17:36:29 216

原创 百度自动驾驶apollo源码解读13:无锁无界队列UnboundedQueue

我这边给加了注释和测试程序。

2023-03-17 11:09:26 277

原创 百度自动驾驶apollo源码解读12:线程池

在激光雷达里面看到了一个线程池的代码,默认项目里面没有,是激光雷达厂商提供的吧。仅用一个头文件去实现,此处贴出来源码吧。utility.cpp实现文件。utility.h头文件。写一个简单的测试例子。

2023-03-16 14:18:26 1432 4

原创 百度自动驾驶apollo源码解读11:无锁哈希表AtomicHashMap

直接上源代码吧,代码是阿波罗团队写的源代码,我这边给加了注释。简单写了个main.cpp对一些功能进行测试。

2023-03-10 13:15:46 520

原创 linux下给CPU增加指定百分比的压力

一台计算机会因为当前CPU的占率不同情况表现出不同的稳定性和实时性以及其他性能情况。需要编写一个程序将一个CPU或者多个CPU占用到指定值的占用率,比如50%。很多工具都是直接一颗CPU占满,意义不大。故此特地写一个代码。

2023-01-27 15:09:12 1217

原创 百度自动驾驶apollo源码解读10:信号槽机制

大家都知道Qt的信号槽机制给编程带来了极大的便利,阿波罗通讯主要通过同一channel的读写,简而言之就是发布订阅模型,这个时候信号槽的机制就显得极为实用,阿波罗在cyber基础类库里面用C++模板类自己写了一套信号槽机制,值的学习。1.和qt的信号槽差不多,不处理返回值,即发送信号函数没有返回值,槽函数执行不处理返回值2.信号、槽、连接都封装成了类3.推荐信号和槽参数一致4.主要用到地方:底层通信机制来看看怎么使用...

2022-07-08 16:32:09 595

原创 百度自动驾驶apollo源码解读9:无锁有界队列BoundedQueue

在此贴出来apollo源代码,本篇只是源码解读,想要看此文件依赖的相关文件可访问:https://github.com/ApolloAuto/apollo/tree/master/cyber/base1.整个类是个数组,指定大小的数组,意味着数据是连续存储的。2.Init的时候会申请好相关的内存,大小为(N+2)*单个大小,为什么是n+2?想不通3.数据的存储如下图所示 队列大小是固定的,超过指定数量再进行加入会失败。数据是循环往复利用的,感觉上就是环形内存池4.之所以是无锁队列是因为底层有原子操作5

2022-07-07 13:53:06 766

原创 百度自动驾驶apollo源码解读8:/cyber/sysmo 模块

SysMo是一个用DECLARE_SINGLETON宏实现的单例类,在公开函数cyber::Init里面执行了SysMo::Instance进行实例化,SysMo构造函数执行了自己的Start函数,检测环境变量sysmo_start的值是否为1,若为1则开启一个线程不停的调用scheduler::Instance()->CheckSchedStatus,调用间隔为100毫秒,上述CheckSchedStatus函数执行逻辑是遍历所有执行器的快照状态,是否为空闲,若在干活则输出干了多长时间了以及协程的名字,线

2022-07-01 13:05:15 587

原创 百度自动驾驶apollo源码解读7:/cyber/scheduler 模块

cyber提供的三大功能:调度功能、通讯功能、组件。其中调度功能最核心的逻辑在/cyber/scheduler下面,本篇文章主要自己对该模块的研读和理解,可能会有错误,看到的朋友帮忙点播一下。首先看下牵涉到协程的一些基本概念图谱,对协程有些基本的概念和了解 再次看下阿波罗设计的协程-调度系统类关系图谱,这个理解这个图谱会对阅读源代码有所帮助,推荐边看源代码边看图谱 里面有两大调度方案:classic(经典)和choreography(编排),图谱如下 进入正文cyber主要提供了两种协程的调度方案class

2022-06-24 16:11:28 2366

原创 百度自动驾驶apollo源码解读6:/cyber/croutine 模块

本篇解读一下/cyber/croutine模块,该模块文件比较少,detail文件夹,CRoutine类,RoutineFactory模板类1.detail文件夹主要实现类似linux下的ucontext_t结构和其四个关联函数getcontext、setcontext、makecontext、swapcontext.实现堆栈的创建保存和切换,为什么不使用linux自带api而是要自己用汇编实现呢?有博主文章说linux那一套api最终要牵扯到系统内核里面,cyber自己实现这一套完全是应用层的,可以进一

2022-06-17 16:45:57 964 2

原创 百度自动驾驶apollo源码解读5:cyber的Service踩坑笔记

1.坑描述:不用临时变量接收函数node->CreateService返回值导致服务创建失败2.前戏:cyber作为ROS的替代品提供了主要两大功能:调度功能和通讯功能.通讯功能包括订阅发布模式和一问一答的Service模式.本篇主要讲的是Service模式下的一个坑.Service的主要实现代码在/cyber/service下面,仅4个文件(两个头文件两个实现文件).可谓相当的精巧.怎么使用呢?源代码里面/cyber/examples/service.cc.50多行代码展示了如何使用他的Service功能

2022-06-08 16:15:26 771 2

原创 百度自动驾驶apollo源码解读4:/cyber/task 模块

在这里就不贴源代码,太占空间了,源码连接:https://github.com/ApolloAuto/apollo/tree/master/cyber/taskcyber下面的task包是使用cyber协程的入口包,共有5个文件如下:BUILD文件:构建文件task_manager.h文件:任务管理头文件task_manager.cc文件:任务管理主文件task_test.cc文件:任务管理测试文件task.h文件对task_manager封装使用的文件构建文件和测试文件不再赘述,和其他包类似,比

2022-06-01 13:43:58 1145

原创 百度自动驾驶apollo源码解读3:进程或线程设置调度策略、优先级

1.利用setpriority调整“进程”优先级,测试优先级对进程的影响(注:是进程而不是线程)定义函数 int setpriority(int which,int who, int prio);参数1 : PRIO_PROCESS who为进程识别码 PRIO_PGRP who 为进程的组识别码 PRIO_USER who为用户识别码参数2 :参数3 :prio介于-20至20之间。代表进程执行优先权,数值越低代表有较高的优先次序,执行会较频繁。此优先权默认是0,而只有超级用户(root)

2022-05-27 14:22:21 1373

原创 百度自动驾驶apollo源码解读2:进程或线程绑定指定CPU

1.简介CPU绑定指的是在多CPU的系统中将进程或线程绑定到指定的CPU核上去执行。在Linux中,我们可以利用CPU affinity属性把进程绑定到一个或多个CPU核上。CPU Affinity是进程的一个属性,这个属性指明了进程调度器能够把这个进程调度到哪些CPU上。 该属性要求进程在某个指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器。CPU Affinity分为2种:soft affinity和hard affinity。soft affinity只是一个建议,如果不可避免,调

2022-05-20 17:26:59 991

原创 百度自动驾驶apollo源码解读1:std::atomic实现读写锁

直接上源代码吧,代码是阿波罗团队写的源代码,我这边给加了注释/*1.有一说一这个读写锁的设计还是很牛逼的,以我自己感觉atomic和读写完全不相干的东西竟然可以用前者实现后者2.这个设计理念是不是百度阿波罗团队自创的呢?好像不是,这有个连接,设计理念很相似,15年的博客: https://blog.csdn.net/10km/article/details/49641691*/#ifndef CYBER_BASE_ATOMIC_RW_LOCK_H_#define CYBER_BASE_

2022-05-12 15:39:27 1667

原创 38.借用与引用

/*1.rust中借用和引用的附带功效都一样,就是都有生命周期。借用使用&关键字,引用使用ref关键字。借用的对象是必须存在的,引用的对象可以虚拟的,后期附上对象。2.match的模式匹配上只能使用 ref,在函数声明上只能使用&来表示引用类型3.非要给区分ref和&到底哪个是引用,哪个是借用。我们可以先从词性划分,引用我归类为名词,而借用归类为动词。&A在表达式上 表示借用A,这是一个动作,那结果就是产出一个引用类型。所以let ref B表示声明了一个引用类型,它.

2021-03-12 11:05:42 1073

原创 37.rust属性.txt

=====================================================================================================================================元素 在Rust中,Item是Crate(库)的一个组成部分。它包括 extern crate声明 use声明 模块(模块是一个Item的容器) 函数 type定义 结构体定义 枚举类型定义 常量定义 静.

2021-03-09 12:53:36 369

原创 36.rustc编译参数.txt

/* --cfg SPEC - 传入自定义的条件编译参数,使用方法如:rustc --cfg hello main.rs--crate-type - 指定编译输出类型,它的参数包括 rustc --crate-type staticlib myhello.rs 链接库生成.a的链接库 bin - 二进行可执行文件 -> bin或者lib二选一 lib - 编译为库 -> rlib - Rust库 .

2021-03-09 12:53:02 869

原创 35.cargo配置参数.txt

######################################################################## 详细教程地址:https://learnku.com/docs/cargo-book/2018/# https://www.jianshu.com/p/22a467204def?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_so.

2021-03-09 12:52:05 1093

原创 34.rust宏.txt

/*更多请看:http://blog.hubwiz.com/2020/01/30/rust-macro/https://github.com/rooat/RustLearn/blob/master/src/appendix-04-macros.mdhttps://rustcc.gitbooks.io/rustprimer/content/macro/macro.htmlhttps://rust-by-example.budshome.com/macros.html定义:Rust宏让你可以发.

2021-03-09 12:51:34 385

原创 33.文件与 IO.rs

use std::fs;use std::fs::File;use std::fs::OpenOptions;use std::io::prelude::*;use std::io::stdin;fn main() { //Rust 中主函数是个无参函数,环境参数需要开发者通过 std::env 模块取出 let args = std::env::args(); println!("{:?}", args); for arg in args { .

2021-03-09 12:50:40 257

原创 32.生命周期注释.rs

/*更多文章参考:https://github.com/rooat/RustLearn/blob/master/src/ch10-03-lifetime-syntax.mdhttps://github.com/rooat/RustLearn/blob/master/src/ch19-02-advanced-lifetimes.md*///返回的是新生成的String,有自己的生命周期,如果使用&str的话生命周期跟随他人fn longer1(s1: String, s2: String.

2021-03-09 12:49:55 700

原创 31.错误处理.rs

/*程序中一般会出现两种错误:可恢复错误和不可恢复错误可恢复错误:可恢复错误的典型案例是文件访问错误,如果访问一个文件失败,有可能是因为它正在被占用,是正常的,我们可以通过等待来解决不可恢复错误:由编程中无法解决的逻辑错误导致的,例如访问数组末尾以外的位置对于可恢复错误用 Result<T, E> 类来处理,对于不可恢复错误使用 panic! 宏来处理。enum Result<T, E> { Ok(T), Err(E),}在 Rust 标准库中可能产生.

2021-03-09 12:48:57 241

原创 30.并发.rs

/*安全高效的处理并发是 Rust 诞生的目的之一,主要解决的是服务器高负载承受能力。并发(concurrent)的概念是只程序不同的部分独立执行,这与并行(parallel)的概念容易混淆,并行强调的是"同时执行"。Rust 中通过 std::thread::spawn 函数创建新线程.*/use std::sync::mpsc;use std::thread;use std::time::Duration;fn spawn_function() { for i in 0..

2021-03-09 12:48:19 195

原创 29.rust类型转换.rs

/*1.基本类型可以通过显示类型转换机制(as)来实现相互之间的转换。2.Rust通过使用trait来处理定制类型(enum、struct)之间的类型转换。3.通用的类型转换一般使用的trait为From和To。Rust孤儿原则:在声明trait和impl trait的时候,Rust规定了一个Orphan Rule(孤儿规则):impl块要么与trait的声明在同一个的crate中,要么与类型的声明在同一个crate中。也就是说,不能在一个crate中,针对一个外部的类型,实现一个外部的tr.

2021-03-09 12:47:16 1076

原创 28.特性trait.rs

/*特性(trait)概念接近于 Java 中的接口(Interface),但两者不完全相同。特性与接口相同的地方在于它们都是一种行为规范,可以用于标识哪些类有哪些方法trait Descriptive { fn describe(&self) -> String;}Descriptive 规定了实现者必须有是 describe(&self) -> String 方法。(必须实现所有方法)几个非常有用的标准库特性: Drop提供了当一个值退出作用域后执行代.

2021-03-08 12:43:54 208

原创 27.泛型generics.rs

/*fn max(array: &[i32]) -> i32 { let mut max_index = 0; let mut i = 1; while i < array.len() { if array[i] > array[max_index] { max_index = i; } i += 1; } array[max_index].

2021-03-08 12:43:19 153 1

原创 26.PhantomData幽灵数据.rs

/*它在标准库中的定义如下:#[lang = "phantom_data"]#[stable(feature = "rust1", since = "1.0.0")]pub struct PhantomData<T: ?Sized>;可以到它只是一个不占用任何空间的单元结构体,#[lang = "phantom_data"], 也表明了它是一个语言项,供 Rust 编译器本身使用。https://blog.csdn.net/wowotuo/article/details/931.

2021-03-08 12:42:42 586

原创 25.智能指针.rs

/*参考文章:https://zhuanlan.zhihu.com/p/112307245https://rustcc.cn/article?id=76e5f3fb-20b9-48c9-8fc6-a0aad40ced8chttps://www.codercto.com/a/27950.htmlhttps://www.twle.cn/c/yufei/rust/rust-basic-smart-pointers.htmlhttps://www.cnblogs.com/dream397/p/1418.

2021-03-08 12:42:05 168

原创 24.内存操作Copy-Move-Clone.rs

/*详细请看:https://zhuanlan.zhihu.com/p/21730929https://zhuanlan.zhihu.com/p/184907190Clone VS Copy VS Move首先看一下这个两个trait的关系:pub trait Sized { // Empty.}pub trait Clone: Sized { fn clone(&self) -> Self; fn clone_from(&mut self,.

2021-03-08 12:41:28 372

原创 23.所有权.rs

/* 所有权1.Rust 中的每个值都有一个变量,称为其所有者。2.一次只能有一个所有者。3.当所有者不在程序运行范围时,该值将被删除。变量与数据交互方式主要有移动(Move)和克隆(Clone)两种。可以引用租借*/fn main() { { // 在声明以前,变量 s 无效 let _s = "runoob"; // 这里是变量 s 的可用范围 } // 变量范围已经结束,变量 s 无效 test1.

2021-03-08 12:40:49 204

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关注的人

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