dword

手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳

北城以北 提交于 2020-03-23 13:45:48
1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 00401000 > 68 01C06D00 push SoWorker.006DC001 ; //入口点 00401005 E8 01000000 call SoWorker.0040100B 0040100A C3 retn 0040100B C3 retn 0040100C 74 23 je short SoWorker.00401031 0040100E C039 74 sar byte ptr ds:[ecx],74 00401011 0FD19CA4 0599E0>psrlw mm3,qword ptr ss:[esp+CFE09905] 00401019 AA stos byte ptr es:[edi] 3.最后一次异常法运行到最后一次,应该是第26次,第27次跑飞 00C339EC 3100 xor dword ptr ds:[eax],eax ; //最后一次异常法落脚点 00C339EE 64:8F05 0000000>pop dword ptr fs:[0] 00C339F5 58 pop eax 00C339F6 833D B07EC300 0>cmp dword ptr ds:[C37EB0],0 00C339FD 74 14 je short

windows 常用thread方法

故事扮演 提交于 2020-03-23 02:09:28
3 月,跳不动了?>>> 1.HANDLE CreateThread( _In_opt_LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_SIZE_T dwStackSize, _In_LPTHREAD_START_ROUTINE lpStartAddress, _In_opt___drv_aliasesMemLPVOID lpParameter, _In_DWORD dwCreationFlags, _Out_opt_LPDWORD lpThreadId ); 参数说明 lpThreadAttributes:指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽略该参数。在Windows NT中,NULL使用默认安全性,不可以被子线程继承,否则需要定义一个结构体将它的bInheritHandle成员初始化为TRUE dwStackSize,设置初始栈的大小,以字节为单位,如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小。任何情况下,Windows根据需要动态延长堆栈的大小。 lpStartAddress,指向线程函数的指针. lpParameter:向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL。 dwCreationFlags :线程标志,可取值如下 (1)CREATE

《Windows via C/C++》学习笔记 —— 线程的CONTEXT结构

折月煮酒 提交于 2020-03-20 02:29:41
  每个线程内核对象都维护着一个CONTEXT结构,里面保存了线程运行的状态,使得CPU可以记得上次运行该线程运行到哪里了,该从哪里开始运行,该线程内部数据如何如何。   在Platform SDK文档中记录着CONTEXT结构的信息。该结构是与CPU有关的,特定的CPU对应着特定的CONTEXT结构。   x86类型CPU对应的CONTEXT结构文档如下: typedef struct _CONTEXT { // // The flag values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, only that

Overlapped I/O模型--完成例程

帅比萌擦擦* 提交于 2020-03-19 02:54:55
Overlapped I/O 完成例程要求用户提供一个回调函数,发生新的网络事件的时候系统将执行这个函数。 系统用WorkerRoutine函数处理接收到的数据。 1 #include < WINSOCK2.H > 2 #include < stdio.h > 3 4 #define PORT 5150 5 #define MSGSIZE 1024 6 7 #pragma comment(lib, "ws2_32.lib") 8 9 typedef struct 10 { 11 WSAOVERLAPPED overlap; 12 WSABUF Buffer; 13 char szMessage[MSGSIZE]; 14 DWORD NumberOfBytesRecvd; 15 DWORD Flags; 16 SOCKET sClient; 17 }PER_IO_OPERATION_DATA, * LPPER_IO_OPERATION_DATA; 18 19 DWORD WINAPI WorkerThread(LPVOID); 20 21 void CALLBACK CompletionROUTINE(DWORD, DWORD, LPWSAOVERLAPPED, DWORD); 22 23 SOCKET g_sNewClientConnection; 24 25 BOOL g

SOCKET模型之重叠I/O篇(转贴)

浪子不回头ぞ 提交于 2020-03-19 02:54:07
SOCKET模型之重叠I/O篇(转贴) 本文配套的示例源码下载地址 (VC.net 2003编写的多客户端MFC代码,配有详尽注释,只是简单的显示一下客户端发来的字符,稍加改进就是个聊天室了): http://www.haha567.com/PiggyXP/OverlappedModel.rar (unix系统,千万注意链接大小写) (本文假设你已经具备用SOCKET简单模型编程的能力,如果对SOCKET一无所知请关注本系列其他文章) 目录: 1. 重叠模型的优点 2. 重叠模型的基本原理 3. 关于重叠模型的基础知识 4. 重叠模型的实现步骤 5. 多客户端情况的注意事项 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区。 而这4种模型种,数据到达并拷贝到单套接字接收缓冲区中,此时应用程序会被告知可以读入的容量

重叠I/O之事件通知

杀马特。学长 韩版系。学妹 提交于 2020-03-19 02:51:49
在 Winsock 中,重叠 I/O(Overlapped I/O)模型能达到更佳的系统性能,高于select模型、异步选择和事件选择三种。重叠模型的基本设计原理便是让应用程序使 用一个重叠的数据结构(WSAOVERLAPPED),一次投递一个或多个 Winsock I/O 请求。针对这些提交的请求,在它们完成之后,我们的应用程序会收到通知,于是 我们就可以对数据进行处理了。 要想在一个套接字上使用重叠 I/O 模型,首先必须使用 WSA_FLAG_OVERLAPPED 这个标志,创建一个套接字。例如: SOCKET s = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED); 注:创建套接字的时候,假如使用的是 socket 函数,那么会默认设置 WSA_FLAG_OVERLAPPED 标志。 成功建好一个套接字,同时将其与一个本地接口绑定到一起后,便可开始进行重叠 I/O 操作,为了要使用重叠结构,我们常用的 send、recv 等收发数据的函数也都要 被 WSASend、WSARecv 替换掉了,方法是调用下述的 Winsock 函数,同时指定一个 WSAOVERLAPPED 结构(可选): WSASend() WSASendTo() WSARecv() WSARecvFrom() WSAIoctl

Windows Internals 笔记——线程调度

孤街浪徒 提交于 2020-03-12 03:25:22
1.线程内核对象中的CONTEXT反应了线程上一次执行时CPU寄存器的状态。大约每隔20ms,Windows都会查看所有当前存在的线程内核对象。Windows在可调度的线程内核对象中选择一个,并将上次保存在线程上下文中的值载入CPU寄存器。这一操作被称为上下文切换。Windows实际上会记录每个线程的运行次数。 2.调用CreateProcess或者CreateThread时,系统将创建线程内核对象,并把挂起计数初始化为1。这样就不会给这个线程调度CPU了,因为线程初始化需要时间,我们不想再线程准备好之前就开始执行它。在线程初始化之后,CreateProcess或者CreateThread函数将查看是否有CREATE_SUSPENDED标志传入,如果有,函数返回并让新的线程处于挂起状态。如果没有,函数会将线程的挂起计数递减为0,线程就成为可调度的了。 3.通过创建一个处于挂起状态的线程,我们可以在线程执行任何代码之前改变它的环境(比如优先级)。之后可以调用ResumeThread函数使其变为可调度的,如果调用成功会返回线程的前一个挂起计数,否则返回0xFFFFFFFF。 4.还可以调用SuspendThread来挂起线程,任何线程都可以调用这个函数挂起另外一个线程(只要有线程句柄)。显然线程可以将自己挂起,但是它无法自己恢复。SuspendThread返回线程之前的挂起计数

C++.进程顶层窗口1

安稳与你 提交于 2020-03-11 07:45:08
struct _PidHwnd { DWORD m_dwPid; HWND m_hWnd; }; BOOL CALLBACK _EnumWins(IN HWND h, IN LPARAM p) { if (p) { _PidHwnd *pItem = (_PidHwnd*)p; DWORD dwPid = 0; GetWindowThreadProcessId(h, &dwPid); /*句柄所属进程*/ if (dwPid == pItem->m_dwPid && IsWindowVisible(h) && 0 == GetParent(h)) /*顶层可见窗口*/ { pItem->m_hWnd = h; return FALSE; /*成功匹配,退出枚举*/ } } return TRUE; /*继续枚举*/ } HWND GetTopWnd1(IN DWORD dwPid) { _PidHwnd item = { 0 }; item.m_dwPid = dwPid; EnumWindows(_EnumWins, (LPARAM)&item); return item.m_hWnd; } int main() { STARTUPINFO si = { 0 }; si.cb = sizeof(si); PROCESS_INFORMATION pi = { 0 }; BOOL b

注册表修改时间时区自动更新状态

可紊 提交于 2020-03-11 02:23:53
打开时间自动更新 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters](time) "Type"="NoSync"(off) "Type"="NTP" (on) 关闭时间自动更新 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tzautoupdate](time zone) "Start"=dword:00000003 (on) "Start"=dword:00000004 (off) 打开时区自动更新 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tzautoupdate" /v "Start" /t REG_DWORD /d 3 /f 关闭时区自动更新 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tzautoupdate" /v "Start" /t REG_DWORD /d 4 /f 来源: CSDN 作者: 风·忆·薇 链接: https://blog.csdn.net/weixin_45145710/article/details/104779408

注册表打开触摸板键盘

大城市里の小女人 提交于 2020-03-11 01:09:02
reg add "HKLM\SOFTWARE\Microsoft\TabletTip\1.7" /v "TipbandDesiredVisibility" /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Microsoft\TabletTip\1.7" /v "TipbandDesiredVisibilityTabletMode" /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Microsoft\TabletTip\1.7" /v "EnableDesktopModeAutoInvoke" /t REG_DWORD /d 1 /f reg add "HKCU\Software\Microsoft\TabletTip\1.7" /v "EnableDesktopModeAutoInvoke" /t REG_DWORD /d 1 /f reg add "HKCU\Software\Microsoft\TabletTip\1.7" /v "TipbandDesiredVisibility" /t REG_DWORD /d 1 /f 来源: CSDN 作者: 风·忆·薇 链接: https://blog.csdn.net/weixin_45145710/article/details/104779436