- 博客(171)
- 资源 (34)
- 问答 (1)
- 收藏
- 关注
原创 C++从内存中加载映像(EXE/DLL)到本地或者远程进程执行
被加载的映像如果是EXE比必须关闭 固定基址(/FIXED:NO)即必须有重定位表, 否则无法处理重定位.void load_image(){ auto pImage = data;//欲加载映像的内存地址 void *pDest = NULL; HANDLE pSection; LdrSup::AlignSections32(&pSection, pDest, pImag
2012-07-25 14:34:45 40852 1
原创 C++构造DHCP Discovery报文并使用socket发送
DHCP由BOOTP协议发展而来,而后者基于UDP、IP协议,这使得使用socket发送DHCP报文成为可能。本文示例构造了DHCP Discovery报文并调用socket接口发送,值得注意的是,由于DHCP要求发送者ip是0.0.0.0,所以必须使用raw socket进行发送(本文没有示例),更进一步的,用户层代码Linux、macOS系统可以使用libpcap,Windows系统可以使用Windivert、Winpcap/Npcap进行发送。
2012-07-15 18:45:00 48599 3
原创 C++解析http-chunked数据
chunked 是http传输过程中常用的一种分块手段, 这里是对chunked数据的简易处理方法,主要是拼接block, 去掉块大小和回车信息即可static ResponseStream *rlib_parse_chunk_data(char *lp_chunk_data, intptr_t nsize){ auto pstream = new ResponseStream(Utilit
2012-07-12 06:57:11 40141 3
原创 数字图像处理均衡化灰度拉伸C++实现
/// /// 均衡化灰度拉伸/// /// 输出图像数据/// 输入图像数据/// 图像宽度/// 图像高度void equalize_gray(unsigned char *lpdst, const unsigned char *lpsrc, int width, int height){ RLIB_RENAME(width, width_x_height); width_
2012-06-23 08:08:53 53955 2
原创 C++向目标进程PEB模块链添加自己的DLL
有时候为了让内存注入的DLL现身, 就需要用到这个方法了 auto lppeb = reinterpret_cast(AppBase::GetPEBAddress()); if (NtGetModule(_T("QQManager.dll")) == NULL) { String StartupPath = String(BaseDllDir) + _T("QQManager.dll");
2012-06-23 07:38:18 2558 10
转载 动态规划算法解最长公共子序列LCS问题
动态规划算法解LCS问题动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一
2012-04-30 07:59:31 45180 6
原创 STL vector 源码解析
前言项目组要实现一个算法库,其中涉及到了类似vector的一维数组的实现。特此,对stl中得vector做个学习和了解。有任何问题,欢迎不吝指正。谢谢。一、如何实现vector 如果给你一道面试题,如何用数据结构实现STL中vector的功能?聪明的你会怎么做呢?或许你会如下所述:或许,如果不考虑分配效率,只需要两个成员就可以实现了 template class Vec
2012-04-30 07:46:16 17473 5
原创 选择类排序法 — 简单选择排序
9.4 选择类排序法选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。我们主要介绍简单选择排序、树型选择排序和堆排序。 简单选择排序简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止
2012-04-21 21:25:47 21864 1
原创 各类经典搜索算法(Search Algorithms)的简单介绍和C++实现
/// /// 顺序搜索法(Sequential Search)/// 优点: 该方法对数据无事先排序(Sorting)要求, 容易实现/// 缺点: 搜索效率差(平均搜索 (N + 1) / 2 次), 不管是否排序, 每次都必须从头到尾遍历一次/// 时间复杂度: /// 如果没有重复数据,线性查找在找到任一元素时就终止,否则需要全部遍历. 在最差情況下, 需作N次比较, O(N)
2012-04-21 16:05:34 48682
原创 各类文件的文件头标志
各类文件的文件头标志1、从Ultra-edit-32中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photosh
2012-04-21 13:19:20 28718 2
转载 x86 指令集介绍 - Call 过程调用指令
Description Saves procedure linking information on the stack and branches to the procedure (called procedure) specified with the destination (target) operand. The target operand specifies the add
2012-04-14 15:31:30 12777 3
原创 C++对齐杂注__declspec(align(#))和#pragma pack的区别
一般来讲, 访问未对齐的内存(misaligned access)轻则影响效率, 重则引发异常(包括指令执行异常和结构体对齐不正常引发的逻辑BUG等), 总之内存对齐是程序员尤其是C/C++程序员是不得不重视的一个问题. MSVC++提供了两种对齐杂注, __declspec(align(#))和#pragma pack, 而在C++11标准中也加入了描述符alignas用于对齐控制, 本文主要简单解释下前面两种杂注的区别, 权当作者学习笔记.
2012-04-08 10:08:02 48696
原创 TinyXML不支持UNICODE的解决方法【改造TinyXML】
TinyXML目前仅直接支持解析UTF-8或者ASCII编码的XML, 对于其它编码必须经过转换才能使用, 这给Windows项目带来了麻烦, 频繁的编码转换也可能给性能带来巨大损失.对此, 作者给出了解释的是"UTF-8 is not a double byte format - but it is a standard encoding of Unicode! TinyXML
2012-04-08 10:01:09 18858 6
原创 #include <Windows.h> 和 <Winsock2.h>冲突的改进解决方案
#include #include 上面的代码会导致重定义错误, 原因就是 Windows.h 中包含了 Winsock.h(不是Winsock2.h) , 百度的解决方案是加入#define WIN32_LEAN_AND_MEAN 编译通过, OK!然而, 由于使用socket的项目是DLL项目, 当把该DLL引用到其它项目中(如DUILIB)就会发生错误, 错误就是WIN3
2012-04-02 11:06:26 6102
原创 C++调用NTAPI枚举并强制关闭指定进程
#include "../../RLib/RLib/native/RLib_Native.h"#pragma comment(lib, "ntdll.lib")Array *found_if_process_by_name(LPCWSTR name IN, LPCWSTR parent_name IN){ unsigned long bytes = 0; ManagedMemoryB
2012-03-24 10:40:28 41943 2
原创 android ndk开发中常用的系统自带网络命令
android本身内置了一些网络命令,使用这些命令程序尤其基于ndk开发时会获得很多便利,并在某种程度上可以绕开上层的限制、获得更多详细的信息和更好的灵活性等。
2012-03-17 17:28:09 10028 4
原创 C/C++获取函数返回地址
一般而言, 能否覆盖函数返回地址是栈溢出攻击成功与否的前提, 而获取函数返回地址原理很简单, 栈回溯即可, 下面是x86上相应获取代码(仅为示例不可用于生产):#define Stack_Length (4 * 4 * 4)static void *_esp_arr[Stack_Length];void *GetRet(void *caller){ void *_esp; __asm
2012-03-11 13:20:33 10298 3
原创 32位与64位区别与编译器数据模型简介
一、32位与64位区别 32位和64位机器。 32位和64位指的是机器字长,即CPU能同时处理的数据的最大宽度。一台电脑机器主要由CPU、内存、IO设备、总线组成,称电脑机器是64位是指以上设备都支持64位。32位和64位操作系统。 从硬件理论上说,64位机器的总体处理速度约为32位机器的2倍。操作系统依赖机器但又不完全依赖它。软件兼容性上,32
2012-03-10 16:33:34 16303
原创 XYWi-Fi v2.0 简单的笔记本无线热点分享工具【Win】
可执行文件、源码下载地址: http://code.google.com/p/rlib/downloads/list
2012-03-04 13:45:14 9326 8
原创 RtlCreateUserThread创建用户线程
HANDLE WINAPI RLIBCreateThread(HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack, LPTHREAD_START_ROUTINE start, LPVOID param, DWORD flags, LPDWORD id ){ HANDLE handle; CLIENT_ID client_id; NT
2012-02-19 10:49:59 5167 2
原创 【DuiLib入门基础】九宫格corner属性详细解释
技术背景九宫格是用来减少图片缩放拉伸时失真程度的一种常用技术, 如果你做过android开发尤其是手游这块, 你可能很快发现这其实就是android所直接支持的一个特性9patch.对于九宫格图片,渲染引擎在绘制只拉伸图片中心部分,四个边角却不会被拉伸,这样只要图片中心的颜色是或近乎纯色,那么即使拉伸的倍数再大也会基本保持原有的整天效果。(这点可以用来弥补非矢量图的缺陷, 而且避免了矢量图
2012-02-12 11:30:52 65604 2
原创 不走寻常路的常识逻辑学家:Lisp之父约翰•麦卡锡
如果希望计算机具有一般的智能,那么其外在结构就必须基于一般的常识和推理——约翰·麦卡锡一个5岁的小女孩在玩一辆塑料玩具卡车,把它推来推去,嘴里模仿着喇叭声。她知道不能在餐桌上玩它,也不能用它去打弟弟的头。去学校之前,她会把卡车放到弟弟够不着的地方。放学回家后,她也知道在原来的地方可以找到自己的玩具车。引导她的行为和期望的推理非常简单,任何一个同龄的小孩都能理解。但是大多数计算机却不能。
2012-02-03 20:13:24 21556 1
原创 开源一套自己写的C++工具库 - RLib 开源框架
RLib aims at providing a lightweight, highly cohesive and low coupling framework of useful cpp toolkit.
2012-02-02 22:06:40 38143 2
原创 Android在JNI层反射替换当前app的ClassLoader
值得一提的是,反射确实是个很强大很灵活的东西, 借助哈希、红黑树等高度优化的数据结构让反射的代价降到了极低,通过反射+JNI, 可以做到几乎任何你想做的东西。JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *unused){ JNIEnv *env; jvm->GetEnv(reinterpret_cast(&env), JNI_VER
2012-02-02 15:47:29 6380
原创 解决adb connect无法连接Android设备
一般情况下,只要Android设备和主机处于同一局域网(互联网也行,不过要求Android设备有公网Ip或者上层路由做好端口映射),并且打开了相关开发者选项(如USB调试等,国内ROM自定义太多了,各家表述不一样),adb connect ip即可成功建立连接,但有时部分设备会遇到以下情况:unable to connect to 192.168.0.100:5555: cannot conn
2012-02-02 15:46:20 67658
原创 编程方式解析C++符号修饰别名(mangled name)
相比C语言,C++支持函数重载、类、模版等各种特性,如果C++的符号修饰仍按照C那样直接使用对应名称,虽然可读性很好,却不可避免的会出现各种错乱,于是C++符号修饰别名(mangled name)被设计出来, 用来解决上述问题,然而修饰规则取决于编译器实现,没有统一标准,比如gcc、msvc就各有一套,但好在都提供了相应接口进行解析(demangle),下面介绍如何使用他们
2012-02-02 15:42:58 8500 2
原创 针对 std::string 的 trim 和 replace 方法
std::string不支持trim方法,同时原生的replace方法在使用上和其它语言也有些许差别,这里提供了两个替代方法,个人感觉更加好用。
2012-02-02 15:40:32 51053 3
原创 C++实现搜狗浏览器加速代理客户端(HTTP/HTTPS)的核心代码
借助sogou搜狗浏览器的电信, 联通和教育网的加速代理(支持CONNECT方式的HTTPS连接), 可以实现上网加速特别是教育网的加速, 不过代理不能直接使用, 必须搭建一个搜狗浏览器代理客户端来做代理的验证工作.目前搜狗的教育网代理大概如下: h0.edu.bj.ie.sogou.comh1.edu.bj.ie.sogou.comh2.edu.bj.ie.sogou.com
2012-02-02 15:37:40 13483 1
原创 C++ 用户模式调用 NtCreateThread
/******************************************************************** Created: 2012/02/01 18:17 Filename: NativeAPI.h Author: rrrfff Url: http://blog.csdn.net/rrrfff***********************
2012-02-01 21:22:05 7717 1
翻译 C#线程池用法
译自:http://www.dotnetperls.com/threadpool在C#编程语言中,使用线程池可以并行地处理工作,当强制线程和更新进度条时,会使用内建架构的ThreadPool类,为批处理使用多核结构,这里我们来看在C#编程语言中一些关于来自System.Threading的ThreadPool的用法的例子。介绍.NET Framework提供了包含ThreadPool类
2012-01-28 14:59:27 29281
原创 C# 正常关闭窗体的方法
最近在调试C#窗体程序的时候经常会出现上面的错误, 跟踪发现是下面的代码导致的(调试中还发现该代码会导致SendKeys.Send()方法进入阻塞状态, 原因未知): this.Close();尝试过下面的方法, 问题仍未解决(这种方法以及结束进程的"暴力"方法有很大的局限性, 例如窗体关闭时将无法"善后"):Application.Exit();但是, 如果点击标题栏的关闭按钮(X
2012-01-22 16:31:12 4719 1
原创 C# ToolStrip.ItemClicked 事件不能响应二级菜单(子菜单)的解决方法
/// /// 绑定响应事件/// this.ListMenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ListMenu_ItemClicked);/// /// 响应ItemMenu右键菜单/// /// /// private void ItemMenu_It
2012-01-20 13:33:11 147563 5
原创 C# 读写配置文件的简单类
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Register{ /// /// Config类 /// public class Config { public string IniPat
2012-01-19 20:05:34 2040 1
原创 C# HttpWebRequest网络常用方法封装
C# 使用HttpWebRequest实现网络常用方法(GET, POST)的简单封装, 参数定制也很方便.虽然.NET框架原生提供了类似的包装WebClient, 功能全面但是控制起来远不如HttpWebRequest方便, 并且由于更接近Sockets层, HttpWebRequest的执行效率在一定程度上会优于WebClient
2012-01-19 20:04:07 164982 3
原创 Tesseract-OCR(开源光学字符识别引擎)
Tesseract-OCR Background The Tesseract OCR engine was one of the top 3 engines in the 1995 UNLV Accuracy test. Between 1995 and 2006 it had little work done on it, but it is probably o
2012-01-18 21:18:02 162368 6
原创 广东移动 - 无线应用加速业务系统
业务介绍无线应用加速是以“提升上网速度,节省网络流量”为核心,为每个上网用户打造“迅速、灵巧”的云端应用中心,使云端应用中心强大的计算、存储资源以及带宽资源为我所用的一项业务。业务三大优势
2012-01-15 22:42:06 3058 1
原创 MSSQL2008 无法单步调试解决方案
安装之后要把本地账号添加为sysadmin才能进行调试附加sp_addsrvrolemember 'IPHONE9PLUS\ASUS', 'sysadmin'
2011-12-25 14:31:07 47004
原创 中国移动开发者社区 - 远程真机测试(RTS)服务
远程测试服务(RTS)是一个真实设备实验室,为开发者提供主流厂家的手机终端,方便开发者进行手机应用的开发、测试工作。开发者可以通过互联网,在远程手机设备上安装并测试应用。节省开发者的开发时间,降低开发成本。远程测试服务(RTS)使用入口
2011-12-11 08:53:10 3308 4
转载 经典算法研究系列:一、A*搜索算法
作者:July、二零一一年一月更多请参阅:十三个经典算法研究与总结、目录+索引。----------------------------------博主说明:1、本经典算法研究系列,此系列文章写的不够好之处,还望见谅。2、本经典算法研究系列,系我参考资料,一篇一篇原创所作,转载必须注明作者本人July及出处。3、本经典算法研究系列,精益求精,不断优化,永久更新,永久勘误。
2011-12-04 15:51:57 53742
MediaTek PreLoader USB VCOM Port WIN10.zip
2020-04-06
ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile
2017-09-23
network_fix_tools_v3.zip
2016-11-22
network_fix_tools_v2.zip
2016-11-17
network_fix_tools.zip
2016-11-07
PDF.XChange.Editor.6.0.318.1.x86_64.Patched.zip
2016-09-25
wke extend v1.1
2015-11-09
lcx_linux_windows_incl.zip
2015-10-05
RLib v4.5.zip
2015-07-07
wke extend v1.0.zip
2015-01-18
Simple Assembly Explorer.v1.14.0.x86.7z
2014-08-21
AspxZip v2.0
2013-07-15
CppDLLv1.1 帮助生成.h,.def以及.lib的工具
2012-06-02
HTTP.Debugger.Pro.v4.4
2011-07-02
Reflector.v7.0源代码
2011-01-28
UPX3.5附带源码
2010-05-30
【.Net 】Zip操作库
2010-05-28
Microsoft Azure 的一般性安全和计费策略问题
2015-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人