DeepSeek赋能Nuclei:打造网络安全检测的“超级助手”
引言
各位少侠,周末快乐,幸会幸会!
今天唠一个超酷的技术组合——用AI大模型给Nuclei开挂,提升漏洞检测能力!

想象一下,当出现新漏洞时,少侠们经常需要根据Nuclei模板,手动扒漏洞文章、敲代码,而既然现在有了DeepSeek等AI大模型,让它们成为“智能小秘书”,喝口咖啡的工夫,模板就自动生成了!
值得注意的是,Github上也有各式各样的Nuclei的自建poc仓库,如何快速集成,确保自己的Nuclei背后使用的poc仓库最大最全最准确,也是需要思考的问题!
当然,隐侠也在构建面向业内的知识库、漏洞库,以及Github上的poc库,少侠们敬请期待,不日将会与大家见面。
接下来,就带大家看看刚刚描述的AI大模型与Nuclei的“神仙组合”到底是怎么玩转网络安全检测的!
为啥要让DeepSeek和Nuclei组CP?
Nuclei的模块化检测范式与工程瓶颈
作为漏洞检测标准工具,Nuclei通过YAML模板实现检测逻辑与引擎解耦,这种"检测即代码"(Detection as Code)的模式使其具备以下特性:
-
原子化检测单元:每个模板对应CWE、CVE等漏洞特征,支持组合式检测策略。
-
跨平台兼容性:基于HTTP/RAW协议层的抽象,实现从Web应用到IoT设备的统一检测。
-
敏捷响应能力:无需重新编译即可动态加载新检测规则。
但模板编写存在显著工程瓶颈:
-
知识转化延迟:人工分析漏洞报告→提取攻击向量→编码为匹配规则的平均耗时约37分钟/模板。
-
特征覆盖盲区:2024年Log4j2漏洞爆发时,主流模板库覆盖率仅68%,导致企业暴露攻击面窗口期延长。
模版举例:
id: CVE-2023-25157info:name: GeoServer OGC Filter - SQL Injectionauthor: ritikchaddha,DhiyaneshDK,iamnoooob,rootxharshseverity: criticaldescription: |GeoServer isanopensource software server written in Java that allows users to share andedit geospatial data. GeoServer includes support for the OGC Filter expression languageand the OGC Common Query Language (CQL) as part of the Web Feature Service (WFS) and Web Map Service (WMS) protocols. CQL is also supported through the Web Coverage Service (WCS) protocol for ImageMosaic coverages. Users are advised to upgrade to either version2.21.4, orversion2.22.2toresolve this issue. Users unable to upgrade should disable the PostGIS Datastore *encode functions* setting to mitigate ``strEndsWith``, ``strStartsWith`` and ``PropertyIsLike `` misuse and enable the PostGIS DataStore *preparedStatements* setting to mitigate the ``FeatureId`` misuse.reference:- https://twitter.com/parzel2/status/1665726454489915395- https://nvd.nist.gov/vuln/detail/CVE-2023-25157- https://github.com/win3zz/CVE-2023-25157- https://github.com/geoserver/geoserver/security/advisories/GHSA-7g5f-wrx8-5ccfclassification:cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hcvss-score: 9.8cve-id: CVE-2023-25157cwe-id: CWE-89cpe: cpe:2.3:a:osgeo:geoserver:*:*:*:*:*:*:*:*metadata:verified: "true"shodan-query: title:"geoserver"
tags: cve,cve2023,geoserver,ogc,sqli,intrusivehttp:- raw:- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities HTTP/1.1Host: {{Hostname}}- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&maxFeatures=50&outputFormat=csv HTTP/1.1Host: {{Hostname}}- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&CQL_FILTER=strStartswith({{column}},%27%27%27%27)=true HTTP/1.1Host: {{Hostname}}stop-at-first-match: trueiterate-all: truematchers-condition: andmatchers:- type: wordpart: body_3words:- "SQL SELECT"- type: wordpart: header_3words:- text/xmlextractors:- type: regexpart: body_1group: 1name: nameregex:- '<FeatureType><Name>(.*?)<\/Name><Title>'internal: true- type: regexpart: body_2group: 1name: columnregex:- 'FID,([aA-zZ_]+),'internal: true
以DeepSeek为代表的通用大模型,则可提升这一过程的效率。利用如下的结构化提示,将输出空间限制在有限维度,结合以下技术保障确定性:
-
参数冻结机制:对HTTP方法、匹配条件等关键字段进行类型约束
-
防御性解析:AI输出经语法树校验和沙箱验证
-
知识蒸馏:基于漏洞数据库模型,提升CWE特征识别准确率
# 提示工程示例
prompt_template = """
基于漏洞报告生成Nuclei模板(JSON格式):
输入特征:
- 漏洞路径:{endpoint}
- 有效载荷样本:{payload_sample}
- CVSS评分:{cvss_score}输出约束:
1. 必须包含{BaseURL}占位符
2. 匹配规则需包含状态码、关键词、正则三元组
3. 严重级别按CVSS v3.1划分
"""
典型场景:漏洞文摘->POC,从“手搓”到“秒产”
1. 漏洞文章“一键抓取”
本文基于Python做实现,基于requests库访问漏洞文章网址,再靠BeautifulSoup把网页“拆解”得明明白白。
要是遇到网站设的“反爬虫关卡”(返回403状态码),它还会“机智”地重试3次,绝不轻易放弃!最终把文章里的漏洞路径、攻击Payload这些关键信息全都“挖”出来。
实现代码:
def _crawl_article(self, url):for retry in range(3):try:resp = self.session.get(url, timeout=20)resp.raise_for_status()if resp.status_code == 403:raise RuntimeError("Anti-bot triggered")soup = BeautifulSoup(resp.text, 'lxml')return {'title': self._extract_title(soup),'cve': self._extract_cve(soup),'endpoint': self._find_vuln_path(soup),'payloads': self._extract_payloads(soup),'references': self._find_references(soup),'raw_html': resp.text[:5000] # Limit content size}except requests.RequestException as e:if retry == 2:raise RuntimeError(f"Request failed after 3 attempts: {str(e)}")self.logger.warning(f"Retrying ({retry+1}/3)...")
2. DeepSeek的“魔法翻译”
这里是DeepSeek大显身手的地方!我们给它“喂”一段精心设计的提示模板,就像给它下达任务指令:“根据这些漏洞信息,用JSON格式生成Nuclei模板参数!” 为了防止网络不稳定掉链子,同样设置了3次重试。DeepSeek接收到指令后,一顿“分析猛如虎”,很快就能返回包含漏洞ID、匹配规则等信息的参数。
prompt=f"""根据漏洞报告生成Nuclei模板(JSON格式):输入特征:
- 漏洞路径:{content['endpoint']}
- 有效载荷:
{chr(10).join(f'- {p}'forp in content['payloads'][:2])}
- 参考链接:
{chr(10).join(content['references'][:2])}输出要求:
1. 严重等级按CVSS评分划分
2. 必须包含{{{{BaseURL}}}}变量
3. 包含状态码、关键词、正则匹配输出格式:
{{
"id": "漏洞ID",
"name": "漏洞名称",
"method": "HTTP方法",
"paths": ["攻击路径"],
"matchers": {{"status": 200,"keywords": ["特征关键词"],"regex": ["正则表达式"] }},
"severity": "严重等级",
"references": ["参考链接"],
"description": "漏洞描述",
"fofa_query": "FOFA查询语句",
"tags": ["漏洞类型"]
}}
"""def _analyze_with_ai(self, content):prompt = self._build_prompt(content)for attempt in range(3):try:response = self.client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "严格使用JSON格式输出"},{"role": "user", "content": prompt}],temperature=0.2,max_tokens=2000,response_format={"type": "json_object"})return self._process_ai_response(response.choices[0].message.content)except Exception ase:if attempt == 2:raise RuntimeError(f"API request failed: {str(e)}")self.logger.warning(f"Retrying API call ({attempt+1}/3)...")
3. 模板“拼装大师”上线
这个方法就像个“模板拼装大师”,把DeepSeek返回的参数“组装”成完整的Nuclei模板。
它会先把基本信息、请求方法这些“零件”摆好,要是参数里有正则匹配需求,还会自动添加对应的“正则匹配模块”。
最后把模板以YAML格式保存到指定文件夹,文件名还带着时间戳,方便管理!
def _build_template(self, ai_data):"""构建Nuclei模板文件"""template = {"id": ai_data.get("id", "auto-generated"),"info": {"name": ai_data.get("name", "Unknown Vulnerability"),"author": "AutoPOCGenerator","severity": ai_data.get("severity", "medium"),"description": ai_data.get("description", "Generated by DeepSeek AI"),"reference": ai_data.get("references", []),"tags": ai_data.get("tags", ["ai-generated"]),"metadata": {"fofa-query": ai_data.get("fofa_query", "")}},"requests": [{"method": ai_data.get("method", "GET"),"path": ai_data.get("paths", ["{{BaseURL}}"]),"matchers-condition": "and","matchers": [{"type": "status", "status": [ai_data["matchers"]["status"]]},{"type": "word", "words": ai_data["matchers"]["keywords"]}]}]}# 添加正则匹配if ai_data["matchers"].get("regex"):template["requests"][0]["matchers"].append({"type": "regex", "regex": ai_data["matchers"]["regex"]})# 生成文件名template_dir = Path(self.config['paths']['template_dir'])timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")filename = template_dir / f"{template['id']}_{timestamp}.yaml"# 写入文件with open(filename, 'w', encoding='utf-8') as f:yaml.dump(template, f, allow_unicode=True, sort_keys=False)self.logger.info(f"Template saved: {filename}")return str(filename.resolve())
如此这番,从一篇漏洞文章变成一个可利用的nuclei poc的工作就完成了。
值得注意的是,AI输出毕竟有其不稳定性,一是需要人工确认poc内容是否与漏洞文章中的描述一致,二是可以使用如下命令,检测poc能否正常运行:
./nuclei -t ./nuclei_templates/path-traversal-vite-project_20250417_2313.yaml -validate

Nuclei的“私人定制”更新与扫描
1.带配置的“智能更新”
读取相关配置,找到Nuclei可执行文件的位置。要是配置里开了代理,它会自动在更新命令里加上代理参数,就像给Nuclei更新加上“专属通道”。执行完更新命令,还会把结果详细记录到日志里,更新出问题了一眼就能发现。
def update_nuclei():try:config = load_config()nuclei_binary = Path(config["paths"]["nuclei_binary"])ifnot nuclei_binary.exists():raise FileNotFoundError(f"Nuclei可执行文件不存在:{nuclei_binary}")cmd = [str(nuclei_binary.resolve()), "-update"]if config["proxy"]["enable"]:cmd.extend(["-proxy", config["proxy"]["address"]])logging.info("已启用代理更新")result = subprocess.run(cmd,check=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True)logging.info(f"模板更新成功\n{result.stdout}")except subprocess.CalledProcessError as e:error_msg = f"更新失败:{e.output if e.output else '无错误详情'}"logging.error(error_msg)except Exception as e:logging.error(f"未知错误:{str(e)}")

2. 扫描命令“私人订制”
build_command函数能根据我们的需求,生成Nuclei扫描命令。不管你是想扫描单个目标,还是指定多个POC模板路径,它都能搞定!它会先检查POC路径是不是真的存在,再把代理、速率限制这些参数按配置加上,就像给扫描任务穿上“定制装备”。
def build_command(config, target_file, pocs):cmd = ['./'+str(NUCLEI_BINARY),'-list', str(target_file),'-rate-limit', '100','-timeout', '30']if pocs:validated_pocs = [ ]for poc_path in pocs:path = Path(poc_path).resolve()if not path.exists():raise FileNotFoundError(f"POC路径不存在: {path}")validated_pocs.append(str(path))cmd.extend(['-t', ','.join(validated_pocs)])if config['proxy'].get('enable', "True"):cmd.extend(['-proxy', config['proxy']['address']])print(cmd)return cmd
由此,我们的Nuclei就像不断被磨砺过的利剑,始终保持锋利的模样。
企业级模板管理:模板的“智能仓库”
1. 模板仓库“自动补货”
这里构建的代码,就像个“仓库管理员”,定期从GitHub上找最新的Nuclei模板仓库。通过GitHub API搜索,筛选出30天内更新的仓库,用异步操作批量克隆或更新到本地,保证我们的模板库永远“新鲜”。
async def dynamic_repo_discovery(self):if not self.config['ENABLE_STAGE1']:print(f"\n{'='*30} 已跳过仓库同步阶段 {'='*30}")returnprint(f"\n{'='*30} 阶段1: 动态仓库同步 {'='*30}")new_repos = await self._fetch_github_repos()self._update_repo_registry(new_repos)with open(REPO_FILE) as f:urls = {line.strip() for line in f if line.strip()}tasks = [self._async_git_ops(url) for url in urls]batch_size = self.config['GIT_PARALLEL'] * 2for i in range(0, len(tasks), batch_size):await asyncio.gather(*tasks[i:i+batch_size])
2. 模板“去重分类”大作战
通过计算文件的SHA256哈希值,把重复的模板“揪”出来删掉,避免做无用功。并根据模板里的标签信息,把模板自动分到不同文件夹,下次想用某个类型的模板,直接去对应文件夹找就行,超方便!
3. 模板“质量检测”与索引生成
基于Nuclei的-validate选项给模板“体检”,把有问题的模板淘汰掉。最后生成一个索引文件poc.txt,记录所有有效模板的位置,就像一本模板“导航手册”。

实战效果:真的能打!
我们在模拟环境和公开漏洞靶场做了测试。生成模板速度比人工快了好几倍,而且93%的模板直接使用或者微调后都能准确检测到漏洞。
这波DeepSeek和Nuclei的组合,绝对是安全检测的“王炸”!
结语
本文向少侠们介绍了AI大模型如何助力Nuclei更好使用,从poc生成、公开poc收集和使用参数优化等方面进行逐一讲解。
后面我们打算继续优化DeepSeek的提示模板,让生成的模板更精准;探索把这套思路用到更多安全场景里;再研究研究怎么让扫描速度更快。相信以后这套技术还能解锁更多“隐藏技能”,一起期待吧!
少侠们,快试试这套DeepSeek赋能Nuclei的方案,让你的漏洞学习与漏洞检测工作轻松又高效!要是在使用过程中有啥新想法、新发现,欢迎一起交流,咱们共同把网络安全防线筑得更牢!
代码已上传Github:https://github.com/EastSword/XuanyuanSword_AINuclei
相关文章:
DeepSeek赋能Nuclei:打造网络安全检测的“超级助手”
引言 各位少侠,周末快乐,幸会幸会! 今天唠一个超酷的技术组合——用AI大模型给Nuclei开挂,提升漏洞检测能力! 想象一下,当出现新漏洞时,少侠们经常需要根据Nuclei模板,手动扒漏洞文章…...
分享一个python启动文件脚本(django示例)
今天给大家分享一个python启动文件脚本 在日常开发中,我们常常需要运行多条命令来完成“静态收集”“数据库迁移”“启动服务”……如果把这些命令整合到一个脚本里就好了 一、整体流程概览 #mermaid-svg-wA6UnfATaUOfJoPn {font-family:"trebuchet ms"…...
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
我正在参加Trae「超级体验官」创意实践征文, 本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source… 前言 大家好,我是小Q,字节跳动近期推出了一款 AI IDE—— Trae,由国人团队开发,并且限时免费体…...
3200温控板电路解析
提示:文章 文章目录 前言一、背景二、2.12.2 三、3.1 总结 前言 前期疑问: 本文目标: 一、背景 最近重温3200温控板电路设计和芯片选型 3200代码仓 二、 2.1 按照顺序整理,主要是依靠自己想到的来整理 1、传感器是pt1000&…...
opencv图片颜色识别,颜色的替换
图片颜色识别 1. RGB颜色空间2. 颜色加法2.1使用numpy对图像进行加法2.2使用opencv加法(cv2.add) 3 颜色加权加法(cv2.addWeighted())4. HSV颜色空间5. 制作掩膜4. 与运算(cv2.bitwise_and)5.颜色的替换7 R…...
B实验-12
需要注意版本、页面源代码 两个文件一个目录:phpinfo robots phpmyadmin 实验12 靶机1 一个key在phpmyadmin,一个key在回收站 用两个扫描目录的工具扫,nmap给python版 情况1:弱口令 root root root 123456 …...
Python多技术融合在生态参量估算中的创新应用—以蒸散发与植被GPP估算为例
在全球气候变化背景下,精确估算陆地生态系统水碳通量成为生态研究的关键命题。本研究创新性地整合Python编程、遥感数据处理、机器学习算法及生态过程模型,构建了一套高效可靠的蒸散发(ET)与植被总初级生产力(GPP&…...
文件有几十个T,需要做rag,用ragFlow能否快速落地呢?
一、RAGFlow的优势 1、RAGFlow处理大规模数据性能: (1)、RAGFlow支持分布式索引构建,采用分片技术,能够处理TB级数据。 (2)、它结合向量搜索和关键词搜索,提高检索效率。 …...
【网工第6版】第5章 网络互联②
目录 ■ IPV6 ▲ IPV6报文格式 ◎ IPV6扩展报头(RFC2460) ◎ IPv6相关协议 ▲ IPV6地址分类 ◎ IPv6地址基础 ◎ IPv6地址举例 ◎ IPv6地址分类 ◎ 特殊地址对比IPv4 vs IPv6 ▲ 过渡技术 本章重要程度:☆☆☆☆☆ ■ IPV6 与IPv4…...
为什么Makefile中的clean需要.PHONY
原因一:避免Makefile检查时间戳 前置知识:makefile在依赖文件没有改变时不会执行编译命令 #第一次执行,OK [rootVM-16-14-centos ~]# make g -E main.cc -o main.i g -S main.i -o main.s g -c main.s -o main.o g main.o -o main#第二…...
Vue组件库开发实战:从0到1构建可复用的微前端模块
🔥 随着前端项目越来越复杂,如何开发一个可以随处使用的组件库变得尤为重要。本文将带你从0开始,实现一个完全独立的Vue组件库,包含样式隔离、主题定制等核心功能。 前言 在日常开发中,我们经常需要在不同项目间复用组…...
相机标定(输出相机内参和畸变参数)
相机标定 这里我用笔记本电脑自带的摄像头进行相机标定 仅作示例,实际工程中要用对应的摄像头进行标定 同时代码也要相应的修改,不过修改的主要是相机的初始化 粗略的说就是打开相机那部分要修改(依据实际情况相应修改) 最终的结果…...
单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用
文章目录 一.什么是单页面应用?二.什么是路由?生活中的路由和Vue中的路由 三.VueRouter(重点)0.引出1.介绍2.下载与使用(5个基本步骤2个核心步骤)2.1 五个基本步骤2.2 两个核心步骤 四.路由的封装抽离五.声明式导航1.导航链接特点一:能跳转特点二:能高亮 2.两个高亮类名2.1.区…...
数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
上篇回顾 上一篇文章需要讨论了net,pin的基础用法,让我们来看一下高级一点的用法 instance current_instance current_instance 是 Synopsys 工具(如 Fusion Compiler 或 Design Compiler)中用于在设计层次结构中导航的关键命令。它允许用…...
STM32---外部中断EXTI
目录 一、中断向量表 二、EXTI工作原理图 三、NVIC模块 四、GPIO设置为EXTI的结构 五、C语言示例代码 在STM32中,中断是一个非常重要的结构,他能让我们在执行主函数的时候,由硬件检测一些外部或内部产生的中断信号,跳转到中断…...
Itext进行PDF的编辑开发
这周写了一周的需求,是制作一个PDF生成功能,其中用到了Itext来制作PDF的视觉效果。其中一些功能不是很懂,仅作记录,若要学习请仔细甄别正确与否。 开始之前,我还是想说,这傻福需求怎么想出来的,…...
Hibernate的组件映射
在实际的开发中,使用的是非常多的,还有几种比较特殊的关系映射: 组件映射继承映射 先看一下组件映射: 组件映射中, 组件也是一个类, 但是这个类它不独立称为一个实体, 也就是说, 数据库中没有一个表格单独的和它对应, 具体情况呢, 看演示:...
C++ 操作符重载Operator
C可以重载大多数操作符,如算术运算符号,-号。 位操作符<<,>> 下标符号[]等都可以重载。 重载的意思,是让这些符号,按你定义的行为来执行代码,但是这种自定义,是有限制的,必须有一…...
Docker 镜像、容器和 Docker Compose的区别
前言:Docker 的镜像、容器和 Docker Compose 是容器化技术的核心组件,以下是对它们的详细解析及使用场景说明。 1、Docker 镜像(Image) 定义: 镜像是只读模板,包含运行应用程序所需的代码、…...
Linux深度探索:进程管理与系统架构
1.冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是由⼀个个的硬件组件组成。 输入设备:键盘,鼠标…...
一段式端到端自动驾驶:VAD:Vectorized Scene Representation for Efficient Autonomous Driving
论文地址:https://github.com/hustvl/VAD 代码地址:https://arxiv.org/pdf/2303.12077 1. 摘要 自动驾驶需要对周围环境进行全面理解,以实现可靠的轨迹规划。以往的方法依赖于密集的栅格化场景表示(如:占据图、语义…...
17.整体代码讲解
从入门AI到手写Transformer-17.整体代码讲解 17.整体代码讲解代码 整理自视频 老袁不说话 。 17.整体代码讲解 代码 import collectionsimport math import torch from torch import nn import os import time import numpy as np from matplotlib import pyplot as plt fro…...
把dll模块注入到游戏进程的方法_基于文件修改的注入方式
1、概述 本文主要是介绍两种基于文件修改的注入方式,一种是“DLL劫持”,另一种是“修改导入表”。这两种注入方式都是利用操作系统加载PE时的特点来实现的,我们在实现这两种注入方式时只需专注于注入dll的实现,而不用花费额外的精力去关注注入器的实现。要想深入了解这两种…...
4月21日星期一今日早报简报微语报早读
4月21日星期一,农历三月廿四,早报#微语早读。 1、女子伸腿阻止列车关门等待同行人员,被深圳铁路警方行政拘留; 2、北理工再通报:开除宫某党籍,免去行政职务,解除聘用关系; 3、澳门…...
Spark(20)spark和Hadoop的区别
Apache Spark 和 Apache Hadoop 都是广泛使用的开源大数据处理框架,但它们在设计理念、架构、性能和适用场景等方面存在显著区别。以下是它们的主要区别: ### **1. 架构设计** - **Hadoop**: - **HDFS(Hadoop Distributed File…...
Kubeflow 快速入门实战(二) - Pipelines / Katib / KServer
承接前文博客 Kubeflow 快速入门实战(一) Kubeflow 快速入门实战(一) - 简介 / Notebooks-CSDN博客文章浏览阅读441次,点赞19次,收藏6次。本文主要介绍了 Kubeflow 的主要功能和能力,适用场景,基本用法。以及Notebook,…...
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(一)
本篇博客给大家带来的是多线程中常见的所策略和CAS知识点. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快…...
ECA 注意力机制:让你的卷积神经网络更上一层楼
ECA 注意力机制:让你的卷积神经网络更上一层楼 在深度学习领域,注意力机制已经成为提升模型性能的重要手段。从自注意力(Self-Attention)到各种变体,研究人员不断探索更高效、更有效的注意方法。今天我们要介绍一种轻…...
基于定时器查询模式的LED闪烁(STC89C52单片机)
#include <reg52.h> sbit LED P0^0; sbit ADDR0 P1^0; sbit ADDR1 P1^1; sbit ADDR2 P1^2; sbit ADDR3 P1^3; sbit ENLED P1^4; void main() { unsigned char cnt 0; //定义一个计数变量,记录T0溢出次数 ENLED 0; //使能U3,选择…...
SAP系统生产跟踪报表入库数异常
生产跟踪报表入库数异常 交库21820,入库43588是不可能的 原因排查: 报表的入库数取值,是取移动类型321 (即系检验合格后过账到非限制使用)的数. 查凭证,101过账2次21807,321过账了2次21794,然后用102退1次21794.就是说这批物料重复交库了. 解决: 方案一:开发增强设…...
