圣斗士星矢战记Hackingの笔记1:模型破解

本文深入探讨了从圣斗士星矢战记游戏中学到的渲染技巧,包括如何实现各向异性光照效果、基于cubemap的高光处理及Fresnel反射的应用等,并分享了在游戏文件格式破解过程中遇到的问题与解决方案。

水平:高级图形学

理解难度:☆☆☆

数学难度:☆☆☆
实现难度:☆☆☆

百度空间也弄成微博了,看到微博首页就眼晕,作为仓库没法带呆了。开始往csdn搬运,只是csdn的页面真的很单调啊惊恐

面试美国SONY的Graphics QA被拒,因为OpenGL做的项目太弱了,明明requirement要求的是Direct3D/OpenGL的说,看来现在各种smart phone上的OpenGL ES是大势所趋啊;天上掉馅饼的事情果然还是很难发生在烂校的junior level的毕业生身上。


最近被圣斗士星矢战记迷住了,不仅重温了下激情燃烧的年代,而且,真的做的太炫了!!!!每个出招、躲避的动作都令人喷鼻血,那灵活的身形和绚丽的招数真的完整的再现了俺心目中的黄金十二宫的那几位帅哥——穆、沙加、米罗、卡妙。再配合搞基的视频解说和经典剧情,真的是基情四射啊。呵呵。


俺的小宇宙又燃烧鸟


开始crack它的文件格式,花了俺一个月的时间,被Maxscript诡异的骨骼坐标系和文件的各种坑爹的数据搞得死去活来,终于基本把骨骼、蒙皮和动画搞定了;但是又被黄金圣衣的渲染难住了;圣衣的环境反射是基于一张非常简单的几条竖线的贴图,没有任何环境反射贴图,但是效果却很绚丽而多变。仔细观察了一下黄金圣斗士的众帅哥像,感觉是用了某种涂抹算法;描边的方法也非常特别,描边是基于一张2048x2048的贴图,但是试了下,普通的方法不可能做出那么清晰的边缘线的。郁闷中,决定先转战OpenGL的项目和场景渲染了可怜


不过却从中学习到了漆质感的渲染方法,可以用于汽车高光涂料的渲染。以前一直对那种高亮表面颇为困惑,因为NDotL,或者即便是light map的效果都是乌突突的,一直很疑惑那种金属高亮的感觉来自何方,现在终于弄明白了。收获颇多。


第一反应是想到了各向异性(Anisotropy),因为有沿着轮廓和亮的高亮区,而BlinnPhong的高亮都是圆形的。各项异性的概念涉及到BRDF,颇为复杂。但是总体来说就是3种实现方法,一种是基于经验公式的,可以参照基于CPU的Bank BRDF经验模型,实现各向异性光照效果!一种是基于Bumpmap采样的,

Anisotropic Highlight Shader 最后一种是基于材质采样的,魔兽世界里的盾啊什么的都用后面这种方法,是Nvdia提供的经典方法,可参考Anisotropic Lighting。最后试了一下基于采样的方法,下面是效果,侧面和背光面比较有电镀玩具的质感,但是正面颜色比较单调,而且有一个非常大的毛病,就是当视线和光源方向一致的时候,那个高光面啊,绝对惨不忍睹。


发现不行的时候开始研究汽车涂料的效果是怎么做出来的。试了下

From ShaderX2 –Shader Programming Tips and Tricks with DirectX 9 

 Layered Car Paint Shader

结果一击命中,该方法提供了带闪光颗粒的漆质表面和3中颜色混合的材质,效果还不错。但是漆质有很重的厚度感,不适合渲染金属表面。


令我非常诧异的是,涂漆表面的重点就是: 没有NDotL!! 原来一个我认为必须有的元素。高光也不是HDotN提供的,而是cubemap提供的。另外绝大多数的质感原来都来自Fresnel反射,也就是说NDotV。不可思议。

发现NDotV的妙用之后就开始研究圣斗士星矢战记自带的材质要怎么用。结果就成了下面的样子,效果作为一般的电镀质感还不错。但是和游戏本身还是相距甚远的说。大哭




内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值