1.Unity Mono加密解决方案
2.mimikatz源码分析-lsadump模块(注册表)
3.小数的源码原码是多少
4.北京源码资本投资有限公司电话是多少?
5.Blend文件格式
Unity Mono加密解决方案
Unity Mono是Unity引擎的脚本运行时环境,提供跨平台的源码开源.NET框架实现,支持C#等编程语言编写游戏逻辑。源码然而,源码Mono模式下,源码游戏的源码源码知识大全C#代码容易被专业反编译软件分析逆向,导致安全性低。源码为解决此问题,源码Unity Mono加密方案经历了三代演进。源码
第一代加密方式是源码整体加密,修改mono源码以对DLL脚本进行加密。源码这种方法缺点是源码加载前进行一次性解密,内存中存在完整的源码DLL,可用工具获取。源码搜索PE文件Dos头特征码即可获取DLL信息。源码
第二代加密方式为函数加密,仅在使用方法时进行解密,笔画 源码减少内存中完整DLL的存在。但解析工具仍可见函数名及部分函数,存在安全隐患。
第三代加密方案是DLL结构虚拟化,重构文件结构并高强度加密数据,工具无法解析数据,即使是专业破解人员也难以解密结构数据。使用Editor解析正常PE结构,但使用DLL结构虚拟化后,无法正常解析。
针对Unity Mono的加密方案,FairGuard游戏加固提供了成熟方案,能对mono DLL、global-metadata.dat、libil2cpp.so等文件进行高强度加密,并研发了Unity Assetbundle资源加密方案。libtins 源码此外,还提供多项安全功能,如反内存修改、反调试、文件完整性校验等,有效解决游戏安全问题。
mimikatz源码分析-lsadump模块(注册表)
mimikatz, a powerful tool for internal network penetration, delves into its source code in this article as a continuation of a previous piece. The focus here is on the lsadump module, specifically the SAM portion, which involves extracting user hashes from the registry.
Windows Registry HIVE file format analysis is essential for understanding the functionality of mimikatz's lsadump module. To get a comprehensive view, refer to articles on Windows Registry HIVE file format and a basic understanding of Registry HIVE files. The structure of HIVE files, reminiscent of a PE file, comprises "file headers" and "sections" with their respective "section headers" and "sections". Each HIVE file begins with "HBASE_BLOCK", which records various information about the file.
For a detailed representation of the structure, refer to the Editor template script. While the template code sometimes fails to correctly parse HIVE files, the structure definitions used in the following explanations adhere to the definitions within mimikatz.
HBASE_BLOCK
Editor presents the following description of the structure:
Each field's meaning can be deduced from its name. Key attention is given to the block's signature: "regf", which is crucial for understanding the file's content.
HBIN
Editor's description of the structure is as follows:
Similar to a PE file's section header, this structure contains details about the "section's" size, offset, and so on. The "section signature" for a nest is "hbin", which helps in locating the nest to ensure subsequent successful key-value queries. Various types of data, such as keys, values, and security descriptors, are stored in distinct "nest rooms".
mimikatz's parsing process involves:
1. Obtaining the "handle" to the "system" HIVE file 2. Reading the computer name and decryption key 3. Obtaining the "handle" to the "sam" HIVE file 4. Reading usernames and user hashes
In the absence of "sam" and "system" files, mimikatz directly accesses the current machine's Registry via its official API.
Before diving into the code, a brief overview of the structures created by mimikatz is provided:
PKULL_M_REGISTRY_HANDLE is used to identify the Registry object and its content. It comprises two members:
type denotes the Registry hive file operation or direct access to Registry items via an API. The focus shifts to the second member, pHandleHive, which involves the next structure:
This structure represents the "handle" to a Registry file, consisting of four members:
hFileMapping: file mapping handle pMapViewOfFile: points to the file mapping's mapped location in the calling process's address space for accessing the mapped file content pStartOf: points to the first nest in the Registry hive file pRootNamedKey: points to a key nest room for finding subkeys and subkey values
For key nest rooms, the structure defined within mimikatz is as follows:
Compared to the Editor output, this structure is similar, with discrepancies in the details. The differences in the two structures do not hinder the analysis of the parsing code within mimikatz.
Getting the "handle" to the "sam" and "system" files involves mapping the files into memory. This process utilizes two Windows APIs:
CreateFileMapping and MapViewOfFile
Upon creating the "handle", the next step is to query the computer name and decryption key. The decryption key length is bytes. The key is located at HKLM\SYSTEM\ControlSet\Current\Control\LSA. The key is derived from four different keys' values, arranged in a fixed order. After locating the keys, the final bytes of the key data are obtained. The key data is then assembled according to a fixed order.
For obtaining the computer name and decryption key, focus on the functions:
kull_m_registry_RegOpenKeyEx and kull_m_registry_RegQueryInfoKey
These functions involve two branches: using the RegOpenKeyEx API directly to open a Registry key, or recursively searching the provided hive file to locate the corresponding subkey list nest (hl). Essentially, opening a Registry key involves locating the desired nest.
The process is akin to traversing a binary tree, starting from the root node and progressing to each leaf node, layer by layer, until the target key nest is located. Notably, moving from a key nest to another involves querying the corresponding subkey list nest, as each key nest stores an offset to its subkeys, which is used to locate the corresponding subkey's offset.
小数的原码是多少
1.和本就是原码。8位字长纯小数,第一位为符号位,小数点在第一位后面,后七位为具体数值,如: -0.原码表示为1.,反码为1.,补码为1.;-1的补码为1.。
若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是源码跟踪数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:
一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:2^(-n)≤|x|≤1 -2^(-n)。
扩展资料:
由于“编码总位数为8”的限制,真值-无法用原码、反码来表示,似乎不能用上述规则来求解补码,但实际上是rat 源码可行的——只要不管它的最高位即可,操作办法如下:
将化为二进制为:1 ,最高位为1,可以只对舍去最高位后剩余的7位进行处理即可,首先取反得:,加1得:1 ,最高位有进位需丢弃,即得:,加上符号位就得补码:1 。
又如,当编码总位数为4时,真值X=+0.的原码、反码、补码均为:0 。真值X=-0.的原码、反码、补码依次为:1 、1 、1 。同理,特例,-1的补码为:1 。在定点小数中,小数点隐含在第一位编码和第二位编码之间。
按此规则,任何一个小数都可以被写成 :N = NS . N-1 N-2 … N-M。如果在计算机中用m+1个二进制位表示上述小数,则可以用最高(最左)一个二进制位表示符号(如用0表示正号,则1就表示负号),而用后面的m个二进制位表示该小数的数值。
小数点不用明确表示出来,因为它总是固定在符号位与最高数值位之间,已成定论。定点小数的取值范围很小,对用m+1个二进制位的小数来说,其值的范围为:
|N| ≤ 1-2^(-m)即小于1的纯小数,这对用户算题是十分不方便的,因为在算题前,必须把要用的数,通过合适的 "比例因子"化成绝对值小于1的小数,并保证运算的中间和最终结果的绝对值也都小于1,在输出真正结果时,还要把计算的结果按相应比例加以扩大。
北京源码资本投资有限公司电话是多少?
北京源码资本投资有限公司****:公司电话-,公司邮箱lr@sourcecodecap.com,该公司在爱企查共有7条****,其中有电话号码3条。公司介绍:
北京源码资本投资有限公司是--在北京市朝阳区成立的责任有限公司,注册地址位于北京市朝阳区望京东园七区号楼层室。
北京源码资本投资有限公司法定代表人曹毅,注册资本,.万(元),目前处于开业状态。
通过爱企查查看北京源码资本投资有限公司更多经营信息和资讯。
Blend文件格式
文件结构的探讨
文件结构是理解Blend文件格式的关键,可通过参考相关资料进行深入学习。
文件头(FileHeader)是Blend文件的核心部分,编码为DNA1,由SDNA结构体实现。
SDNA包含四个重要属性:names、types、typessize、structures。依BlenderV版本为例,names长度为,types长度为,typessize长度与types一致,structures长度为个。
理论上,structures长度应为types长度减去原子类型个数,但实际为个,原因是部分DNA类型包含非DNA类型的字段,相关结构信息未保存在SDNA数据中。这些结构体的特征可参考source\blender\makesdna\DNA_ID.h中的类型IDOverrideLibraryRuntime定义。
所有前带有两个#字符的结构体未保存在SDNA数据中。四个属性长度的理论上限为(倒排索引使用的是ushort),实际上限为。因此,当前的存储容量足够使用。
Editor解析
使用Editor(V.0.1)对Blend文件进行解析,已提交模板文件至editor,预计不久即可完成解析。
模板文件
实现的模板文件内容包含对SDNA中第一个结构体Link的详细说明。
示意图使用draw.io绘制,以帮助理解。
DNA数据生成
makesdna工具用于生成DNA数据。
Blend信息获取
在浏览Blender网页时,发现JanWalter的个人网站,其Rust语言的blend_info库一直在更新,已能读取blend文件中的模型并自行渲染。如欲深入了解Blend文件格式,可阅读其博客或下载blend_info源码。
2024-12-29 03:10
2024-12-29 03:01
2024-12-29 02:56
2024-12-29 02:11
2024-12-29 02:03
2024-12-29 01:07
2024-12-29 01:03
2024-12-29 01:02