
技巧
swanabin
这个作者很懒,什么都没留下…
展开
-
根据文件句柄清空一个文件
SetFilePointer(hFile, 0, NULL, FILE_BEGIN); FlushFileBuffers(hFile); //先把写文件缓冲区的数据强制写入磁盘。SetEndOfFile(hFile);原创 2014-11-20 16:28:58 · 1410 阅读 · 0 评论 -
静态库的导出函数查看
对于dll我们知道使用的是:dumpbin -exports ***.dll来查看dll导出了哪些函数。但是对于静态的lib库函数有哪些导出函数呢?使用的方法是:dumpbin /LINKERMEMBER Test.lib这样就可以得到静态库导出的函数。在导出的文件中,我们知道,如果你是一个静态库的话,那么你必须使用第二条语句才能得到正确的导出的函数转载 2015-04-23 12:21:48 · 5887 阅读 · 0 评论 -
利用公共api提取任意网站favicon.ico图标
如何读取favicon根据设置favicon的方式,就有2种读取favicon的方法: A、默认直接读取网站根目录的favicon.ico文件。B、如果不存在根目录下的favicon.ico文件,就读取页面里favicon的声明。相比之下,获取网站根目录下的favicon.ico文件是最简单快捷的,但如果网站根目录下没有该文件,就需要使用后台程序读取网页的源原创 2015-06-27 12:28:56 · 13316 阅读 · 2 评论 -
处理Manifest问题
具体的方法参考文章:http://www.vcerror.com/?p=1543转载 2015-07-03 15:38:50 · 852 阅读 · 0 评论 -
最简单的DLL导出函数隐藏方式
众所周知,DLL导出函数有两种模式:按函数名或按序号经编译DLL生成后,如果想隐藏函数名不需要任何工具,可以直接改二进制内容进行处理;1、用二进制编辑器打开DLL文件,然后查找“DLL的文件名”。2、文件名后紧跟着就是各个函数名,以00作为分隔符3、文件名前面就是函数的具体信息,包括入口地址、函数顺序号、函数名地址、函数数量等4、找到函数的数量修改为0000000即可,如果转载 2015-07-13 15:56:07 · 5100 阅读 · 0 评论 -
HRESULT 与 Windows Error Codes 不是一回事
在用C++来开发Windows程序时,经常看到下面的判断情况:HRESULT hr = ::RegCreateKeyEx(hk, szKeyPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE, NULL, &hk, NULL);if (SUCCEEDED(hr)) {在代码中,使用SUCCEEDED宏来判断函数RegCrea转载 2015-07-17 10:33:45 · 504 阅读 · 0 评论 -
WOW64:文件和注册表的重定向
注册表重定向解决办法:32位程序如何访问64位的注册表(HKLM/Software)Ø 在调用函数RegCreateKeyEx创建注册表项时,对其第六个参数REGSAM samDesired设置中添加参数KEY_WOW64_64KEY,这样可以实现对64位注册表的访问;Ø 在调用函数RegOpenKeyEx打开注册表项时,要对其第四个参数REGSAM转载 2015-08-25 10:31:15 · 984 阅读 · 0 评论 -
文件和注册表的重定向解决方法
注册表重定向解决办法:32位程序如何访问64位的注册表(HKLM/Software)? 在调用函数RegCreateKeyEx创建注册表项时,对其第六个参数REGSAM samDesired设置中添加参数KEY_WOW64_64KEY,这样可以实现对64位注册表的访问;? 在调用函数RegOpenKeyEx打开注册表项时,要对其第四个参数REGSAM samDesired设转载 2015-11-06 16:14:43 · 1224 阅读 · 0 评论 -
通过序号(索引)调用dll里面的函数
可以指定序数来调用,许多未公开的Windows API就是这样调用的。::GetProcAddress(hLib, (char *)1); // 调用hLib第2个函数。原创 2017-04-01 15:09:34 · 1889 阅读 · 0 评论