
Win32编程
文章平均质量分 80
知平软件
上海知平软件的博客
展开
-
解决LoadImage加载图片报告内存不足的错误
在使用Win32 API LoadImage加载大量图片,或者加载很大的图片的时候,你可能会碰到图片加载失败,而且调用GetLastError显示错误是“内存不足,无法完成此操作!”,打开任务管理器,却发现系统里面还有大量的内存空闲。比如使用下面的代码你就会碰到这个错误—当然你要准备大量的BMP图片:#include "StdAfx.h"#include "SampleBa原创 2009-02-02 22:19:00 · 6253 阅读 · 0 评论 -
应用程序调试技术视频观看指南
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 对于研发公司IT支持人员,项目或开发经理,设置事后可跟踪的BUG跟踪以及分析服务系统,建议选择观看:1、应用程序调试技术第1讲 准备调试环境2、应用程序调试技术第2讲 管理符号文件与源代码3、应用程序调原创 2012-03-01 15:35:50 · 5312 阅读 · 0 评论 -
VC编写的程序不能在其他机器上运行的解决方案(续)
我在前面的文章里面提到由于side-by-side问题导致的VC编写的程序不能正常启动的问题的解决方案,这种方法是针对于单个可执行文件的解决方案,但是有的时候你可能会碰到另外一种情况—也是由于side-by-side问题导致的,你的程序支持插件,当你的程序试图加载一个依赖于CRT的DLL的时候,Windows告诉你不能加载DLL。 比如微软在06年发布了CLR的开源版本,你在自己机器上用V原创 2009-02-19 20:40:00 · 2416 阅读 · 0 评论 -
如何利用缓冲区溢出的程序错误来运行黑客程序
很多搞IT都听说过缓冲区溢出,但是怎么利用缓冲区溢出的Bug来运行你自己的代码呢?这里我只介绍怎么利用静态缓冲区溢出来运行黑客程序。因为动态的,我还不会用。:) 第一节 堆栈的形式在程序运行的时候,每次程序调用一个函数的时候,程序就要在内存里面分配一个空间来保存这个函数要使用到的本地变量,还有参数啊什么什么的。下面用一个程序片断来演示一下堆栈的形式void TestCall原创 2008-12-04 21:01:00 · 5101 阅读 · 1 评论 -
如何利用缓冲区溢出的程序错误来运行黑客程序(续)
上回说了,我们可以在一个有缓冲区溢出漏洞的程序中执行程序中其他的函数,当然,也可以执行程序中其他的指令。还是以上次讲过的程序为例:程序A:#include #include void foo(const char *input){ char buf[10]; strcpy(buf, input);}int main(int argc, char *argv[原创 2008-12-04 21:02:00 · 2875 阅读 · 0 评论 -
调试器基础
在Windows中,Windows API CreateProcess提供了一个枚举值允许你的程序调试其他的程序,比如下面的代码就是创建一个调试器的最基本的步骤:1. 启动一个程序,并指定你希望调试这个程序—例如DEBUG_PROCESS2. 然后监听Windows给你的程序发送的各种调试消息,例如被调试程序正在加载一个新的DLL(不管是静态调用还是动态调用原创 2009-02-10 00:41:00 · 1540 阅读 · 0 评论 -
Windows的用户管理中的用户模拟
用户模拟(Impersonation)是自从Windows 2000时引入的强大的功能。Windows系统甚至允许用户模拟(Impersonation)被用在客户端/服务端的编程模型里面。 在传统模式下,比如一个远程服务器可以提供文件、打印机或者数据库服务,希望使用这些资源的客户端可以发送一个请求给远程服务器,这时候,远程服务器必须要确保客户端有权限来访问它请求的资源,于是远程服务器查询原创 2009-02-06 20:34:00 · 2909 阅读 · 0 评论 -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明 - 天,没有什么比这个更让人恶心的事情了。因为:1. 如果你的结构体里面包含 TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。2. 如果你的结构原创 2009-02-05 20:53:00 · 41556 阅读 · 43 评论 -
Windows里面异常实现机制简介
标题党,请参考我的这篇文档:http://blog.youkuaiyun.com/Donjuan/archive/2009/02/02/3859160.aspx原创 2009-02-02 22:18:00 · 1566 阅读 · 0 评论 -
理解First Chance和Second Chance避免单步调试
在现在C++、Java、.Net代码大行其道的时候,很多代码错误(Bug)都是通过异常的形式表现出来的。由于工期紧或者种种原因,很多程序员在碰到程序发生未处理的异常的第一反应就是try … catch (Exception e) { … }。然而代码开发到后期的时候,这种简单粗暴的解决代码错误(Bug)的方式就会在其他不相干的地方表现出来,有的时候甚至导致程序随机的不稳定,而且很难调试。比如执行下原创 2009-02-02 22:15:00 · 15274 阅读 · 7 评论 -
应用程序调试技术视频各集技术概述
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 第1讲 准备调试环境 调试符号文件的作用; 创建符号文件的方法; 在调试器里有无符号文件的区别; 公开符号版本和私有符号版本的区别; 创建公开符号文件的方法;原创 2012-03-01 15:34:51 · 4877 阅读 · 0 评论