- 浏览: 3052522 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
听汉公的说明,看来LittleWitch所使用的FFD System在ver4之后解起来就有点麻烦。游戏里的资源归档文件里虽然还是有文件列表,但并没有保存原始的文件名而只是保存了文件名的MD5。这使得解出文件有困难,如果事先不知道想要解的文件的名字,即使把内容能解出来,其文件名也让人不知所云。
但总有办法的。在System.dat里有些定义界面元素用的*.def文件。例如这样:
Music.def
这些列表能提供足够信息解出相当多的资源,例如说背景音乐、CG等。但有些重要的资源文件名却不在*.def里,像是我们关心的脚本文件。
前一篇里介绍了如何将Quartett!的二进制脚本转变回到一般可读的形式,这里就稍微说明一下我是如何从解出来的脚本中得到一份脚本里引用过的文件列表。
从前一篇的分析可以知道,token类型为0x83的是字符串token。在FFD脚本里,好几种内容都可能会是字符串类型:1、剧情文本;2、一般参数,如图像渐变的模式"Fade",图像的形状"Rect"之类;3、资源文件路径;等等。不进行文法分析的话,没有办法准确判断这些字符串中到底哪些代表资源文件的路径。但有些偷懒的方式可以试试。
我浏览了一下Quartett!的脚本,假定其引用的资源文件路径中必然有分隔符“.”。但是有一些剧情文本里也有“.”,为了尽量排除掉它们,我写了这样的判断方法:
将前一篇里提到的“反编译器”稍微修改了一下,让它收集所有脚本中满足上面的判断的token,并输出到一个单一的文本文件中。
于是得到了类似这样的一个文件:
(片段)
使用UltraEdit打开该文件,并使用文件->排序->高级排序/选项。选择“升序”和“删除重复”,并开始排序。对这里的例子排序的话,结果是:
可以看到,如果有重复的资源文本,它们已经被UltraEdit清除掉了。而且有一些我们所不关心的内容也堆在了一起,可以方便的选取并删除。
这里我们对FONT和TYPE标签都没兴趣,但在实际删除它们之前,留意到有些行里有IMG标签,里面有我们感兴趣的src属性指向的是资源文件,得留下。这部分我是自己做了苦力,在UltraEdit里逐个搜索<IMG src并将与其在同一行上的非文件路径内容都删除掉。再做一个排序,确认所有IMG标签都处理好了,然后把FONT、TYPE等标签,以及排在后面的纯剧情文本都删除掉。
经过处理,提取出来的记录里就只剩下这样的内容了:
我把这样的文件列表给了汉公,但之后又得到了新的要求:要把这个列表按归档文件拆分开来。
这是件简单的事。首先得知道路径上什么是归档的文件名,什么是归档里内容的文件名。通过分析,发现路径上最后一个/之后的是归档里内容的文件名,而在那之前的都是归档自身的路径。于是写了个简短的程序来对文件列表做二次处理:
split.cs
完事。来看看其中一个分离出来的lst文件长什么样:
Face.lst
嗯,基本上满足要求了。
==========================================================
进一步的精确分析确实需要写出parser来做。我现在肯定是没时间做,不过计划以后做的时候用ANTLR来完成。难点是要设计出一个精确的上下文无关文法。到时候再说吧~
但总有办法的。在System.dat里有些定义界面元素用的*.def文件。例如这样:
Music.def
引用
# サウンド定義ファイル
# "条件式", "サウンドファイル名", "サムネイルファイル名", "見出し"
"1" ,"m/BGM_01.ogg" , "SAM/music_thumb.bmp", "Regret"
"1" ,"m/BGM_02.ogg" , "SAM/music_thumb.bmp", "夕影"
"1" ,"m/BGM_03.ogg" , "SAM/music_thumb.bmp", "Reminiscene"
"1" ,"m/BGM_04.ogg" , "SAM/music_thumb.bmp", "Introduction"instrument
"1" ,"m/BGM_05.ogg" , "SAM/music_thumb.bmp", "陽春"
"1" ,"m/BGM_06.ogg" , "SAM/music_thumb.bmp", "沙友"
"1" ,"m/BGM_07.ogg" , "SAM/music_thumb.bmp", "透花 op02"
"1" ,"m/BGM_08.ogg" , "SAM/music_thumb.bmp", "透花"
"1" ,"m/BGM_09.ogg" , "SAM/music_thumb.bmp", "エマ op02"
# "条件式", "サウンドファイル名", "サムネイルファイル名", "見出し"
"1" ,"m/BGM_01.ogg" , "SAM/music_thumb.bmp", "Regret"
"1" ,"m/BGM_02.ogg" , "SAM/music_thumb.bmp", "夕影"
"1" ,"m/BGM_03.ogg" , "SAM/music_thumb.bmp", "Reminiscene"
"1" ,"m/BGM_04.ogg" , "SAM/music_thumb.bmp", "Introduction"instrument
"1" ,"m/BGM_05.ogg" , "SAM/music_thumb.bmp", "陽春"
"1" ,"m/BGM_06.ogg" , "SAM/music_thumb.bmp", "沙友"
"1" ,"m/BGM_07.ogg" , "SAM/music_thumb.bmp", "透花 op02"
"1" ,"m/BGM_08.ogg" , "SAM/music_thumb.bmp", "透花"
"1" ,"m/BGM_09.ogg" , "SAM/music_thumb.bmp", "エマ op02"
这些列表能提供足够信息解出相当多的资源,例如说背景音乐、CG等。但有些重要的资源文件名却不在*.def里,像是我们关心的脚本文件。
前一篇里介绍了如何将Quartett!的二进制脚本转变回到一般可读的形式,这里就稍微说明一下我是如何从解出来的脚本中得到一份脚本里引用过的文件列表。
从前一篇的分析可以知道,token类型为0x83的是字符串token。在FFD脚本里,好几种内容都可能会是字符串类型:1、剧情文本;2、一般参数,如图像渐变的模式"Fade",图像的形状"Rect"之类;3、资源文件路径;等等。不进行文法分析的话,没有办法准确判断这些字符串中到底哪些代表资源文件的路径。但有些偷懒的方式可以试试。
我浏览了一下Quartett!的脚本,假定其引用的资源文件路径中必然有分隔符“.”。但是有一些剧情文本里也有“.”,为了尽量排除掉它们,我写了这样的判断方法:
static bool Match( string tokenString ) { return ( tokenString.Contains( "." ) && !tokenString.Contains( "..." ) && !tokenString.Contains( ">.." ) && !tokenString.Contains( ",.." ) && !tokenString.Contains( "..<" ) && !tokenString.Contains( "\u3000.." ) ) || tokenString.Contains( "<IMG" ); }
将前一篇里提到的“反编译器”稍微修改了一下,让它收集所有脚本中满足上面的判断的token,并输出到一个单一的文本文件中。
于是得到了类似这样的一个文件:
(片段)
../ Script/BaseInstruction.txt Back/Lesson01.bmp <FONT size=18 face='G'>フィル君.<BR>まだ<TYPE interval=500 speed=500 style='Spring'>~ I/100221/0221-#03b-02-2.bmp BGM/B02_Juni.ogg I/100221/0221-#03b-02-3.bmp I/100221/0221-#03b-02-4.bmp I/100221/0221-#03b-03-1.bmp Face/Juni11R.png <TYPE interval=55 style='Fade'>なっ ..なんて<BR>わかりやすい<BR>ゴマカシを・・・・・・ <TYPE style='Fade'><IMG src='Em/Ase18.png'>
使用UltraEdit打开该文件,并使用文件->排序->高级排序/选项。选择“升序”和“删除重复”,并开始排序。对这里的例子排序的话,结果是:
../ <FONT size=18 face='G'>フィル君.<BR>まだ<TYPE interval=500 speed=500 style='Spring'>~ <TYPE interval=55 style='Fade'>なっ ..なんて<BR>わかりやすい<BR>ゴマカシを・・・・・・ <TYPE style='Fade'><IMG src='Em/Ase18.png'> BGM/B02_Juni.ogg Back/Lesson01.bmp Face/Juni11R.png I/100221/0221-#03b-02-2.bmp I/100221/0221-#03b-02-3.bmp I/100221/0221-#03b-02-4.bmp I/100221/0221-#03b-03-1.bmp Script/BaseInstruction.txt
可以看到,如果有重复的资源文本,它们已经被UltraEdit清除掉了。而且有一些我们所不关心的内容也堆在了一起,可以方便的选取并删除。
这里我们对FONT和TYPE标签都没兴趣,但在实际删除它们之前,留意到有些行里有IMG标签,里面有我们感兴趣的src属性指向的是资源文件,得留下。这部分我是自己做了苦力,在UltraEdit里逐个搜索<IMG src并将与其在同一行上的非文件路径内容都删除掉。再做一个排序,确认所有IMG标签都处理好了,然后把FONT、TYPE等标签,以及排在后面的纯剧情文本都删除掉。
经过处理,提取出来的记录里就只剩下这样的内容了:
BGM/B01_Charlotte.ogg BGM/B02_Juni.ogg BGM/B03_Shuhua.ogg BGM/B04_MyHome.ogg BGM/B05_Serious.ogg BGM/B07_AcademiaMusicae1.ogg BGM/B08_AcademiaMusicae2.ogg BGM/B09_AcademiaMusicae3.ogg BGM/B10a_Bar1.ogg BGM/B10b_Bar2.ogg BGM/B11a_Title.ogg
我把这样的文件列表给了汉公,但之后又得到了新的要求:要把这个列表按归档文件拆分开来。
这是件简单的事。首先得知道路径上什么是归档的文件名,什么是归档里内容的文件名。通过分析,发现路径上最后一个/之后的是归档里内容的文件名,而在那之前的都是归档自身的路径。于是写了个简短的程序来对文件列表做二次处理:
split.cs
// split.cs, 2007/12/21 // by RednaxelaFX /* * Copyright (c) 2007 着作权由RednaxelaFX所有。着作权人保留一切权利。 * * 这份授权条款,在使用者符合以下三条件的情形下,授予使用者使用及再散播本 * 软件包装原始码及二进位可执行形式的权利,无论此包装是否经改作皆然: * * * 对于本软件源代码的再散播,必须保留上述的版权宣告、此三条件表列,以 * 及下述的免责声明。 * * 对于本套件二进位可执行形式的再散播,必须连带以文件以及/或者其他附 * 于散播包装中的媒介方式,重制上述之版权宣告、此三条件表列,以及下述 * 的免责声明。 * * 未获事前取得书面许可,不得使用RednaxelaFX之名称, * 来为本软件之衍生物做任何表示支持、认可或推广、促销之行为。 * * 免责声明:本软件是由RednaxelaFX以现状("as is")提供, * 本软件包装不负任何明示或默示之担保责任,包括但不限于就适售性以及特定目 * 的的适用性为默示性担保。RednaxelaFX无论任何条件、 * 无论成因或任何责任主义、无论此责任为因合约关系、无过失责任主义或因非违 * 约之侵权(包括过失或其他原因等)而起,对于任何因使用本软件包装所产生的 * 任何直接性、间接性、偶发性、特殊性、惩罚性或任何结果的损害(包括但不限 * 于替代商品或劳务之购用、使用损失、资料损失、利益损失、业务中断等等), * 不负任何责任,即在该种使用已获事前告知可能会造成此类损害的情形下亦然。 */ using System; using System.Collections.Generic; using System.IO; using System.Text; sealed class Splitter { static void Main( string[ ] args ) { if ( !File.Exists( args[ 0 ] ) ) return; string infilelist = args[ 0 ]; // get the file names and sort them out by the archive they belong to // paths that doesn't seem to be in an archive are ignored Dictionary<string, List<string>> dic = new Dictionary<string, List<string>>( ); using ( StreamReader reader = new StreamReader( File.OpenRead( infilelist ), Encoding.GetEncoding( "utf-16le" ), true ) ) { string line = null; while ( ( line = reader.ReadLine( ) ) != null ) { int seperateIndex = line.LastIndexOf( "/" ); if ( -1 == seperateIndex ) continue; string path = line.Substring( 0, seperateIndex ); string filename = line.Substring( seperateIndex + 1 ); if ( dic.ContainsKey( path ) ) { List<string> list = dic[ path ]; list.Add( filename ); } else { List<string> list = new List<string>( ); list.Add( filename ); dic.Add( path, list ); } } // while } // using // write the file lists out foreach ( string path in dic.Keys ) { int seperateIndex = path.LastIndexOf( "/" ); if ( -1 != seperateIndex ) { Directory.CreateDirectory( path.Substring( 0, seperateIndex ) ); } using ( StreamWriter writer = new StreamWriter( File.Create( path + ".lst" ), Encoding.GetEncoding( 932 ) ) ) { foreach( string filename in dic[ path ] ) { writer.WriteLine( filename ); } // foreach } // using } // foreach } }
完事。来看看其中一个分离出来的lst文件长什么样:
Face.lst
Char01L.png Char04L.png Char04R.png Char15L.png Gise12R.png Gise17R.png Hans03L.png Hans03R.png Juni05R.png Juni10L.png Juni10R.png Juni11R.png Lina02L.png Lina06L.png Lina06R.png May15L.png May16R.png Phil00L.png Phil00R.png Phil02L.png Phil02R.png Phil03L.png Phil03R.png Phil04L.png Phil04R.png Phil05R.png Phil07L.png Phil07R.png Phil12L.png Shuh00R.png Shuh11R.png Sign09R.png Sign10R.png
嗯,基本上满足要求了。
==========================================================
进一步的精确分析确实需要写出parser来做。我现在肯定是没时间做,不过计划以后做的时候用ANTLR来完成。难点是要设计出一个精确的上下文无关文法。到时候再说吧~
发表评论
-
IDA Pro Free笔记
2013-05-19 08:59 0IDA把数据都存哪里了? Windows 7 D:\tem ... -
加密算法收集
2011-01-23 16:10 0加密算法,OTP http://en.wikipedia.or ... -
BattleMoonWars 归档解压/压缩程序(砍掉重炼版)
2010-05-03 21:40 2281以前写过BattleMoonWars的 ... -
Quartett!文本插入程序
2008-06-21 20:38 1572年初写的Quartett!的文本 ... -
BattleMoonWars 归档解压/压缩程序 (Java)
2008-04-08 16:44 2448呼,这个也是一年多之 ... -
ケータイ少女 script.arc的解压缩程序 (Java)
2008-04-08 14:02 4656嗯,这个也是快一年前写的了。当时在澄空看到有人想要解手机少女的 ... -
桃華月憚体験版的解压缩程序 (Java)
2008-04-08 13:38 3113这是差不多一年前写的程序了……有人说想看于是发出来。 当时也是 ... -
Quartett!的文本提取程序
2008-03-05 23:31 1878诶,之前写了这个程序 ... -
Fortune Arterial Tools
2008-02-28 13:34 2446using System; using System.IO; ... -
さくらシュトラッセ literal record
2008-01-28 14:53 1814脚本在scenario.sc里。无 ... -
Borland的库的一个小特征?
2008-01-06 00:22 2509最近弄了下KAMIPANI相关 ... -
[脚本分析] Quartett!的二进制脚本分析
2007-12-20 22:17 3325我前两天在NetOA方面确 ...
相关推荐
"Quartett!文本插入程序"是一个用于在特定文件中插入文本的工具,它主要处理tkn格式的文件。这个程序可能对程序员或系统管理员非常有用,因为它允许他们自动化一些文本处理任务,例如批量添加注释、修改配置文件或者...
此外,项目的版本控制可能采用了Git,这可以从"quartett-app-master"这个文件名推断出来,"master"通常指的是Git仓库中的主分支,意味着这是项目的主要代码版本。 开发者可能还使用了Maven或Gradle作为构建工具,...
sql server+java项目之科帮网计算机配件报价系统源代码
有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上
zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。
内容概要:本文档详细介绍了LinkLab实验的五个阶段,涵盖了ELF文件的组成、符号表的理解、代码节与重定位位置的修改等内容。每个阶段都有具体的实验要求和步骤,帮助学生理解链接的基本概念和链接过程中涉及的各项技术细节。 适合人群:计算机科学专业的本科生,特别是正在修读《计算机系统基础》课程的学生。 使用场景及目标:① 通过实际操作加深对链接过程和ELF文件的理解;② 掌握使用readelf、objdump和hexedit等工具的技巧;③ 实现特定输出以验证实验结果。 阅读建议:实验过程中的每个阶段都有明确的目标和提示,学生应按照步骤逐步操作,并结合反汇编代码和二进制编辑工具进行实践。在完成每个阶段的实验后,应及时记录实验结果和遇到的问题,以便于总结和反思。
【资源说明】 基于关键词的历时百度搜索指数自动采集资料齐全+详细文档+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
第一次发文的小白,解释的不好,各位大佬勿怪哦
免费下载:Hilma af Klint a Biography (Julia Voss)_tFy2T.zip
屏幕截图 2024-12-21 172527
2024级涉外护理7班马天爱劳动实践总结1.docx
IndexOutOfBoundsException(解决方案)
有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上
有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上
zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。
DevExpressVCLProductDemos-24.2.3.exe
欢迎下载
有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上
资源描述: 机型代码:haotian 1-----工程固件可以用于修改参数 开启diag端口。可以用于修复tee损坏以及修复底层分区。 2-----此固件是完整官方。不是第三方打包。请知悉 3-----此固件可以解锁bl后fast模式刷写。也可以底层深刷。也可以编程器写入 4-----请会用此固件 了解工程固件常识以及会用的朋友下载。 5-----个别高版本深刷需要授权才可以刷入。需要自己会刷写。 6------资源有可复制性。下载后不支持退。请考虑清楚在下载哦 工程资源常识可以参考博文:https://blog.csdn.net/u011283906/article/details/141815378 了解基本
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;