Windows
for_casech
小人物
展开
-
Window消息大全
Windows 常用消息大全表A-1 Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息转载 2016-03-01 16:01:40 · 322 阅读 · 0 评论 -
uilib 学习属性表
原创 2016-03-09 18:55:41 · 587 阅读 · 0 评论 -
uilib 属性表全
UILIB扩展 <!-- 除stylename属性外可将任意控件属性作为模版属性。 若stylename等于XML的节点元控件元素名,则将作为控件的默认样式:如原创 2016-03-10 12:43:34 · 954 阅读 · 0 评论 -
汇编指令
指令功能AAA调整加AAD调整除AAM调整乘AAS调整减ADC进位加ADD加AND与ARPL调整优先级BOUND检查数组BSF位右扫描B原创 2016-03-13 12:37:58 · 8285 阅读 · 0 评论 -
逆向 破解简单实战
游戏随便找一个 首先通过OD 找到怪物于玩家的血量地址 此处滤过(太简单了) 找到后分析发现执行代码是同一语句当然鄙人也有一点游戏发开经验 玩家 于怪物虽用的是同一语句但是 必此的ID是不同的 于是 通过对比内存找出能确立不同点 来区分执行代码就此 破解完毕 怪物秒杀 玩家安然无恙原创 2016-03-13 12:50:21 · 463 阅读 · 0 评论 -
汇编 线程注入
原创 2016-03-13 14:45:03 · 279 阅读 · 0 评论 -
汇编 调用windwos函数
在游戏中 AIP运用会很多 尤其是大场景游戏 比如apr游戏 或竞技游戏 多会用一个按键操作 比如我们来简单做一下 人物自动吃包子回复血量的动作首先找到血量地址 此处过 就不在讲了找到地址后开始会汇编 看截图按键操作成对出现 push 0位按下 push 2位弹起 call 调用按键函数原创 2016-03-13 15:36:47 · 247 阅读 · 0 评论 -
VLC player
1.先下载VLC player, http://www.videolan.org/vlc/, 安装的时候要安装开发库(SDK)2.用VC 6.0/2003/2005/2008/2010 IDE均可开发自己的测试程序3.创建一个控制台程序,当然创建一个窗口程序更好,由于只是为了关注于如何使用VLC SDK,所以都无所谓的4.在工程中设置好vlc的 include和lib路径转载 2016-04-08 22:41:55 · 538 阅读 · 0 评论 -
简单封装一下 win内核线程池 以后直接继承 不用复写
#pragma once#include #include class MyThreadPoll{public: MyThreadPoll(); virtual~MyThreadPoll(); void InitThreadAndEnviron(unsigned int minNum = 1, unsigned int maxNum = 500); void Clean原创 2016-04-13 13:12:13 · 423 阅读 · 0 评论 -
WIN内核线程池函数
线程池(本章节中例子都是用 VS2010 编译调试的)线程池编写必须在 Windows Vista 操作系统(以及以上版本的操作系统)下,且 C++ 编译器版本至少是 VS2008 线程池的功能以异步的方式来调用一个函数每隔一段时间调用一个函数当内核对象触发的时候调用一个函数当异步 I/O 请求完成的时候调用一个函数注意当一个进程初始化的时候,它原创 2016-04-13 12:44:22 · 2006 阅读 · 2 评论 -
函数CreateSemaphore和ReleaseSemaphore
函数CreateSemaphore和ReleaseSemaphore声明如下:WINBASEAPI__outHANDLEWINAPICreateSemaphoreA( __in_opt LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, __in LONG lInitialCount,原创 2016-04-10 14:40:02 · 2151 阅读 · 0 评论 -
EnumProcess
BOOLWINAPIEnumProcesses ( DWORD * lpidProcess, DWORD cb, DWORD * cbNeeded );lpidProcess是保存进程ID的数组。cb是进程组数的大小。cbNeeded是返回进程数组的大小。void TestEnumP原创 2016-03-29 10:58:55 · 388 阅读 · 0 评论 -
CreateProcess
CreateProcessA( __in_opt LPCSTR lpApplicationName, __inout_opt LPSTR lpCommandLine, __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes, __in_opt LPSECURITY_ATTRIBU原创 2016-03-29 10:51:11 · 267 阅读 · 0 评论 -
getSaveFileName
void TestGetSaveFileName(void)#004 {#005 //#006 OPENFILENAME ofn; // 公共对话框结构。#007 TCHAR szFile[MAX_PATH]; // 保存获取文件名称的缓冲区。 #008 #009原创 2016-03-29 11:11:14 · 1043 阅读 · 0 评论 -
CreateFileMapping
函数CreateFileMapping、MapViewOfFile声明如下:WINBASEAPI__outHANDLEWINAPICreateFileMappingA( __in HANDLE hFile, __in_opt LPSECURITY_ATTRIBUTES lpFileMappingAttributes,原创 2016-03-29 11:21:13 · 990 阅读 · 0 评论 -
uiblib 学戏笔记
class CDuiFrameWnd : public WindowImplBase{public: virtual LPCTSTR GetWindowClassName() const { return _T("base"); } virtual CDuiString GetSkinFile() { r原创 2016-03-05 18:48:34 · 261 阅读 · 0 评论 -
process令牌
TOKEN_PRIVILEGES结构体TOKEN_PRIVILEGES 包含了关于设置一个访问令牌的信息.typedef struct _TOKEN_PRIVILEGES{ // tpDWORD PrivilegeCount;LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];} TOKEN_PRIVILEGE原创 2016-03-05 17:05:39 · 204 阅读 · 0 评论 -
函数CreateProcess
1.函数说明:WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。2.函数原型:BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBU转载 2016-03-01 16:53:01 · 444 阅读 · 0 评论 -
TerminateProcess 终止|杀死其它进程
这个函数可以用来终止或者说杀死一个进程,它不会留给进程及其所有线程清理的时间,系统会马上终止(杀死)这个进程的所有线程,致使进程终止。在使用此函数前我们必须要调用OpenProcess函数来获得我们要终止(杀死)进程的句柄,并且要获得进程的PROCESS_TERMINATE权限。函数原型:BOOL TerminateProcess(HANDLE hProcess,UINT uExitCod转载 2016-03-01 16:58:30 · 1247 阅读 · 0 评论 -
Interlocked原子访问系列函数
所谓原子访问,指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。Interlocked系列函数提供了这样的操作。所有这些函数会以原子方式来操控一个值。Interlocked函数的工作原理取决于代码运行的CPU平台,如果是x86系列CPU,那么Interlocked函数会在总线上维持一个硬件信号,这个信号会阻止其他CPU访问同一个内存地址。我们必须确保传给这些函原创 2016-03-02 15:43:17 · 317 阅读 · 0 评论 -
Windows 原子Interlocked单向链式栈
SLists使用了无锁算法来保证原子同步,以提升系统性能,避免了诸如优先级挂和互锁的问题。注意:所有的链表项必须对齐到MEMORY_ALLOCATION_ALIGNMENT。否则会出现奇葩的错误。(PS:看英文MSDN的API解释,我感觉这是从前插又从前取,是个栈的样子。)InitializeSListHead,创建一个空栈[cpp] vie原创 2016-03-02 15:41:09 · 665 阅读 · 0 评论 -
CRITICAL_SECTION //critical_section
/// 关键代码段或是临界区的声明 CRITICAL_SECTION g_cs; unsigned __stdcall PrintThread1( PVOID pvParm ) { /// 当前线程号 volatile static long lTreadNum = 0; int iCurThread = Interl原创 2016-03-02 18:11:13 · 333 阅读 · 0 评论 -
windows 内存搜索
#include BOOL FindFirst(DWORD dwValue); BOOL FindNext(DWORD dwValue); HANDLE g_hProcess; DWORD g_arList[1024]; DWORD g_nListCnt; BOOL CompareAPage(DWORD dwBaseAddr, DWORD dw原创 2016-03-02 18:47:03 · 665 阅读 · 0 评论 -
多线程之SRWLOCK
下面就来看看如何使用读写锁,要注意编译读写锁程序需要VS2008,运行读写锁程序要在Vista或Windows Server2008系统(比这两个更高级的系统也可以)。读写锁的主要函数就五个,分为初始化函数,写入者线程申请和释放函数,读取者线程申请和释放函数,以下是详细的函数使用说明:第一个 InitializeSRWLock函数功能:初始化读写锁函数原型:VOID Ini原创 2016-03-02 19:36:33 · 329 阅读 · 0 评论 -
管道createnamepipe
HANDLE CreateNamedPipe( LPCTSTR lpName, // pipe name DWORD dwOpenMode,原创 2016-03-03 13:32:17 · 1578 阅读 · 0 评论 -
完成端口简单 函数 分解
PostQueuedCompletionStatus主要是投递一个任务到完成队列当中,从而使得在等待队列消息的某一个线程收取到.其参与分别与GetQueuedCompletionStauts相对应,从而可以很方便地为在等待完成消息的线程(池)分派任务,而不需要另外再开线程资源.基于这一种特性,还可以把完成端口当成一个高效的队列+线程池.正如1楼说的,如果你是想退出线程的话,也可以通过这种方式投递特原创 2016-03-03 16:40:42 · 241 阅读 · 0 评论 -
FD_SET TCP
select()函数主要是建立在fd_set类型的基础上的。fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: fd_set set; FD_ZERO(&set); /* 将set清零使集合中不含任何fd*/ FD_S原创 2016-03-03 20:11:43 · 365 阅读 · 0 评论 -
UDP
#include #include #include #include #include #pragma comment(lib,"ws2_32.lib")using namespace std;typedef struct _Cifo{ SOCKET C; SOCKADDR_IN c_addr; int len;}_Cifo;BOOL g_bRect = 0;vo原创 2016-03-03 20:24:57 · 222 阅读 · 0 评论 -
UILIB 简单自绘BUTTON
class MyUI :public CWindowWnd, public INotifyUI{public: MyUI(){} ~MyUI(){} virtual LPCTSTR GetWindowClassName() const { return _T("base"); } virtual void Notify(TNotifyUI& msg) { if (msg.sTyp原创 2016-03-05 11:50:52 · 326 阅读 · 0 评论 -
uilib 自绘 标题栏
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes = 0; if( uMsg == WM_CREATE ) { CControlUI *pWnd = new CButtonUI;原创 2016-03-05 11:51:56 · 335 阅读 · 0 评论 -
UILIB 加载XML
virtual long HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { long rest = 0; if (WM_CREATE == uMsg) { m_PaintManager.Init(m_hWnd); /* CControlUI*but = new CButtonUI; but->SetBkC原创 2016-03-05 11:57:00 · 282 阅读 · 0 评论 -
简单 逆向 破解
DWORD CrackPsw(HWND hWnd){POINT pt;GetCursorPos(&pt);// 获取鼠标的位置HWND hTarget = WindowFromPoint(pt);//获取当前鼠标点下面的窗口句柄DWORD dwStyle = GetWindowLong(hTarget, GWL_STYLE);// 获取窗口属性SetWindowWo原创 2016-03-05 14:55:48 · 312 阅读 · 0 评论 -
线程池
今天 按照老师的要求写了一下线程池 对多线程 的理解 又加深了一步只要运用了 几个函数InterlockedIncrement(&pThis->_ThreadNum);//线程互斥加1 计数 对线程的 数量监控InterlockedDecrement(&pThis->_ThreadNum);//减1InterlockedIncrement(&pThis->_RunT原创 2016-04-10 18:54:56 · 213 阅读 · 0 评论