C++Windows 程序开发该从哪里开始
小弟原本是做 java 的,最近换了个闲一点的工作。很想学学 C++,再试试开发 Windows 应用程序。算是 0 基础入门吧,刚开始学 C++的基础语法,想请教一下:1.Windows 应用程序开发 0 基础的话,看什么书/视频比较适合入门,请帮忙推荐几本/几个视频;2.需要学哪几块内容;3.学到什么样子可以开发一个应用程序(非商用的那种工具之类的,纯兴趣);4.如果后面学习逆向的话,需要接触 C++么,要学到什么程度。谢谢~
看出来,楼主的目的是 4 ,逆向,你这初心有点不太对。
我不是我没有别瞎说啊.jpg
直接上 Qt 吧
假设你目标是 4 的话1 ,b 站随便找个 c11 以上的教程就行2 ,window 核心编程,看雪的 加密与解密3 ,如果 c++话,qt 是最好的。4 ,学逆向特别是 win 平台,学会 c++继承 多态理论就够了。去看看 window pe 权威指南,了解下内存布局,不过能把 window 核心编程,跟加密与解密 搞懂基本算入门了。不过也没什么意义。win 下早就成熟了。这点技术什么都搞不了。真想学逆向,还是直接移动端把。
一般看 win32. 逆向 c++就算了,有些全程都是指针,各类类型的强制转换, 就算给你源码, 估计也头大的。
从找工作考虑,你可以试试学 js ,然后用 electron 开发应用程序的路,毕竟感觉 c++岗位少,开发效率低,除了 qt 的软件性能确实强于 electron ,没啥突出优点了。你学完 js/node.js ,还可以用于前端或者全栈
先学一些 C / C++ 基础,如果你要逆向的程序用了 C++ 的话那也得会,而且逆向可能需要会一点汇编。你需要学一些 Windows 系统级 API 的使用,也就是 Win32 API 。不妨以开发一个简单的 Windows 窗口应用为目标,但是一些操作系统的基本概念也是需要了解的,比如进程线程、文件 IO 、网络 IO 等等。推荐书籍: Windows 程序设计 book.douban.com/subject/5273955/ 注意不是讲 Win8 的那个新版,是这个旧版,了解 Win32 API 和窗口 Windows 系统编程 book.douban.com/subject/5323432/ 了解其他 Win32 API Windows 环境下 32 位汇编语言程序设计 book.douban.com/subject/24846626/ 了解窗口相关 API 和消息循环,学完之后你可以创建自己的窗口应用程序了 程序员的自我修养 链接、装载与库 book.douban.com/subject/3652388/ 进阶内容,了解 DLL 动态运行库的原理由于以上书籍较老,里面的代码可能有些不能用了,自己写代码的时候可以参考最新的 MSDN ,例如: learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-createwindowa 看一下后面的样例
有 Java 基础和经验 优势:c++ 基础学习方面应该很快,因为很多理念差不多可以触类旁通。劣势:c/c++做一个应用如果仅仅只考虑 Windows 还好点,如果要考虑快平台那么框架(轮子)选型和学习对于没有经验的人来说是一个巨大挑战!不像 Java 和后续的新语言大家基本就用那么几个框架(轮子)做后续的应用。
说一下学习理念的区别:- 首先 java 是跨平台,但是开发有用户界面的 GUI 程序的话,不好跨平台,如果是专指 win 平台程序,那要先学 win32 API- 然后就是,开发 GUI 程序也是需要一大套轮子的,类似 java 里面的 spring 全家桶吧,按钮怎么绘制、点击效果怎么设置这些,都不是系统级的,而是轮子级的 api 。这边商业级项目的话,一般是用 QT- 剩下的么,就是 GUI 程序和 server 程序的架构理念了,在 GUI 程序里面,生命周期的概念、UI 适配、线程切换、缓存、数据传递、跨进程通信这些都是很重要的,server 程序一般都是永远存活,不需要考虑别的,一撸到底就行了。这个区别自己去在开发中感受
先学基础在考虑开发,c++这玩意不是直接上手就能开发软件的语言
- 个人没什么书或视频推荐,建议看看 Win32 基础的注册窗口类、创建窗口、创建控件、消息循环、窗口事件处理的示例代码,大概就能入门了。后续还可以看看 GDI 、Direct2D 等。2. 建议先学 C++平台无关的部分,尤其是 C++11 之后的内容,了解智能指针、RAII 等,然后就可以看看前面提到的 Win32 API 用法,理解得差不多了就可以试试配合 wil github.com/microsoft/wil 调用 Win32 API ,wil 把一些常用的 Win32 API 封装成了 RAII 对象,避免了手动释放的麻烦,又不像 MFC 那样侵入性很大。3. 按上述流程就可以边学边写了。4. 建议至少理解 C/C++的指针和 C++的虚函数表,配合 IDA 反编译。
- 如果有 C++ 基础的话就好说了2. 我看的是《 Windows 核心编程》挺好的一本书,也挺老的,不过依然管用,讲的是 win 的一些机理,一些 api ,不过很少涉及代码层面,因为 win 不开源,所以里面有些东西也是作者自己猜测的(原话)3. 另外还看了一本《 windows 高级调试》,感觉也还行,没看完4. 如果要做产品的话,说白了就是做出 UI 界面,那就用 QT 吧
不浪费时间,直接找个项目复刻
想搞逆向,应该学汇编啊,要是逆向的程序不是 C++写的,而是 golang 或者 rust 写的,学了 C++用处不大。还是好好学习汇编吧,Windows 的话那就是 x86 汇编
windows 开发的话,还是 c#
先跟着官方 学习下 learn.microsoft.com/zh-cn/windows/win32/learnwin32/learn-to-program-for-windows从 0 开始,绘图部分直接是 direct2d, 里面还牵扯到简单 c++封装。
现在投入搞 Windows 开发收益不高呀。
求问那些做病毒逆向的人都是怎么入门的?感觉需要很多年的功力啊😯
刷 crackme
非常感谢各位大佬们,人多我就不一一 @了。祝大家新年事事顺利,财源广进~
讲真的不建议逆向 c++,这就是一坨狗屎,c++写代码可能才几行,等编译器展开各种宏/函数模板/类,逆向出来的伪代码恶心的要死
年轻一批新人不多,本身岗位也不多,科班有那精力搞搞后端钱多了去了,又不是初期一堆灰产可以做,之前大都是互联网初期凭爱好入门。
真羡慕还有那么多时间学 C++,这种神坑建议别跳,人生苦短
c++项目起步都是十几万的, 比 web 页面几千贵多了。
先过一遍语法,要是其他语言,我就劝你直接上项目了。但这是 C++。看书就那本 C++ Primer ,视频的话,随便 B 站播放量高的。
别玩 win 平台了,都已经被人搞烂了,还逆向,你逆向个啥啊,写外挂?逆向微信 pc 端弄 sdk 拿出去卖钱?写病毒?这都 08 年 国内老早就玩成熟了,后面一堆的反反调试,还有各种虚拟机代码混淆,现在还来玩这个,狗都不玩了,你玩这个根本就没收益,要么就大神级别的搞内核,专门给人做驱动过 TP ,或者出海搞外挂基本上都是很刑的路子,如果是为了赚钱,还不如直接卖梯子,搞 win 下的逆向,真的没搞头
windows 下 那些内核编程的书 都老早不更新了
没啥搞头了,以前有灰产 黑产可以做,08 年还能开私服,ddos 也是一门生意,做免杀,灰鸽子,过驱动,写外挂,什么的,都是完整成熟的一条产业链,现在这些东西搞不了,搞私服,稍微大一点立马被警察端,有钱的大佬也不玩私服,之前那些搞私服的后面 积累了第一桶金 很多搞页游发财去了,目前 ddos 也不敢大规模搞了,肉鸡很多也在面向嵌入式设备了,windows 安全防御也成熟了一些,你现在学这个 除了很刑的路子 像出海搞外挂之类的 ,基本上没啥就业岗位,花了这么大的精力 结果发现是屠龙技,没有几条能搞钱的路子 那还搞他干嘛
信息闭塞
谢谢大佬的致命三连 哈哈哈我不是为了用这个赚钱,自己都多少斤两我也很清楚,Java 学了好多年都谈不上精通,更别说 C++了。想学这个纯粹是兴趣使然。至于那些不该碰的,不会碰也没有能力碰。
那么…C#可入吗? NET 系列……
很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞。这个漏洞由法国GNU…
Ubuntu Server 22.04 系统 使用 nginx 官方 apt 源安装 默认配置文件中的用户是 user nginx;。 systemd 服务的配置文件中未指定…
工作用的电脑之前一直是 win7 ,当时不习惯 win10 所以一直没换,现在新电脑只能装 win10 或 win11 ,不知道现在 11 的 bug 还多不多,能不能用来稳定…