展开

关键词

win32简介

复习Win32整理下知识. 为什么学习win32?   我们要写windos序.都离不开API. 也就是我们所说的win32序. 所以学好win32是你能不能再windows下序的基础. 在win32下我们要学习的知识如下.   1.字符  字符的存储.   2.多线.   3.线同步   4.窗口序.城后本质.   5.消息机制.   6.进   7.内存 管理    8.文件操作.   9.内存映射   10.DLL以及静态库序   11.DLL注入技术.   12.模块隐藏.脱链   13.进通信.   14.HOOK技术. 二丶字符的本质   我们发现学习Win32要学习很多知识.不过总结一下也没有那么多.主要是多用多学多做. 首先说下字符.   字符有 ASCII码格式.有 UNICODE格式.

61730

Win32文件系统

Win32文件系统 一丶了解什么是文件系统   文件系统是抽象的.是windows在软件层面提供的一层虚拟的数据结构. 文件系统分为NTFS 跟 FAT32. 例如C盘.  目录则是C盘里面的文件夹. 文件夹里面可能还是以文件夹. 也可能是文件. 卷操作API 很简单. 常用的就四个. GetCurrentDirectory(); //获取进当前目录 SetCurrentDirectory(); //设置进当前目录. 四丶内存映射文件之多进共享.   如下图所示: A进映射物理内存.并且映射文件. B进使用这块物理内存其实也是操作文件. 那么双进就可以使用了.

4210
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    win32序之子窗口

    具体代码如下: 当主窗口创建消息来得时候.我们创建一个EDIT辑框. // WindoS.cpp : 定义应用序的入口点。 SetDlgItemText(hWnd, IDC_MY_EDIT_ONE, TEXT("设置到辑框的内容")); //此API时设置指定窗口中控件ID的显示名称.我们给辑框设置.所以ID是辑框的 点击设置后.辑框的内容会改变. ?  点击获取后则会获取辑框的内容. ? 四丶完整代码. 最后附上完整代码.拷贝就能使用. VS2015写.不确定是否可以.不过可以参考代码. 代码如下: // WindoS.cpp : 定义应用序的入口点。 MSG msg; /* 1参数是消息结构体.操作系统会往里面填写消息. 2 参数窗口句柄 因为每个线可以有多个窗口.表示我要取那个窗口的消息 3.4 参数表示我要取这个窗口的那个消息.

    83120

    thrift:在cygwin下C library for win32(libc_glib)

    (有空专门写一个thrift c++库的译过) 但是要在windows下译thrift C library,用MSVC或MinGW都是无法译的,也无法借助MSYS2环境译。 所以如果要译thrift c library for win32必须在cygwin下执行。 下面以thrift 0.11.0版本为例说明在cygwin下C library(lib/c_glib)的过C library 译过如下: . 中-D_GNU_SOURCE用于解决C++ library时报错的问题,如果不C++ library可以不加 .

    64720

    win32线

    一丶什么是线 在windows中常听到的就是线.多线.啊什么的. 这里介绍一下什么是线. 1.线是附属在进中的一个执行实体.简而言之就是执行代码的. 2.每个进至少有一个线.可以有多个线. 一对多的关系. 3.单核CPU可以实现多线. 几秒钟换一次线执行不同进的代码.就实现了多线. PS: 在切换的过中会保存线的信息. 堆栈寄存器等信息. SuspendThread 挂起线.如果挂起则线不能执行 DWORD SuspendThread( HANDLE hThread 需要线句柄 ); 64位下 DWORD 我们知道线切换的过中.操作系统会保存线当前寄存器的值.以及EIP.所以会有一个结构体来保存.这个结构体就是CONTEXT.称作线上下文.

    35410

    LNK2019 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void) (?invoke_main@@YAHXZ) 中被引用

    这个报错网上查了很多,大概原因是: c语言运行时找不到适当的序入口函数, 一般情况下,如果是windows序,那么WinMain是入口函数,在VS中新建项目为“win32项目” 如果是dos控制台序 ,那么main是入口函数,在VS中新建项目为“win32控制台应用序” 而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。 win32控制序和win32项目以及mfc项目区别: 空项目,大多数想单纯创建c++工的新同学,打开vs后很可能不知道选择创建什么工,这时候请相信我,空项目是你最好的选择。 (6)Win32控制台序:初始代码模版以main为序入口,默认情况下,只链接C++运行时库和一些核心的win32库,链接器subsystem参数为console类型,所以译出来的序会有黑色的控制台窗口作为呈现标准输入 另外, 可将 Win32控制台序 当成 在Win32项目 使用,反之亦然。/subsystem:windows或/subsystem:console删除,由译器自己决定也可以

    6.4K51

    windows下在QT里调用ffmpeg库处理音频视频数据时,出现error missing -D__STDC_FORMAT_MACROS 错误的解决方法(MINGW32译器)。

    当前QT版本:5.12 译器:MinGW 32位 QT的xxx.pro工文件: QT += core gui QT += multimediawidgets QT += widgets QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c+ image.qrc 调用FFMEGE库译时出现错误如下: In file included from .. AVPacket pkt = { 0 }; // data and size must be 0; 解决方法: /新增 #ifndef INT64_C #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) #endif #if defined __cplusplus #define __STDC_CONSTANT_MACROS

    9330

    老码农怎么学Windows

    在微软公司的windows平台下,有众多的语言和模式,比如windows SDK、C/C++、MFC、VB、Win32等,哪种是最合适你的呢? 控制台下的C/C++效率是很高的,在现代化的译器下的C语言目标代码,很可能比一般人写的汇语言执行效率还高。C/C++语言由于指针的存在,很适合各种高效的算法设计和系统服务。 如果你要做的是工逆向、windows平台软件加密/解密、病毒、了解序运行的详细情况,那么Win32无疑是你的最佳选择了。 Win32执行高效,还能深入底层甚至可进入系统内核,了解windows的运行机制,比如各大安全厂商基本都有Win32高手。 但是由于Win32并不像高级语言那样易学易用,需要花较多时间才能掌握,且不适合写较大的序,所以除非研究或者需要才会去学习,你做好准备了吗?

    654130

    Stealth Falcon黑客组织无文件后门分析

    这些相似之处证明了win32/stealthfelcon属于Stealth Falcon黑客组织。 Win32/StealthFalcon后门是在2015年创建的,允许攻击者远控制受损的计算机。 C&C通信 在与C&C服务器的通信中,Win32/StealthFalcon使用标准的Windows组件Background Intelligent Transfer Service(BITS)。 win32/stealthfalcon可以在两个c&c服务器之间切换通信,这两个服务器的地址与其他配置值一起存储在注册表项中,并且可以通过后门命令进行更新。 此外,win32/stealthfalcon通过在临时文件夹中存储一个带有硬码前缀的加密副本来收集文件并进行过滤。后门会定期检查这些文件,并自动过滤它们。 在这两种情况下,来自目标主机的所有网络通信都以标识符为前缀,并使用硬码密钥用rc4加密。 对于c&c服务器通信都使用https,并为连接设置特定的标志以忽略服务器证书。

    40900

    vs2015译tcmalloc(gperftools2.4)

    zip包下载解压后是如下图的文件结构: 此压缩包内含README_windows.txt说明文档,该文档包含详细使用教。 gperftools.sln则是MSVC工文件, 根据gperftools源码包中的README_windows.txt说明,gperftools可以在VC++ 7.1(Visual Studio 然后按ctrl+shift+B译整个工。。。报出无数错误。。。 在不同的译器下译,要根据译报错的信息来相应修改config.h来解决。 结论 要正确译tcmalloc,应该根据c++译器类型和版本的不同,修改config.h以达到与译工具最匹配的状态,config.h中还有很多选项没有仔细研究,需要进一步深入了解。

    6620

    Windows下使用VS2019和CMake 3.18.3译使用yaml-cpp库

    3.1、使用VS2019Win32 Debug模式的`yaml-cppd.lib`库 3.2、使用VS2019Win32 Release模式的`yaml-cpp.lib`库 4、在VS2019中使用 由于本人在实际项目中采用C++写控制台序的过中使用yaml文件比较多,目前使用比较的多的就是yaml-cpp这个C++ yaml解析库了。 版本的Win32的静态lib库,大体步骤和Windows10下使用VS2017译和使用yaml-cpp库这篇博客描述的一致。 下载好yaml-cpp源代码并解压到F:\rate\iot_sdk\third_part目录下,然后再该目录下创建一个build目录,用于存放译过中的中间文件,这样做主要是为了不影响源代码,弄错了可以删除重来 3.1、使用VS2019Win32 Debug模式的yaml-cppd.lib库 选择需要译的平台和模式,如Win32/Win64以及Debug/Release 上面选择了Debug以及Win32

    64620

    FFmpeg菜鸡互啄#第2篇#配置VS开发环境

    创建工 打开Visual Studio 2013,创建一个空的控制台项目。 ? 配置FFmpeg目录 在上面一步创建的工目录下,创建一个FFmpeg文件夹。 把ffmpeg-2.5.2-win32-dev.7z压缩包里的include文件夹的所有内容复制到FFmpeg\inc目录下,ffmpeg-2.5.2-win32-dev.7z压缩包里的lib文件夹的所有 并在工文件夹里新建一个bin文件夹,把ffmpeg-2.5.2-win32-shared.7z压缩包里的bin文件夹的所有.dll文件复制到bin目录下。 ? 附加包含目录添加.. lib, "swresample.lib") #pragma comment(lib, "swscale.lib") int main() { //初始化FFMPEG 调用了这个才能正常适用码器和解码器 is: %d\n", avcodec_version()); system("pause"); return 0; } ---- FFmpeg一共包含8个库: ▫ avcodec:解码

    85860

    Windows下使用VS2013译使用SDL库

    SDL用C写,可与C ++一起使用,并且有绑定可用于其他几种语言,包括C#和Python。 SDL 2.0在zlib许可下分发。 该许可证允许您在任何软件中自由使用SDL。 SDL官网地址为:SDL 在VS2013中译SDL源代码相关的静态库和动态库 参考官方文档Using SDL with Microsoft Visual C++ 本博客写时,SDL的最新稳定版本是 可以看到所有工和测试都成功了,一共是25个,我们使用SDL开发时主要用到的是SDL2以及SDL2main的静态库以及相应的头文件,生成的Win32的Debug库如下图所示: ? 百度网盘链接:https://pan.baidu.com/s/15BD7C2z7VICpVoIYcejcXg 提取码:rfai 使用SDL库写SDL序 参考Using SDL with Microsoft 使用VS2013创建一个基于Win32的控制台应用序,命令为SDLDemo1,为工创建一个main.cpp文件,如下图所示: ?

    92710

    【自动化测试】Selenium

    WebDriver 测试 phantomJS无界面浏览器 lxml beautifulsoup4 pyquery pymysql 安装flask 安装Django 安装Jupyter 理解 web应用序测试工具 (录制、写、运行、测试并行处理) api 辑 并行测试 ? 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>

    30420

    VS中Qt自动生成moc_XXX.cpp文件的一些问题

    ,变成标准C++译器可以识别的东西。 moc 全称是 Meta-Object Compiler,也就是“元对象译器”。Qt 序在交由标准译器译之前,先要使用 moc 分析 C++ 源文件。 全删除了(是在VS的工项目中删除的,在文件夹中删除了,无所谓,每次译的时候,会自动moc,这个过是你XXX.cpp文件的设置)。 那么我直接将删除的moc_bridge.cpp文件添加进Generated/Debug 中,这样Debug模式下,序就可以正常的译运行了。 ? 3.警告LNK4042 以及解决 但是! 在Release模式下译链接,会出现一个Warning: 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets

    1.2K21

    spring整合各种RPC框架(netty、dubbo、dubbox、gRPC、Motan、Tars)-续(Tars)

    信息上报流:server服务运行后,会定期上报统计信息到stat,打印远日志到log,定期上报属性信息到property、上报异常信息到notify、从config拉取服务配置信息。 因此,从使用者的角度出发,封装了大量日常开发过中经常使用的公共库代码和远调用,让开发使用更简单方便;从框架本身的角度出发,做到高稳定性、高可用性、高性能,这样才能让业务服务运营更加放心;从分布式平台的角度出发 tars协议采用接口描述语言(Interface description language,缩写IDL)来实现,它是一种二进制、可扩展、代码自动生成、支持多平台的协议,使得在不同平台上运行的对象和用不同语言写的序可以用 -- 生成源代码码 --> <charset>UTF-8</charset> <! -- 生成源代码码 --> <charset>UTF-8</charset> <!

    46320

    GDAL集成对KML文件的支持

    下载解压后可在其根目录找到libkml.sln这个文件,通过这个文件可以在visual studio中打开,然后直接译就可以了。总结下在译过中我遇到的问题: 1.1.1. 译错误 在译libkmlbase这个库的file_win32.cc这个文件的时候,提示这段代码出错: // Internal to the win32 file class. $(LIBKML_DIR)/third_party\zlib-1.2.3.win32/lib/zlib.lib LIBKML_DIR = C:/Work/GDALBuild/libkml-master 链接问题 在译链接GDAL的过中,出现了形如“无法解析的外部符号“这种类型的错误,如下所示: ? 这是由于LibKML默认工中包含的文件不全,GDAL在译链接的时候找不到实现造成的。 只需要搜索无法解析的函数所在的文件,将其加入到LibKML的工中,重新译LibKML和GDAL就可以了。

    55010

    基础】Win32窗口下调试输出

    Win32的console下,我们可以用基本的printf,来输出调试信息,这个很方便。 其实在窗口模式下,windows提供了一个函数OutputDebugString,用于向开发环境的debug窗口输出信息,结合C语言的可变参数,就能实现跟printf一样的功能了,下面就是一个简单的采用 vsntprintf(szData, sizeof(szData)-1, format, arg); va_end(arg); OutputDebugString(szData); } 另外,在写 windows应用序时,不管是console还是窗口序,都会经常使用GetLastError函数获取出错信息,但是这个获取到的仅仅是一个错误号,需要查询MSDN才能得知是什么意思? OutputDebugString((LPCWSTR)lpDisplayBuf); LocalFree(lpMsgBuf); LocalFree(lpDisplayBuf); } 如果你是在Windows平台下

    80080

    golang 译cgo模块exec: gcc: executable file not found in %PATH%

    golang译cgo第三方包(sqlite3)时会提示 exec: "gcc": executable file not found in %PATH% linux下好解决,原生gcc, windows /i686-8.1.0-release-win32-dwarf-rt_v6-rev0.7z) 下载,解压,然后把mingw-64/bin添加到path 重启个命令行,输入gcc -v C:\Users\ -enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-win32 win32-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810

    2.7K10

    vs 2010调用matlab dll显示窗口核心代码

    R2012b 混合 思路:为了实现matlab与C++混合,采用由m文件构造动态链接库然后在visual studio中调用的方法。 ,对于这一点,Matlab的帮助说明如下:                -W lib:string link:lib其中-W是控制译之后的封装格式,cpplib,是指译成C++的lib,cpplib \MATLAB\extern\lib\win32\microsoft;               ... \MATLAB\extern\lib\win32\microsoft             ③Property Pages -> C/C++ -> General -> Additional Include                把刚才生成的*.h *.dll *.lib文件复制到刚刚新建的工的文件夹下,并且用添加—现有项添加的工中。

    28620

    相关产品

    • FPGA 云服务器

      FPGA 云服务器

      腾讯FPGA云服务器是基于FPGA硬件可编程加速的弹性计算服务,您只需几分钟就可以获取并部署您的FPGA实例。结合IP市场提供的图片,视频,基因等相关领域的计算解决方案,提供无与伦比的计算加速能力……

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券