书香 发表于 2023-5-17 21:56

【书香编程系列教程】从零开始学编程语言

本帖最后由 书香 于 2024-4-8 20:16 编辑

重点:使用电脑版打开本界面


【前言】
大家好,我是书香,可能一些朋友听说过我,在我任职52hb群管理期间,我发现很多人对于逆向表现出非常浓厚的兴趣,虽然论坛有教学视频,但是有些人感觉看不懂,相当一些人学了很久可能还是只会一些简单的,究其原因在于不会开发


问你一个问题,现在就算人家把软件的源码丢给你你都看不懂不会改,难道使用od去打开,就能知道怎么改?

如果你不会写代码,不了解程序的运行逻辑,始终去套人家的方法,那么就高度受限了,这也是很多人学了一段时间后技术就无法更近一步的原因


本教程目的主要有3个
1:为只会逆向的用户补充编程理论,争取早日突破瓶颈

2:为不理解汇编代码的用户提供代码对照,知道对应的汇编代码在开发中是哪些代码,起什么作用,为什么要这样子去改就能有效

3:为逆向爱好者们提供信心,毕竟逆向强调的是一个结果,现在的壳也是一个比一个NB,学一段时间感觉啥也逆向不了太打击信心了,和编程一起学可以提高自我认可,哪怕逆向不了至少自己能写点小工具,时间不白花,有了好的心态,才能走的更远。这也是逆向和开发最大的区别,开发你能看到的效果是连续递增的,时时刻刻看到效果,逆向看到的效果是跃进的,就像考级一样,完全取决于你想逆什么,有些程序可能你学10年也逆不出来,万一你是想逆那种程序才学的逆向,那就只能说你加油吧。所以学习编程课程可以大大提高大家的信心,让大家时时刻刻可以看到付出的回报,也就能在逆向这条路上走的更远了

重点提示:
本教程以易语言为基础,对其他语言(MFC,php等)进行类比拓展学习,所以大家看本编程内容时需要先学习易语言板块
为什么选择以易语言为主讲
说简单点,易语言就是专门写工具的,你想逆向的程序基本都是易语言的

c是写系统的驱动的,c++是写企业软件的,我相信大家对逆Windows系统、office这些应该没太大兴趣
java主要是写服务器后台的,比如某个宝、京东后端处理系统,几乎没有人使用java来开发exe

提示:
本系统采用图文教程的形式发布:
优点:
①:每一篇文章实际上都相当于浓缩的参考答案,你可以自由选择每一步亲自操作,尽可能节省大家的时间
②:方便复习,文章看第一篇可能花1个小时,但是复习可能只需要3分钟,毕竟不需要重新操作,只要加强理解即可
③:方便穿插来讲,比如我会在文章中引入之前的帖子,也就是将新课的同时复习一下前面的知识
④:可以当做知识手册来用,遇到讲过的问题就可以来到本界面找到对应的帖子再复习一下
⑤:不过度依赖电脑设备,因为不仅仅有操作环节,还有理论环节
⑥:可以发布长篇幅高难度教程,大家可以每天啃一点点,相当于课程设计
⑦:可以进行修正,紧跟最新技术,比如觉得哪里讲的不够好或者不适用了,就重新编辑组织一下语言或者增加词条
⑧:我可以持续更新,有空了就写两篇文章,因为一篇文章我可以花好几天写完不受时间限制,因此我具备了持续更新的条件


这些帖子不是独立分开的,全部是环环相扣的
例子:
讲解http协议,大多数的老师可能就是讲一下怎么去处理数据(cookie、协议头等),我则会引入html+js+css代码的学习,同时让你先看php系列的前面多少章,我会这样去讲解

因为这里是逆向论坛,因此也会联动od去讲解,呈上代码,然后讲解为什么使用od修改这一处就可以实现特定的效果,我的出发点就是大家首先要懂理论,然后再去谈修改,谈发现逻辑漏洞,谈逆向


本系列目前共有图文教程:249篇
本系列目前共有专属系列:1卷(见易语言系列072课下方)

【导读系列】(更新时间:2024/3/23 2:56)
001:【学习编程语言能赚钱吗?怎么赚钱】
002:【朋友都劝我学C,JAVA,其他的不行是真的吗】
003:【经常听别人说某某语言执行速度慢,有多慢?】
004:【编程语言的鄙视链原因解析】
005:【学编程如何坚持下去】
006:【学习顺序】(重点)
007:【软件是否存在绝对防破解】
008:【如何与他人交流的问题】
009:【找人破解程序的3大防范】
010:【如何面对他人学习和生活中的刁难】
011:【关于他人的单子的话术分析】
012:【网络验证和防破解有关系吗】
013:【加各种群学习是否对学习有帮助】
014:【勤劳和思维哪个重要】
015:【学历和能力哪个更重要】
016:【关于大家群交流被喷的问题答复】
017:【中文编程10年内或将占领国内应用市场】
018:【棋牌游戏到底有没有透视】
019:【学习软件技术能赚多少钱】
020:【关于通用绝对破解方法的技术分析】


【知识手册】难度较大(在其他帖子中被引出拓展学习,有基础的可以直接看)(更新时间:2024/4/6 3:45)
001:【变量的深度理解】            002:【数据类型的解读】            003:【协议的理解】
004: 【进制的理解】                  005:【驱动的讲解】                  006:【数组的理解】
007:【多线程讲解】                  008:【ASCALL编码】                  009:【UTF-8和GBK】
010:【窗口句柄】                  011:【进程名和进程id(pid)】       012:【api接口】
013:【post与get】                   014:【脚本&解析语言】               015:【全角和半角】
016:【VS工具和c语言的关系】         017:【Unicode(UTF-16)】         018:【计算机与2进制】
019:【2进制和ascall码】             020:【内存条与硬盘的架构逻辑】      021:【2进制与字节】
022:【语言的编码架构】            023:【文件名的编码规则】            024: 【ANSI编码】
025:【DLL的独立性原则】             026:【局部变量的独立性】            027:【什么是原生开发】
028:【md5的不可逆性】


【Windows使用及修复】(更新时间:2024/3/15 23:46)
001:【前言】                        002:【右键没有新建项】


【易语言系列】电脑程序开发(更新时间:2024/4/6 3:26)(橙色标签表示重要技术,红色标签表示课程设计)
001:【易语言简介与安装】            002:【创建1个exe并运行】            003:【对窗口进行任意设计】
004:【软件运行的原理】            005:【组件的深入理解】            006:【如何看懂一份源码】
007:【功能函数的初步认识】          008:【变量的认识】                  009:【数据类型的认识】
010:【功能的参数填空】            011:【认识时钟组件】                012:【配置的读写】
013:【代码中=的理解】               014:【认识选择结构】                015:【子程序的调用】
016:【认识常量】                  017:【支持库和模块】                018:【小结:计算器】
019:【查看模块指令】                020:【变量的权限类型】            021:【自定义数据类型】
022:【菜单的设计】                  023:【超级列表框】                  024:【tcp—留言功能】
025:【计次循环首】                  026:【数组的认识】                  027:【判断循环首】
028:【多线程的应用】                029:【多线程+死循环】               030:【时钟与多线程】
031:【时钟实现滚动公告】            032:【数据类型:子程序指针】      033:【数据类型:字节集】
034:【易语言乱码问题】            035:【小结:密码验证】            036:【精易工具的下载】
037:【精易工具的下载及使用】      038:【小结:代码句柄操作】          039:【进程id的应用】
040:【超级列表框读取数据】          041:【http相关应用】                042:【post操作-网络验证】
043:【变量的权限类型】            044:【店铺会员系统设计】            045:【导读:功能的封装】
046:【子程序参数传值】            047:【子程序内部运算】            048:【易语言模块开发】
049:【dll讲解】                     050:【dll的开发】                   051:【dll的调用】
052:【类模块的开发】                053:【信息框的返回值应用】          054:【tcp—聊天工具的开发】
055:【http后台搭建】                056:【游戏反FZ技术讲解:前言】      057:【内存型FZ原理】
058:【CE工具的下载】                059:【CE修改内存】                  060:【代码实现内存修改】
061:【程序的虚拟内存空间】          062:【dllFZ的原理】               063:【dll注入技术】
064:【图色脚本原理】                065:【拦截型FZ原理】                066:【反FZ技术总结】
067:【虚表的原理】                  068:【虚表的应用】                  069:【多线程对写配置项的影响】
070:【组件响应事件的调用】          071:【等待某过程完成】            072:【黑月编译器的介绍】

专属系列插入: 【易语言od联动学习系列简介】

073:【可视属性的解释】            074:【整数类型的限制】            075:【数值类型的限制范围】
076:【指针类型详解】                077:【指针与文本】                  078:【文本型:内部算法】
079:【DLL的虚拟化】               080:【静态属性】                  081:【参考属性】
082:【参考与多返回值】            083:【参考与组件】                  084:【参考属性总结】
085:【易语言助手】                  086:【协议的开发】                  087:【网页抓包】


【火山系列】64位易语言(更新时间:2024/4/5 2:14)(蓝色标签表示难度较大,红色标签表示课程设计)
001:【火山简介】                  002:【火山环境的配置】            003:【火山免费版和收费版的区别】
004:【第1个火山程序】               005:【第一个功能】                  006:【文本与数之间的转换】
007:【模块的安装和调用】            008:【源码保存方式】                009:【设置编译类型(32位&64位)】
010:【代码的布局分布】            011:【代码修改窗口属性】            012:【多窗口操作】
013:【多窗口操作2】               014:【全局变量的应用】            015:【多线程操作】
016:【清理缓存文件】                017:【火山看代码提示】            018:【火山的注释规则】
019:【火山的Unicode架构】         020:【网页_访问_对象】            021:【数据类型的转换】
022:【局部变量的权限范围】          023:【文本与多字节】                024:【火山调用DLL】
025:【火山开发手册】                026:【数据类型:变整数】            027:【火山+易语言实现全C++开发】
028:【火山调用易语言DLL①】         029:【火山调用易语言DLL②】         030:【编码转换深入解读】
031:【如果的深入理解】            031:【火山的虚拟界面】            032:【火山的虚拟界面】


【服务器系列】(更新时间:2024/3/8 21:27)
001:【服务器介绍】                  002:【Windows与Linux】               003:【搭建一个网站程序】
004:【服务器购买相关教程】          005:【认识根目录】                   006:【ip+端口+根目录通信】
007:【ip+dns+域名关系】             008:【域名解析到ip】               009:【公网ip+内网ip讲解】
010:【介绍数据库】                  011:【网络宽带速度讲解】             012:【对象存储讲解】
013:【cdn讲解】                     014:【核心与内存】                   015:【32与64位系统内存阐述】
016:【32与64位程序的区别】          017:【服务器攻击原理讲解】         018:【32位程序和64位程序谁速度更快】
019:【服务器环境配置技巧】


【HTML+CSS+JS】网站前端开发(更新时间:2024/4/5 3:37)
001:【前言】                        002:【浏览器的作用】               003:【编程工具的下载】
004:【主体框架的认识】            005:【看懂网站代码结构】             006:【编写一个计算器界面】
007:【html的换行规则】            008:【登录界面的开发】               009:【CSS选择器简介】
010:【CSS的模块化处理】             011:【JS的用途】                     012:【js显示实时时间】
013:【组件标签的功能介绍】          014:【<b>加粗效果】                  015:【<br>换行符】
016:【<a>跳转链接】               017:【<h1-h6>指定文字大小】          018:【<p>段落效果】
019:【<img>添加图片】               020:【给图片添加跳转链接】         021:【<ul><li>无序号列表】
022:【<ol><li>有序号列表】          023:【html的php化】                  024:【html与php的混写】
025:【form表单】


【PHP】网站后端开发(更新时间:2024/4/5 2:41)
001:【php开发准备】               002:【php环境搭建】                  003:【php网页开发原理】
004:【php开发的2大分支】            005:【php版本问题】                  006:【php手册】
007:【php自身语言特点】             008:【编程工具sublime】            009:【第一个php程序】
010:【变量+数据类型规则】         011:【php代码结束符】                012:【百度+php手册】
013:【单引号和双引号】            014:【echo函数的讲解】               015:【文本与数学运算】
016:【数据类型的自转换】            017:【get数据接收】                  018:【post数据的接收】
019:【选择结构if】                  020:【for循环】                      021:【api接口开发】
022:【php的\符号】                  023:【===】                        023:【类与->】
025:【类与::】                      026:【模块化】


【E4A】(安卓开发)(更新时间:2024/3/25 20:21)
001:【安装E4A】                     002:【新建与编译】                   003:【工程属性的设置】
004:【apk签名介绍】               005:【绑定组件事件】               006:【变量的创建】   
007:【局部变量和程序集变量】      008:【全局变量的创建与调用】         009:【第1个安卓程序】
010:【时钟的用法】                  011:【类库的介绍】

书香 发表于 2023-5-17 23:45

1楼{:5_116:}

bleem11 发表于 2023-5-17 23:45

支持一下,感谢分享哦

JuStkK 发表于 2023-5-17 23:54

支持一下,新手能看懂

lies 发表于 2023-5-18 10:34

辛苦,纯支持!

安安的噹 发表于 2023-5-18 17:31

支持,支持,鼎力支持!拜师,拜师!

拿手机睡觉觉 发表于 2023-5-18 18:19


支持一下,感谢分享哦

小值是个小白 发表于 2023-5-18 21:37

辛苦辛苦,感谢阿香!今天开始重新拾起来啦!

1010726528 发表于 2023-5-18 21:39

支持,支持,鼎力支持!好好学习天天向上

1010726528 发表于 2023-5-18 21:40

支持,支持,鼎力支持!好好学习天天向上
页: [1] 2 3 4 5 6 7
查看完整版本: 【书香编程系列教程】从零开始学编程语言