windows
zhoujiaxq
这个作者很懒,什么都没留下…
展开
-
用Detours实现APIHOOK
用Detours实现APIHOOKDetours是一个软件开发库,它用于实现拦截Win32二进制代码中的API函数。它使用一个Jmp指令替换了目标函数的前面几个字节,使得控制直接调用实现的Detours函数。并通过一个trampoline函数保留了原来函数的功能调用。我们知道,实现APIHOOK主要有两个重要环节,一是如何把代码注入到目标地址空间,二是如何让自己的代码被调用。转载 2014-01-22 11:11:00 · 18988 阅读 · 0 评论 -
Win下的输入法(IME)编程(1)
·win下的输入法编程方法 在win下编写输入法主要可以采用外挂式和IME方式两种: ·外挂式的实现核心是通过键盘钩子对输入进行拦截,再把要输出的内容传送给处于活动状态的编辑窗口。 ·IME方式则是使用系统提供的IME(Input Method Editor)接口实现输入法。 头一种方法自己并未接触过,但使用钩子技术在兼容性上转载 2014-03-11 11:36:31 · 1456 阅读 · 0 评论 -
输入法编辑器(IME)编程指南
以下是IME编程中需要用到的几项基本组成元素: • IME函数 • IME消息 • IME命令 • IME结构 • IME常量IME函数 本节列出了所有IME函数。函数说明EnumInputContext由应用程序定义的,提供给ImmEnumInputContext函数用来处理输转载 2014-03-11 11:37:18 · 2130 阅读 · 0 评论 -
Intercepting Calls to COM Interfaces(hook com接口)
Table of ContentsIntroductionSome Basic Concepts of COMPractical Example Approach #1: Proxy Object Approach #2: Vtable PatchingConclusionReferencesHistoryIntroduction In this转载 2014-03-07 08:55:27 · 1871 阅读 · 0 评论 -
输入法的TSF框架(Text Service Framework)简介
几个关于TSF的术语TIP (Text Input Processor), a Text service in TSFCicero,TSF的开发代号,所以微软内部通常称呼TSF框架为CiceroCUAS (Cicero Unaware Application Support),为所有应用程序和控件提供基本的TIP支持AIMM(Active Input Method Manager)转载 2014-03-12 10:08:19 · 3918 阅读 · 0 评论 -
输入法注入原理
因为不懂,所以留个记号,方便大家一起查阅都是转的,不要告我侵权给你一篇转自vckbase的文章 首先我们需要明白输入法是什么东西。目前常用的输入法基本上有两种类型:外挂式(如早期的万能五笔)及输入法接口式(Input Method Editor-IME)。外挂式比较简单,就是一个exe文件,通过模拟一些Windows输入消息来给当前处于活动状态的编辑窗口输入文字,一个显著的优点转载 2014-03-12 09:19:27 · 2151 阅读 · 0 评论 -
一个设置默认输入法的小程序
用C++写了个设置默认输入法的小程序,E文不好,捣鼓几天才终于弄明白了一些了首先是删除输入法使用 UnloadKeyboardLayout 卸载Imm32框架的输入法,只作用于当前,重新启动后无效。ITfInputProcessorProfiles::EnableLanguageProfile启用或者禁用Tsf框架的输入法,重新启动后有效设置默认输入法使用SystemPar转载 2014-03-12 09:36:14 · 3912 阅读 · 0 评论 -
VS2010快捷键
1. 怎样调整代码排版的格式?选择:编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。格式化cs代码:Ctrl+k+f 格式化aspx代码:Ctrl+k+d2. 怎样跳转到指定的某一行?两种方法:Ⅰ. Ctrl+G Ⅱ. 双击状态栏中的行号3. 怎样创建矩形选区?两种方法:Ⅰ. 摁住alt键,然后拖动鼠标即可。 Ⅱ. 按住Shift转载 2014-03-14 09:24:38 · 722 阅读 · 0 评论 -
Win7 CreateRemoteThread 另类使用方法
同样的代码,在XP下面随便你怎么整,WIN7的话是相当纠结的,具体哪些错误就不解释了 ~~ gg点了二十多页,在韩国某大牛的博客上总算找到一点思路(虽然看不懂韩文,但代码还算勉强看得懂吧) 原来是要用动态调用ntdll.dll >> NtCreateRemoteThreadEx ,于是over~~ 说明:1、InjectDll.exe 是注入DLL的EXE转载 2014-03-14 17:05:59 · 1069 阅读 · 0 评论 -
如何等待进程树结束
我们通常使用的WaitForSingleObject只能等待一个进程结束,如果进程中间又发起了另外一个进程,我们如何知道那个进程结束?其实,Windows平台上有Job Objects,可以对进程进行分组管理。只要把一个进程指定给一个Job,其子进程也会自动归属该Job,除非主动脱离。这样,我们就可以通过Job来跟踪整个的进程树了。示例代码:#include "stdafx.h转载 2014-03-18 09:28:08 · 1186 阅读 · 0 评论 -
Win下的输入法(IME)编程(2)
·基于IME的输入法的安装、更新及卸载 ·安装 了解了系统是怎样保存输入法的信息后,要安装一个输入法就是很简单的事情了,我们只要准备好一个输入法ime文件,把它放好在某个位置后,再手动往上一点里提到的注册表位置中添加必要的项后输入法安装就算完成了。不过看着为每个已安装输入法分配的那串8位标识字符串(即输入法专属的键盘布局标识),是否觉得以编程手段实现输入法安装还是有点烦转载 2014-03-11 11:35:22 · 1903 阅读 · 0 评论 -
WINXP系统文件保护:sfc_os.dll第五号函数替换系统文件
Windows文件保护是个烦人的东西,我们在写小马的时候不可避免的想要干掉它。流行的思路有以下几种:1.远程注入Winlogon进程卸载sfc_os.dll2.强制替换dllcache里的文件,监视弹窗,使用postmessage发送wm_close消息以关闭。3.调用sfc_os.dll的第5号导出函数以替换文件Windows File Protection is a w转载 2014-02-20 10:07:50 · 1432 阅读 · 0 评论 -
让控制台程序后台运行并开机启动的简单方法
写完了一个控制台程序,想把让它在后台运行,并开机自启动。有一种简单的方法如下。1.后台运行字一个简单的.vbs文件就可以。实现方法如下:如,我的.exe文件是HKServer.exe。可以用文本文档写如下代码[vb] view plaincopyprint?set wscriptObj = CreateObject("Wscript.Shell")转载 2014-01-23 12:36:07 · 23777 阅读 · 2 评论 -
Windows启动过程详解
我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。本文的适用范围随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前就有很多转载 2014-01-28 15:14:04 · 3013 阅读 · 0 评论 -
系统服务的Session 0隔离
【IT168 专稿】甲型H1N1流行,人人谈隔离而色变。好在我们今天谈的不是H1N1的隔离,而是系统服务的Session 0的隔离。 隔离,是为了更好的保护。但是,众所周知的,隔离也会给我们的生活带来一些不便。在Windows 7中,操作系统服务的Session 0隔离,阻断了系统服务和用户桌面进程之间进行交互和通信的桥梁。通过Session 0隔离,虽然可以让操作系统更加安全,但是也给系统转载 2014-02-10 19:17:44 · 1134 阅读 · 0 评论 -
于DLL搜索路径的顺序问题
DLL的动态链接有两种方法。一种是加载时动态链接(Load_time dynamic linking)。Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径。 前天看到这几句,突然设计出一道自认绝妙的笔试题:“如果采用加载时动态链接的方式,Windows搜索要装入的DLL采用转载 2014-02-24 14:19:33 · 609 阅读 · 0 评论 -
XP、Wn7模拟发送ctrl+alt+delete组合键
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖 在我们编写远程控制软件的时候,我们会发现要想解锁server端我们就得发送这三个键的虚拟。下面我说一下解决过程:1.一开始,决定通过keybd_event()来模拟键盘[cpp] view plaincopyprint?keybd_eve转载 2014-02-10 19:54:13 · 1340 阅读 · 0 评论 -
【Directshow】Filter Graph的创建,IFilterGraph2, IGraphBuilder, IcaptureGraphBuiler2的区别
操作filter之前,肯定要创建filter graph。几乎所有的介绍directshow的书和例子都用了 IGraphBuilder, IcaptureGraphBuiler2这两个接口,当然IFilterGraph也有,少用。 这三者有什么区别? 【1】IFilterGraph2,IcaptureGraphBuiler2这两个转载 2014-02-12 17:08:48 · 2600 阅读 · 0 评论 -
多个同类型编码视频切换时,只改变SourceFilter,不改变Filter Graph中其他Filter的C#实现
大概测试了一下,如果直接RenderFile播放的话,视频之间从上一个视频Stop到下一个视频Run之间 所需的时间为下面方法的至少3倍时间,对于采用同一种视频编码的多个视频,可以采用只改变SourceFilter,而其他Filter不用改变的方式来切换视频。实现方式如下,注意需要 DirectShowLibNETDirectShowLibNET - A library t转载 2014-02-13 17:08:13 · 963 阅读 · 0 评论 -
一个最简单的源Filter的编写步骤
1.创建一个空的Dll工程,添加5个空文件分别名为:MyOutputPin.h、 MySourceFilter.h、MyOutputPin.cpp、MySourceFilter.cpp和MySourceFilter.def。2.声明两个类,一个是Filter的实现类,一个是输出Pin的实现类,由于是最简单的源Filter,因此Filter只有一个输出Pin。实 现的功能是从本地磁盘读取三个转载 2014-02-13 17:22:22 · 1677 阅读 · 0 评论 -
Filter组件开发中的SDK基类分析
转载请标明是引用于 http://blog.csdn.net/chenyujing1234参考书> DirectShow SDK提供了一套开发Filter的基类源代码。基于这些基类开发Filter将大大简化开发过程。1、CBaseObject 大部分SDK类都从CBaseObject类(参见combase.h)中继承而来的。class CBaseObject {转载 2014-02-13 17:12:34 · 1579 阅读 · 0 评论 -
CreateRemoteThread远程线程向其他进程注入线程
要实现线程的远程注入必须使用Windows提供的CreateRemoteThread函数来创建一个远程线程该函数的原型如下:HANDLE CreateRemoteThread( HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTH转载 2013-12-27 14:13:20 · 3404 阅读 · 1 评论 -
win7 graphedit调试
在我们编程构建filter链路之前,我们怎么来证明构思中的filter链路是切实可行的呢?最常用的方法是,首先在graphedit中验证,然后再以graphedit中的filter链路为模型在程序中实现。 在程序中构建完filter链路后,有时候并不会马上能够正常运行。要是能够“直观地”看到在程序中filter是怎么连接的,问题就要好办 一点了。实际上,GraphEdit也提供了这样转载 2014-03-17 19:28:31 · 2040 阅读 · 0 评论 -
ShellExecute与ShellExecuteEx的用法
ShellExecute:1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型:HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation,转载 2014-03-18 15:48:56 · 832 阅读 · 0 评论 -
脱壳的艺术(Anti-debug),调试器检测技术
概述:脱壳是门艺术——脱壳既是一种心理挑战,同时也是逆向领域最为激动人心的智力游戏之一。为了甄别或解决非常难的反逆向技巧,逆向分析人员有时不得不了解操作系统的一些底层知识,聪明和耐心也是成功脱壳的关键。这个挑战既牵涉到壳的创建者,也牵涉到那些决心躲过这些保护的脱壳者。本文主要目的是介绍壳常用的反逆向技术,同时也探讨了可以用来躲过或禁用这些保护的技术及公开可用的工具。这些信息将使研究人员特别是恶转载 2014-04-08 11:22:34 · 5942 阅读 · 1 评论 -
VC中 十六进制字符串转换为十进制数字
在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法:view plaincopy to clipboardprint?char *ptr="123"; int n=0; n=atoi(pt转载 2014-04-08 18:01:36 · 1130 阅读 · 0 评论 -
Intel VT入门
前言 传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激!关于VT可以先参考海风月影写的关于VT调试器http://bbs.pediy.com/showthread.php?t=96122 运行环境操作系统: windows XP CPU : intel i3-转载 2014-04-23 15:11:31 · 5586 阅读 · 0 评论 -
正则表达式30分钟入门教程
本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎转载 2014-04-08 21:08:27 · 579 阅读 · 0 评论 -
深入研究Win32结构化异常处理(SEH总结篇)
深入研究Win32结构化异常处理(SEH总结篇) 本文假设你熟悉WIN32,C/C++。引言: 本文是在《Win32 结构化异常处理(SEH)探秘》基础上做的更新总结。探索MS C/C++编译器和MS核心DLL在操作系统SEH上的不同扩展,逐个分析其内部采用的数据结构及处理流程。 摘要: Win32 结构化异常处理其核心是操作系统提供的服务,特定的编转载 2014-04-10 10:31:31 · 1958 阅读 · 0 评论 -
MFC ACtiveX 自定义控件系列操作 动态加载 程序注册 等
项目需要把以前做的一个VC6自定义控件 放到vs2008上使用。把vc6程序转为vs2008,重新编译一下,开始: 怎么在自定义控件程序中添加新方法?如下图所示:类视图 -> 自定义控件LIB -> _D -> 右键添加方法/属性 => 属性添加向导ACtiveX 自定义控件系列操作 动态加载 程序注册 等" alt="MFC ACtiveX 自定义控件系列操作 动态加转载 2014-06-09 16:57:19 · 3189 阅读 · 0 评论 -
Dshow--filter
COM编程基础 DirectShow应用程序实际上是一种COM组件的客户程序,只是COM组件的“使用”问题,这些问题包括如何创建COM组件,如何得到组件对象的借口以及调用接口方法,如何管理组件对象(即需要熟悉COM的引用计数机制)等。 对于filter开发人员来说,需要掌握的COM知识就要多一些。因为filter本身是一种COM组件,开发filter牵涉到了CO转载 2014-05-27 10:35:11 · 840 阅读 · 0 评论 -
关于调用静态链接库LIB,提示重定义或库冲突的错误
在一个项目里使用了静态链接库,但是一编译就报错LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义1>LIBCMTD.lib(dosmap.obj) : error LNK2005: __errno 已经在 MSVCRTD.lib(MSVCR100D.d转载 2014-06-12 15:06:32 · 3723 阅读 · 0 评论 -
ShockwaveFlash控件详解
属性:1.AlignMode (读写)语法:AlignMode As Long说明:对齐方式,与 SAlign 属性联动。当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片(没有被放大的)在控件中显示的位置可用该属性调整。 该属性值由标志位组成。如图,将该属性值(二进制)中相 应的位标记为 1 就设置了相应的对齐方向。属性值与相应的对齐方式。后面括号里是二进转载 2014-06-16 10:11:05 · 3182 阅读 · 0 评论 -
调试器攻击技术 - Unhandled Exception Filter
5、 Unhandled Exception FilterMSDN文档声明当一个异常到达Unhandled Exception Filter(kernel32!UnhandledExceptionFilter)并且程序没有被调试时,Unhandled Exception Filter将会调用在kernel32!SetUnhandledExceptionFilter()API作为参数指定转载 2014-04-08 09:30:28 · 1582 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层转载 2014-03-26 22:32:27 · 575 阅读 · 0 评论 -
如何获得当前运行模块在进程地址空间的位置
(w)WinMain的hInstanceExe参数实际值是一个内存基地址;系统将可执行文件的映像加载到进程地址空间中的这个位置。例如,系统打开可执行文件,并将它加载到地址0x00400000,则(w)WinMain的hInstanceExe参数值为0x00400000.为了知道一个可执行文件或DLL文件被加载到进程地址空间的什么位置,可以使用GetModuleHandle函数来返回一个转载 2014-03-19 14:46:01 · 1092 阅读 · 0 评论 -
PE文件结构处理经验总结
1. IMAGE_DOS_HEADER Dos头需要注意的有两个字段:e_magic和e_lfanew。其它字段不用管它。这两个字段的意义大家都懂得~ 2. IMAGE_NT_HEADER 通过Nt头的Signature字段和Dos头的e_magic来判断该文件是否为PE文件。 3. IMAGE_FILE_HEADER 字段:Machine。该字段通常转载 2014-03-20 13:59:20 · 1183 阅读 · 1 评论 -
【翻译】“PE文件格式”1.9版 完整译文(附注释)
SizeOfRawData 20 00 00 00 ; 代码的大小 PointerToRawData a0 01 00 00 ; 代码节的文件偏移量 PointerToRelocations 00 00 00 00 ; 未用 PointerToLinenumbers 00 00 0转载 2014-03-20 18:43:25 · 1413 阅读 · 0 评论 -
windows bat脚本编写
http://blog.csdn.net/junmuzi/article/details/12239303获取当前所在目录完全路径:@echo offEcho 完全路径: %~dp0pause color设置控制台前景和背景颜色 可同时显示各种颜色:@echo offchcp 437>nul&&graftabl 936>nulif not exist C转载 2014-04-02 10:35:34 · 1364 阅读 · 0 评论 -
批处理CMD显示彩色文字
批处理&&彩色文字ANSI.SYS是MS-DOS中一个很有用的设备驱动程序,利用它,我们可以取得意想不到的显示效果。注意:语法和 ANSI 转义序列中的大写字母必须按原样键入。ANSI.SYS 定义了一系列函数,这些函数被用来改变显示图形、控制光标移动和键的重定义,ANSI.SYS 设备驱动程序支持转义序列的 ANSI,终端仿真,以便控制系统的屏幕和键盘。该设备驱动程序转载 2014-04-02 10:56:00 · 34685 阅读 · 2 评论