自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 shellcode定位kernel32与LoadLibrary

<br />//定位Kernel32__declspec(naked) int GetKernel32Base(){ __asm { XOR ECX, ECX ; ECX = 0 MOV ESI, FS:[ECX + 0x30] ; ESI = &(PEB) ([FS:0x30]) MOV ESI, [ESI + 0x0C] ; ESI = PEB->Ldr MOV

2011-02-05 22:52:00 3214

原创 console 多线程

<br />写一个console程序的时候使用了多线程 总是失败<br />原来是编译选项的问题  console程序默认的时候<br />采用的是单线程 <br /> <br />修改<br />C/C++  -> Code Generation -> Use run-time libray:<br />                                                                   进行修改

2011-01-27 00:22:00 1060

原创 基于icmp的ping函数

基于icmp的ping端口小程序,与系统自带的ping对比之后 准确率很高 由于是想快速扫描 而非准确扫描 所以很多错误细节没有考虑在内循环次数还是等待时间都比较低 根据需要可以进行修改 cpp文件//////////////////////////////////////////////////////////////////////// Construction/Destruction////////////////////////////////////////////////////////

2011-01-24 05:05:00 973

原创 网卡禁用 启用演示程序

<br />#include "StdAfx.h"#include <windows.h>#include <setupapi.h>#include <tchar.h>#include <stdio.h>#include <setupapi.h>#pragma comment(lib,"ws2_32.lib")#pragma comment(lib,"setupapi.lib")#define UnknownDevice TEXT("<Unknown Device>")

2011-01-20 20:05:00 789

原创 RPC

<br />#include <winsock2.h>#include <windows.h>#include <stdio.h>#include <io.h>#include <fcntl.h>#include <memory.h>#include <wchar.h>#include "srvsvc.h"#include "srvsvc_c.c"#include "mem.h"#pragma comment(lib,"ws2_32")#pragma co

2011-01-20 00:37:00 554

转载 网卡MAC地址相关信息大全(整理)(上)

<br /> 网卡地址这个概念有点混淆不清。因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的时候用的地址,一般情况下这两个地址是一样的,所以很多人都混用了,甚至不知道有区别  -_-#<br />   网卡工作的时候,一个以太网帧60到1514(不包括crc),帧的crc是网卡自动加的,前导码是自动加的。网卡目的地址和源地址是驱动程序加的.所以实际上网卡工作的时候用什么地址作为工作地址完全是由

2011-01-19 12:08:00 1124

原创 纯SDK方式截屏并且保存为BMP格式

<br />网上MFC例子不少.在写一个BHO的时候好多都不可以用了  以下是纯SDK方式写的<br />函数名称可见函数功能<br />//截图代码void Screenshots(){ HBITMAP hDesktopCompatibleBitmap=NULL; HDC hDesktopCompatibleDC=NULL; HDC hDesktopDC=NULL; HWND hDesktopWnd=NULL; RECT clientRect = {0,0,0,0};

2011-01-19 00:16:00 1047

原创 BHO插件开发小结

<br />A:关于BHO的注册<br />1:在正常开发完之后 需要在rgs文件的后边添加如下代码<br />HKLM { NoRemove SOFTWARE { NoRemove Microsoft { NoRemove Windows { NoRemo

2011-01-17 20:22:00 740

原创 主动防御的代码注入方法一点思考 (转载)

<br />目前大多数的杀软都是hook NtWriteVirtualMemory和NtUserSetWindowsHookAW、NtUserSetWindowsHookE来防止代码注入。<br />关于代码注入Ring3层的方法主要有:<br />远程线程CreateRemoteThread<br />消息钩子SetWindowsHookEx<br />Ring3 APC QueueUserApc<br />修改线程上下文SetContextThread<br />其中第一种和第三种方法需要传入一个par

2011-01-13 13:21:00 1110

原创 控制台程序安装全局钩子

   今天在写一个程序的时候发现的问题,在以前的学习过程中没有遇到过,所以记录以备后查程序大致是这样的 A:主程序 控制台程序 负责安装一个WH_KEYBOARD_LL钩子,其中钩子的安装于回调函数在Hook.Dll中B:目标程序 窗体程序怎么操作都不行,Hook.dl可以确定没有任何差错,dll的调用以及SetHook都可以调用,就是回调函数来不了后来经过不断调试发现,原来钩子是依靠的消息响应机制,所以必须要有消息响应才可以所以务必要添加上 MSG msg; DWORD ret; while (r

2011-01-12 19:15:00 3471 3

原创 汉化Caption小结

<br />遇到一个delphi程序 使用Sisulizer汉化很成功,不过其caption属性 既在 标准资源中找不到在非标准资源中也找不到  Alt+M下资源内存断点 也是没有找到  后来发现在mdb文件中   <br />总结 如果在标准资源和非标准资源中都找不到的时候  可以尝试在数据库文件或者ini等文件中查找  或许会有意想不到的收货

2010-12-28 15:31:00 479

原创 "未预期错误" 小问题大麻烦

<br />在写一个服务器程序的时候刚开始还好  后来换了一个图标之后就不断弹出"未预期错误"<br /> <br />baidu下发现原来是32位位图在16位下不能识别,故发生该错误<br /> <br />设置-->颜色质量-->修改为匹配的

2010-12-25 23:54:00 4324 1

原创 只有mdf文件的恢复技术(已实践成功)

  由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息  设备激活错误。物理文件名 'C:/Program Files/Microsoft SQL Server/MSSQL/data/test_Log.LDF' 可能有误。  已创建名为 'C:/Program Files/Microsoft SQ

2010-12-19 13:27:00 521

原创 siteserver2的模板要理清以下几个概念

<br />siteserver2的模板要理清以下几个概念<br />1:首页模板<br />2:栏目模板<br />3:栏目内容模板<br />4:内容模板<br /> <br />其中显示栏目内容的代码如下<br /><td rowspan="2" valign="top"> <table width="100%" border="0" cellspacing="5" cellpadding="0" style=" padding-left:20px; padding-right:20px; pad

2010-11-19 05:18:00 674

原创 处理webbrowser2控件浏览网页时发生的当前页脚本错误

<br />将webbrowser控件的silent属性设置为true

2010-10-20 03:14:00 1023

转载 pspCidTable

<br /><br />一.                        pspCidTable概念及内核调试<br />-----------------------------------------------------<br /><br />pspCidTable是内核未导出的HANDLE_TALBE结构,它保存着所有进程和线程对象的指针。<br />只要能遍历这个PspCidTable句柄表,就可以遍历到系统的所有进程,包括所有隐藏进程,除非你抹掉pspCidTable...<br /><br

2010-10-14 20:32:00 1144

原创 WinDBG双机调试配置

<br />安装windbg http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx<br />主机和虚拟机都要安装WinDBG<br />一:<br /><br />在VM中使用命名管道模拟一个串口<br />//./pipe/com_1<br />This end is then server<br />the other and is an application<br />二:<br /><br />主机增加windbg快捷方

2010-10-13 18:09:00 1206

原创 编写shellcode 常见敏感字符

<br />编写shellcode 常见敏感字符<br />0x00<br />0x20 <br />0x0A<br />0x0D<br />0x0B<br />0x0c

2010-10-09 00:39:00 806

原创 ShellCode第一课

<br />C代码 <br />#include "stdafx.h"#include <stdio.h>#include <string.h>#include <windows.h>#include <process.h>int Check(){ char szPwd[50] = {0}; char Pwd[] = "Hello"; FILE *pFile = fopen("Shell.bin","r+"); if (pFile == NULL) {

2010-10-07 02:47:00 565

原创 异常处理

<br />C++标准中只规定了异常处理的语法,各编译器厂商也都予以实现。但由于C++标准中并没有规定异常处理的实现过程,造成了不同厂商的编译器,编译后产生的异常处理代码也不相同。本教程中一直使用微软C++编译器系列中的Microsoft Visual C++ 6.0,因此本章也不例外,依然使用VC6.0用于调试讲解。<br />       C++中异常处理机制由try、throw、catch语句组成。<br />q        try语句块中负责监视异常。<br />q        throw用于异

2010-10-02 11:46:00 1385

原创 异常处理

<br />C++标准中只规定了异常处理的语法,各编译器厂商也都予以实现。但由于C++标准中并没有规定异常处理的实现过程,造成了不同厂商的编译器,编译后产生的异常处理代码也不相同。本教程中一直使用微软C++编译器系列中的Microsoft Visual C++ 6.0,因此本章也不例外,依然使用VC6.0用于调试讲解。<br />       C++中异常处理机制由try、throw、catch语句组成。<br />q        try语句块中负责监视异常。<br />q        throw用于异

2010-10-02 11:45:00 2648 1

原创 关于sysenter与KiFastSystemCall

<br />xp下用sysenter指令代替了int 2eh来进入ring0,似乎所有的sysenter都是通过KiFastSystemCall来调用的<br />KiFastSystemCall()<br />{<br /> sysenter<br />}<br /> <br />这样是不是可以通过Hook  KiFastSystemCall来了解哪些是需要调用内核的API了<br /> <br /> <br /> <br /> 

2010-10-02 00:20:00 1888

原创 函数框架

<br />vc6.0 Debug方式下 //_c调用方式 void add(int a,int b) { int c = a + b }6: void add(int a,int b)7: { //保存ebp,并让ebp代替esp 因为ebp稳定00401010 push ebp00401011 mov ebp,esp //为变量预留空间0x4400401013 sub e

2010-09-15 18:01:00 803

原创 【PE】加区段

<br />方法一:<br /> <br />方法二:<br />      增加最后一个区段大小 在增加区域添加Code

2010-08-17 14:15:00 534

原创 冰河暗涌防不胜防 BIOS下实现的Telnet后门

<br />来源:51CTO<br />作者:成松林<br />【51CTO.com 独家特稿】该项目仅为实验性项目,主要目的是想隐藏一个Telnet后门在主板的BIOS内,并让其随着计算机系统及操作系统成功的运行起来。运行后能反向Telnet连接到指定的计算机接受控制。<br />项目涉及的相关知识及技术目录<br />1、 实验环境,使用bochs调试工具。<br />2、 刷新BIOS技术问题。<br />3、 代码植入BIOS问题。<br />4、 源代码相关技术问题:<br /> <br />A、

2010-07-30 03:11:00 554

原创 多obj 连接时遇到的错误 Linker Tools Warning LNK4098

Error Message defaultlib 'library' conflicts with use of other libs; use /NODEFAULTLIB:libraryYou are trying to link with incompatible libraries.Note The run-time libraries now contain directives to prevent mixing different types. You will receive this war

2010-07-29 20:34:00 576

原创 汇编调用C库函数

<br /> 1.先包含(由于radasm的爱好者做好了inc和lib文件) : include msvcrt.inc includelib msvcrt.lib 2.调用C库函数和调用api一样,但名字和C语言函数的名字有一点点不一样,如调用比较函数: Invokecrt__strcmpi, offset sz1, offset sz2 开头通常要加上crt__或crt_(可以自己到msvcrt.inc中去看声明)

2010-07-29 15:19:00 1549

原创 解决masm与GetEnvironmentString不兼容问题

<br /> <br /><br />Masm32中 kernel32.inc 中对GetEnvironmentStrings存在问题<br />所以当在私用masm编译的时候会出现如下错误提示<br />LIBCD.lib(a_env.obj) : error LNK2001: unresolved external symbol __imp__GetEnvironmentStrings@0<br />test.exe : fatal error LNK1120: 1 unresolved externa

2010-07-29 15:04:00 2385 1

原创 __declspec(naked)(裸函数)和__asm

<br />__declspec(naked) 是告诉编译器 不要对函数进行优化  函数的所有实现包括堆栈的平衡   参数的压栈 ebp的赋值 还原 都要我们来做<br />甚至是ret / ret n  都要我们来做 <br /> <br />演示代码<br />int add ( int a, int b ){ return a + b;}// 有压栈,又要有出栈,这样才能使堆栈平衡。__declspec(naked)add2( int a, int b ){

2010-07-28 22:07:00 4282

原创 汇编与VC (c or c++)之间的嵌套调用

<br /><br />第一:VC写Dll  供asm调用<br />Dll:<br />BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, <br />                       LPVOID lpReserved)<br />{return TRUE;}<br />extern "C"int sortBuf(char* pBuf)<br />{…函数实现}<br />DEF:<br />EXPORTS<br

2010-07-28 21:52:00 785

原创 一劳永逸---循环移位操作

<br />不带进位循环(循环过程无CF参与  但CF接收移动位的副本)<br />rol左移<br />mov ax,900A    ;ax = 1001 0000 0000 1010  cf = 0<br />rol ax,1        ;ax = 0010 0000 0001 0101  cf = 1<br /> <br />0BA3:0100 mov ax,900A<br />0BA3:0103 rol ax,1<br />0BA3:0105<br /> <br />ror右移<br />mov

2010-07-16 22:53:00 1248

原创 有符号数与无符号数相乘

<br />在32为电脑中<br />已知<br />有符号整数X<br />无符号整数Y 且 Y >= 0x80000000<br /><br /><br /><br />结论:<br /><br />注:s表示<br /><br />由此可得出如下汇编代码<br />假设X = 123h<br />        Y = 8765h<br /><br />mov ax,08765h<br />mov cx,0123h<br />imul cx                               

2010-07-15 20:19:00 7892

转载 汇编的进位与溢出

对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出<br />而对有符号数来说,不存在进位的问题<br /><br />一个字节(8位) 的数有256个 (2的8次方)<br />一个字(16位) 的数有65536个 (2的16次方)<br /><br /><br />8个二进制位能够表达的无符号数范围是:0 ~ 255  <br />16位表达的无符号数范围是:0 ~ 65535  <br />对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出. <br />进位表示最

2010-07-14 16:38:00 1618

原创 【16位汇编】neg+sbb算术运算代替逻辑跳转

举例代码如下 _asm { mov ax,1 sub ax,1 neg ax -->关键点 sbb ax,ax -->关键点 mov bx,4 lea bx,[bx-4*ax] //这句伪代码 }这句代码的关键点是neg 和sbb相关知识点neg(求补指令) NEG指令除了对操作数作符号取反外 会根据操作数来修改标志位CF当操作数为0是CF修改为0  否则CF修改为1sbb( 带借位减法指令) SBB reg,imm/reg/mem

2010-07-14 14:55:00 2796

转载 VC虚拟键列表

<br />符号常量            十六进制值       指定的鼠标或键盘按键   <br />  VK_LBUTTON       01                鼠标左键   <br />  VK_RBUTTON       02                鼠标右键   <br />  VK_CANCEL         03                Control-break   过程   <br />  VK_MBUTTON       04                鼠

2010-06-05 01:59:00 565

转载 无法删除代码R3

<br />#include <windows.h>BOOL OccupyFile( LPCTSTR lpFileName );int main(){ OccupyFile("c://aaa111.txt"); return 0;}void RaiseToDebugP(){ HANDLE hToken; HANDLE hProcess = GetCurrentProcess(); if ( OpenProc

2010-06-04 00:27:00 384

原创 c++模拟MFC中运行时类型识别(RTTI)(Run-Time Type Identification)

<br />// CRuntimeClass.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream.h>typedef long BOOL;#define TRUE 1#define FALSE 0//运行时类型识别struct CMyRuntimeClass{ char m_ClassName[32];

2010-05-31 21:36:00 485

转载 Winsock2中WSAAsynSelect()模型各种事件的触发条件

转自:http://dev.csdn.net/article/39/39132.shtm 使用WSAAsynSelect()模型的关键是要搞清楚各种事件的触发条件,不然会造成读或写数据混乱。这些事件的触发条件同样适用于CAsyncSocket=======================[1]FD_READ事件触发条件:1.在数据到达socket后,并且从来没有触发过FD_READ(也就是

2010-05-30 23:38:00 725

原创 关于GetDIBits的使用 抓狂搞了1整天 备注待查

 HBITMAP是常用的GDI对象,而GetDIBits可以从一个HBITMAP对象中获得其对应的位数据。其原型如下:int GetDIBits(    HDC hdc, // handle to DC hdc, // handle to DC                             HBITMAP hbmp, // handle to bitmap              

2010-05-27 20:16:00 21512

原创 Windows网络编程 の 原始套接字学习笔记ICMP

  原始套接字学习笔记 由于原始套接字能够对基层传输机制加以控制,所以存在一定的潜在的安全漏洞,因此在WIN NT下只有“Administrators”组的成员,才有权创建类型为SOCK_RAW的原始套接字,但是在NT中可以通过修改注册表绕过这一限制,能够达到让系统禁制对原始套接字的安全检查 方法如下:注册表中创建如下变量 并设置为1(DWORD类型)HKEY_

2010-05-26 21:18:00 1887

空空如也

空空如也

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

TA关注的人

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