[转]DS游戏3D建模材质贴图搜索与定位的入门方法 by tring

【Claude Code · VibeCoding】13|实战演示:水果消消乐 VibeCoding 用「水果消消乐」走一遍 VibeCoding:提示、生成、试玩、改需求、再生成。 阅读详情

这个稍微说一下:' 0-15 Texture VRAM Offset div 8',在no$gba中会给出AABBCCDD这样32位的值,而这个offset实际是CCDDh,而不是AABBh。

另外 '使得其执行将4000240~4000243的值全部修改为80的操作',把下面内存改成80后上面的指令也会变,这时要再次让游戏运行到那个指令,这时就打开LCDC了。

 

 

----------------------------

 

本帖的前提是使用收费的DEBUG版NO$GBA,没有这东西的不用找我要了。虽然不使用NO$在原理上也可以完成,但是本文只讨论最简单的入门方法,作启发之用。
至于本文所介绍方法的作用,多在于汉化方面,现在3D游戏越来越多,传统2D图片定位的方法却无法适用于3D的材质贴图上,因此某些图片的导出与修改以传统的2D方式很难实现。
以下开始是正文。

1,以NO$提供的3D引擎查看工具找到目标材质贴图
NO$自带工具可以检索当前3D引擎内已载入的建模,运行游戏,在屏幕上显示出目标的建模,之后暂停进程。
打开3D查看窗口后会看到有一系列树型列表。列表的前半部分不是我们关注的内容,从后半部分开始,会看到树型列表前带有+号可展开选项的,这部分即是当前3D引擎中被载入的建模。
这时鼠标点选这些列表项,会在左侧显示该建模的3D轮廓(以红线勾出)并且在下方显示其使用的材质贴图。找到你所要定位的目标,展开其前一项的+号(这里注意,一定是其前一项而不是其本身这项)。
在 展开的子项中,不难发现一项名称叫做teximage_param的子项,其下还有一项叫做pltt_base。注意到在这2项之前,左侧下方显示的材质 贴图还是属于上一个建模的,而这2项之后则属于目标建模的了,这是因为这2项的设定即是材质贴图的设定,在这2项之后,下次出现该2项之前的部分,全部使 用这里设置的材质贴图。
pltt_base项所包含的内容是该材质贴图所使用的色板,不在本文所讨论的范围内,有兴趣的可以自行研究。该接口定义见GBATEK的DS 3D TEXTURE ATTRIBUTES章节。
teximage_param则是材质贴图的详细信息,由于这个接口的重要,这里帖出在GBATEK里的定义几个本文用的到的说明:
40004A8h - Cmd 2Ah - TEXIMAGE_PARAM - Set Texture Parameters (W)
0-15 Texture VRAM Offset div 8 (0..FFFFh -> 512K RAM in Slot 0,1,2,3)
    (VRAM must be allocated as Texture data, see Memory Control chapter)
16   Repeat in S Direction (0=Freeze last texel-column, 1=Repeat Texture)
17   Repeat in T Direction (0=Freeze last texel-row,   1=Repeat Texture)
18   Flip in S Direction   (0=No, 1=Flip each 2nd Texture) (requires Repeat)
19   Flip in T Direction   (0=No, 1=Flip each 2nd Texture) (requires Repeat)
20-22 Texture S-Size     (for N=0..7: Size=(8 SHL N); ie. 8..1024 texels)
23-25 Texture T-Size     (for N=0..7: Size=(8 SHL N); ie. 8..1024 texels)
26-28 Texture Format     (0..7, see below)
29   Color 0 of 4/16/256-Color Palettes (0=Displayed, 1=Made Transparent)
30-31 Texture Coordinates Transformation Mode (0..3, see below)
Texture Formats:
0 No Texture
1 A3I5 Translucent Texture
2 4-Color Palette Texture
3 16-Color Palette Texture
4 256-Color Palette Texture
5 4x4-Texel Compressed Texture
6 A5I3 Translucent Texture
7 Direct Texture
由于本文仅仅是为了定位材质贴图,因此这里我们只关心0-15位的OFFSET和26-28位的材质格式。其它部分说明请自行参考GBATEK的DS 3D TEXTURE ATTRIBUTES章节。
值得一提的是,NO$的3D查看工具中会自动在该项后标注材质的格式属性等,因此这里我们只用关注0-15位的OFFSET。
OFFSET即是该项8位16进制内容的低4位,将该数值乘以8,即是材质贴图在VRAM中的偏移地址。而关于VRAM的内容,下一节详细讨论。


2,修改VRAM属性以定位材质贴图在VRAM中的地址与内容
在 介绍方法前我先大致介绍一下DS的VRAM。所谓VRAM即是显存,也就是DS的图形引擎在处理图像的时候所使用的缓存。DS的主要VRAM总共有9组, 包括传统2D图片分析时所使用的6000000,62000000,64000000,66000000等几个映射地址对应的VRAM,但是主VRAM并 非是完全对应CPU平坦地址的。除了主VRAM外,还有几个其它的VRAM,是与CPU地址完全对应的,分别是:
5000000h Engine A Standard BG Palette (512 bytes)
5000200h Engine A Standard OBJ Palette (512 bytes)
5000400h Engine B Standard BG Palette (512 bytes)
5000600h Engine B Standard OBJ Palette (512 bytes)
7000000h Engine A OAM (1024 bytes)
7000400h Engine B OAM (1024 bytes)
不过这些VRAM也不在本文的讨论范围内,有兴趣的请自行参考GBATEK的DS MEMORY CONTROL - VRAM章节
9组不同的主VRAM每一组都对应1个控制接口,以确定该VRAM的工作方式,这里帖出控制接口定义与我们关注的几种控制方式的说明,其它内容请自行参考GBATEK的DS MEMORY CONTROL - VRAM章节。
4000240h - NDS9 - VRAMCNT_A - 8bit - VRAM-A (128K) Bank Control (W)
4000241h - NDS9 - VRAMCNT_B - 8bit - VRAM-B (128K) Bank Control (W)
4000242h - NDS9 - VRAMCNT_C - 8bit - VRAM-C (128K) Bank Control (W)
4000243h - NDS9 - VRAMCNT_D - 8bit - VRAM-D (128K) Bank Control (W)
4000244h - NDS9 - VRAMCNT_E - 8bit - VRAM-E (64K) Bank Control (W)
4000245h - NDS9 - VRAMCNT_F - 8bit - VRAM-F (16K) Bank Control (W)
4000246h - NDS9 - VRAMCNT_G - 8bit - VRAM-G (16K) Bank Control (W)
4000248h - NDS9 - VRAMCNT_H - 8bit - VRAM-H (32K) Bank Control (W)
4000249h - NDS9 - VRAMCNT_I - 8bit - VRAM-I (16K) Bank Control (W)
0-2   VRAM MST         ;Bit2 not used by VRAM-A,B,H,I
3-4   VRAM Offset (0-3)   ;Offset not used by VRAM-E,H,I
5-6   Not used
7   VRAM Enable (0=Disable, 1=Enable)
There is a total of 656KB of VRAM in Blocks A-I.
Table below shows the possible configurations.
VRAM   SIZE MST OFS   ARM9, Plain ARM9-CPU Access (so-called LCDC mode)
A     128K 0   -   6800000h-681FFFFh
B     128K 0   -   6820000h-683FFFFh
C     128K 0   -   6840000h-685FFFFh
D     128K 0   -   6860000h-687FFFFh
E     64K   0   -   6880000h-688FFFFh
F     16K   0   -   6890000h-6893FFFh
G     16K   0   -   6894000h-6897FFFh
H     32K   0   -   6898000h-689FFFFh
I     16K   0   -   68A0000h-68A3FFFh

VRAM   SIZE MST OFS   Texture/Rear-plane Image
A,B,C,D 128K 3   0..3 Slot OFS(0-3)   ;(Slot2-3: Texture, or Rear-plane)

VRAM   SIZE MST OFS   Texture Palette
E     64K   3   -   Slots 0-3           ;OFS=don't care
F,G   16K   3   0..3 Slot (OFS.0*1)+(OFS.1*4) ;ie. Slot 0, 1, 4, or 5
由于本文不研究色板,故这里唯一感兴趣的就是的是可以用作材质缓存的4组VRAM:VRAM A-D即SLOT 0-3。
这 里需要特别提到一点,非常重要,“In Extended Palette and Texture Image/Palette modes, VRAM is not mapped to CPU address space, and can be accessed only by the display controller (so, to initialize or change the memory, it should be temporarily switched to Plain-CPU mode).”即是说当VRAM被设为用于存放材质贴图或者材质色板时,该VRAM便只可被DS的图形引擎使用,而对CPU不但不可用,甚至不可见,也就 是说根本不存在地址对应。而当需要访问修改其内容的时候,必须先将模式切换到对CPU地址平坦的模式(Plain-CPU或称作LCDC),这时这些 VRAM被映射到6800000开头的地址空间中,见上面对于LCDC模式的说明。而关于各VRAM当前的工作模式,可以在NO$提供的I/O MAP查看工具中的CPMEM9页看到。

关于VRAM的介绍到此为止,接下来便说明在VRAM中找到材质贴图的方法。
由于上面说道的VRAM当缓存材质贴图时对于CPU不可见这个性质,因此这步的核心在于修改VRAM的属性到LCDC模式。
最 为简单而直接的方式,可以在此时的NO$代码窗中直接修改代码,使得其执行将4000240~4000243的值全部修改为80的操作。但是切记不可直接 在内存窗修改这4个接口的值,因为NO$只有在代码运行时修改了接口才会将其反应到内核状态中,直接在内存表格中的修改将直接被忽略。
另外还有一 种方法可以设置一个4000240的写入断点,跟踪出游戏在LOAD时修改该接口的函数入口(因为游戏在LOAD材质贴图时也必须将属性切换到LCDC才 可对VRAM操作),然后直接在代码窗口中修改代码调用该函数即可。最典型的做法可以将原ROM调用等待扫描中断的函数(即运行时暂停,十有八九会停到的 地方)调用给替换成修改VRAM属性的函数调用。这时再放行程序就会发现游戏里的所有3D建模的材质贴图都不显示了,而只剩下最简单的多边形。此时用IO MAP查看器就可以看到VRAM A-D的属性全变成了LCDC

完成至此,VRAM以彻底向我们开放,即这时可以对其内容进行确认了。 这时要用到在第一步得到的那个4位16进制的OFFSET值了,将此OFFSET*8+6800000即是该材质此时对应的VRAM映射地址。得到该地址 后即可直接在内存窗口中查看该地址便是材质贴图的内容了。



3,以VRAM中的材质贴图地址和内容定位该贴图在ROM中的偏移地址
其实到这步就和传统2D时的方法没什么区别了。不过为了文章的完整性,还是大致介绍下好了。

这时其实有几种途径可以选择,最简单的方法,当然就是直接使用VRAM中的材质贴图的内容,选个10+位有有特点的数据,然后直接在ROM中搜索。这种方法往往能最快也最直接的得到所需结果,但是这种方法只能适用于未压缩过的数据

然而若要精确定位的话,则可使用下面方法,该方法对于压缩过的数据也有效。
首先对于刚才得到的材质贴图在VRAM中的地址设置一个内存写入断点,然后跟踪LOAD过程,在跟踪中找到载入材质贴图的代码,看代码找到其载入源地址(一般来说就是个普通内存空间的地址)。然后重复上面的步骤,对该内存地址设置写入断点,再找其源地址。
通常来说这时候其源会有几种情况,如果是经一个比较复杂的算法从另一段内存中运算得来的,那么这多半是一个解压算法,对那段运算前的内存地址再重复前面的步骤。
如 果说是由4100010这个接口的数据直接写入的,那么说明该数据直接读取自ROM。这时打开NO$的IO MAP查看器,在IRQ9那页的NDSSLOT项中可以看到一个B7开头的16进制数据串,这个数据串中除开B7那项,接下来的4项连接起来构成一个8位 16进制的OFFSET地址,即是该数据在ROM文件中的偏移地址了。



以上,本文仅供技术交流,内容颇为入门旨在启发各位思路。本人能力有限,若有错误还请指出并包涵。
欢迎转载,但转载请注明作者与出处。

参考文献:
GBATEK:   http://nocash.emubase.de/gbatek.htm

Java本地AI推理初体验:Jlama+LangChain4j构建离线问答系统 Jlama 是专为 Java 生态设计的现代化大型语言模型(LLM)推理引擎,旨在让开发者无需依赖外部服务即可直接在 Java 应用中运行本地化模型推理。本文将结合Jlama + langchain4j 实现一个本地可运行的简单问答Demo。 阅读详情

相关推荐

solidworks实体显示线框

solidworks实体莫名其妙显示为有点虚的线框

qq_35858902的博客 1万+

DS导入导出命令详解

1、导出例子如下:$DSHOME/../../Clients/istools/cli/istool export -dom dpapp01 -u edpusr -p edpusr -ar /home/dsadm/LOD_COBS_SVRHA1.isx -ds '-incexec "dpapp01/BRCB_EDP2/Jobs/FS2/COBS/LOD_COBS_SVRHA.pjb"'详细说明:【$...

weixin_30824599的博客 381

2024广东省职业技能大赛云计算——集群部署GitLab

题目是这样的:在Kubernetes集群中新建命名空间gitlab-ci,将GitLab部署到该命名空间下,Deployment和Service名称均为gitlab,以NodePort方式将80端口对外暴露为30880,设置GitLab服务root用户的密码为admin@123,将项目包demo-2048.tar.gz导入到GitLab中并命名为demo-2048。GitLab是一个功能强大且灵活的 DevOps 平台,为开发团队和企业提供了从代码管理到持续集成、交付和部署的一整套解决方案。

kuuuugua的博客 4395

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 412

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 271

逆向工程视角:MFI芯片通信协议在Linux环境下的行为分析

本文从逆向工程角度深入分析了MFI芯片在Linux环境下的通信协议行为,重点探讨了树莓派与MFI芯片通过I2C接口交互的技术细节。文章详细介绍了信号捕获、协议栈逆向、动态调试技巧以及安全机制分析,为开发者提供了在Linux驱动层面实现MFI认证的实用方法。

time3的博客 176

我给 DeepSeek 大肥鱼做了一款马里奥式闯关游戏

当全网都在把大肥鱼做成直播虚拟主播的时候,我决定给她做一款横版闯关游戏。

2301_79028807的博客 886

学习笔记:物理信息神经网络(PINN)

PINN 的强大在于它打破了传统数值方法的限制,将神经网络的非线性拟合能力与物理方程的严谨性结合起来。它在处理高维、数据稀缺、复杂物理约束的场景下尤其出色。当然,PINN 也有收敛慢、梯度消失等挑战,比如,复杂 PDE 可能导致梯度传播困难,收敛慢(梯度消失)、于具有快速变化特征的系统,如冲击波,标准 PINN 可能精度不足,需要改进策略,比如自适应采样或多尺度特征提取。但随着研究深入,这些问题正在不断被解决。物理或化学方程为什么往往是偏微分方程?什么是物理信息神经网络(PINN)?x_%7Bi%7D。

qq_52635735的博客 1万+

节日小游戏活动快速落地与高效转化技巧

比如,把平时验证过的消消乐、大转盘、接红包等经典玩法作为底子,只需要针对特定的节日(像春节、中秋)或者门店庆典,快速替换一套应景的UI素材和文案,再植入专属的节日福利。这种“旧瓶装新酒”的方式,能把开发周期压缩到极致,确保活动能踩着流量的爆发点准时上线。特别是对于实体门店,游戏通关后的奖励最好能直接引导到线下核销,比如“满100减20”的优惠券,这样能把线上的流量精准地拽进店里,形成实实在在的成交。这种基于熟人关系的推荐,比硬广有效得多,能迅速在朋友圈和社群里铺开,实现低成本的流量获取。

Hxzyxkf2016的博客 179

通俗解析:霍尔编码器、光电编码器、电位计、磁编码器和旋转变压器的实战选型指南

本文深入解析了霍尔编码器、光电编码器、电位计、磁编码器和旋转变压器五大主流编码器的工作原理与核心特性。通过对比精度、环境耐受性、成本及寿命等关键维度,并结合消费电子、工业自动化、汽车电子及极端环境等典型应用场景,提供了一份清晰的实战选型指南,旨在帮助工程师根据具体需求,在性能、可靠性与成本间做出最优决策。

weixin_29216353的博客 253

从FinFET到GAA:手把手解读2nm芯片制造的关键技术(含BSPDN避坑指南)

本文深入解读了2nm芯片制造从FinFET向全环绕栅极(GAA)晶体管架构演进的核心技术,并重点剖析了背面供电网络(BSPDN)的三种实现路径及其工程挑战。文章旨在帮助工程师理解技术变革的内在逻辑,并为应对2nm节点设计中的关键问题提供实用指南。

weixin_29294975的博客 292

Claude Code做Unity项目移植(三): 使用SKILL进行自动化Git提交

本文介绍基于ClaudeCodeSkill的Unity自动化Git提交助手——unity-git-commit,通过四大模块实现提交前的智能检查与安全修复:1)校验Git仓库状态;2)验证Unity项目文件(如排除Library/Temp,确保.meta文件完整);3)依据可配置的C#命名规范自动识别并安全修复命名问题(避免序列化、反射等高危场景误改);4)生成精准提交注释,但强制人工确认。全程仅本地commit,不自动推送或破坏性操作,保障安全。核心思想为“机械化工作交AI,关键决策留人工”,显著提升提交

Aman1984的博客 639

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8422

PyBox有什么好用的数织小游戏吗?

我们今天梳理了市面上主流的数织解谜工具,包括在线网站和本地应用,并且重点介绍了 PyBox 中的数织 Nonogram。在线解谜网站**适合快速上手、免费体验,但不适合长时间离线使用。本地解谜工具**提供了离线体验,方便专注解题,但可能会涉及安装和广告问题。PyBox的数织 Nonogram**则在绿色无广告、免安装、完全开源、及DIY定制等方面有着明显优势,非常适合想要一个干净、可控、无干扰的游戏环境的用户。如果你追求极致无干扰、注重隐私、喜欢轻量应用,那么数织 Nonogram 绝对值得一试。

Sanmsung的博客 123

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Windows远程桌面实现之二十:实现 moonlight 游戏串流协议之(一)

本文介绍在xdisp_virt中集成Moonlight游戏串流协议的实现过程。基于开源项目Sunshine逆向的GameStream协议,作者从零研究并自研实现Moonlight服务端网络通信部分,涵盖mDNS设备发现、nvhttp/nvhttps加密通信、nvrtsp协议交互及三类UDP数据通道(视频、音频、控制)。重点解决多客户端并发问题,采用串行处理机制确保连接一致性。通过自定义证书验证与密钥管理,完成配对与安全通信,最终实现低延迟、高性能的游戏串流体验,显著优于WebRTC浏览器方案。

fanxiushu的专栏 164

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

二进制木马免杀-游戏嵌套与图标替换

二进制木马免杀-游戏嵌套与图标替换

2503_94637398的博客 231

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解

UGUI 自动布局是一套的 C# 排版系统,和 Transform 原生锚点完全隔离;整套布局;最终输出只有对 RectTransform 的sizeDelta的赋值。

m0_63330263的博客 257

mark 黑塞《玻璃球游戏》

【最近在读黑塞的《玻璃球游戏》-“ai预言“ - 优快云 App】

2502_94306440的博客 187

Cocos Creator3.8.8 + Xcode27.2 编译运行失败

Cocos Creator3.8构建IOS工程后,使用最新的Xcode27.2版本进行真机调试,遇到C++标准库冲突,如is_floating_point、is_arithmetic和is_signed失败,以及webp对齐失败等问题。

HYNN12的博客 348

Kubernetes 的资源开销、适用边界,以及游戏与有状态负载的工程现实

Kubernetes 不是成本优化工具,而是一把运维规模化的杠杆。它的核心价值在于:当工作负载足够异构、运维复杂度足够高、团队能力足够匹配时,将原本指数级增长的运维成本拉回线性甚至常数级。它通过精细调度回收资源碎片,通过声明式 API 消除手工操作的边际成本,通过生态工具链实现跨环境的一致性。但杠杆的前提是——你得有足够重的负载来撬动。游戏服务端:外围服务放心上 K8s,对局制专用服用 Agones,持久世界要慎之又慎,核心战斗别把容器当虚拟机用。数据库。

神棍之路 264

(开源)游戏攻略分享系统实战指南 基于 Java + SpringBoot + uni-app + Vue + MySQL

这是一个基于 Java + SpringBoot + uni-app + Vue + MySQL 构建的完整游戏攻略分享系统,功能持续优化中...游戏攻略管理 游戏分类管理 旅游资讯管理 用户管理 管理员管理

小小码农身兼魔法师职位!除你武器~ 281

给 AI 一台贴图工厂:TexGen 程序化贴图引擎与 MCP 架构实践

但它很快就撞墙——一张贴图往往是多层叠加的:底色 + 噪波 + 砖缝 + 暗角 + 高光。所以 TexGen 的核心抽象是图层栈 + JSON 指令表codeTgSpec├── 几何: shape(8 种) + center / size / radius / rotation / cornerRadius├── 绘制: fill(7 种) + color / edgeColor / 渐变 + pattern + warp└── 合成: blend(11 种) + opacity / blur。

邹杭特的博客 328

【Unity基础】Unity输入与Time.deltaTime的使用原则

本文从 mousePositionDelta 与 GetAxis 出发,分析了Time.deltaTime的使用原则

Tealc 359

【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南

本文介绍了如何在Unity项目里同时支持2D和3D场景

Tealc 410

老题新解|NOIP 2008 普及组 T3:传球游戏

传球游戏是 NOIP 2008 普及组 T3,核心是「环形边界用取模处理」的二维 DP。本文给出状态定义 + 转移推导 + C++14 代码 + 易错点清单,代码可直接提交主流评测平台。

ZLOJ 313

游戏支付通道安全吗?靠谱吗?

资质之外,商家还可以查看通道方的清算背景和合作机构,多方信息交叉验证,判断更准确,正规的通道方经得起多方核实,信息越透明,合作越放心,这是选择安全通道的基本功课,交叉验证后的判断更可靠,正规通道的信息透明,查证过程本身就是信心的来源,合作更踏实,每一步都有依据,核实越细,信心越足。安全配合要落到实处,商家如实上报异常情况,通道方及时处理反馈,双方信息互通,风险才能及时化解,安全不是单方面的承诺,而是双方协作的结果,配合越紧密,保障越到位,双方信息互通,安全网越牢固,风险越小,信息互通有无,风险共同化解。

jingyun_2026的博客 81
上一篇: 我参加的汉化游戏进度[《逆转检察官2》汉化发布]
下一篇: 关于c语言中的字节对齐padding问题
LuckilyYu
博客等级 码龄20年 72粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值