Smali和逆向分析

这篇文章其实2个月前就想写了,但并不好写,就懒得写了,所以拖到现在~其实接触smali这门语法是件蛮偶然的事,接触后发现,次奥,这货在某些领域太有用了,至于为什么我想看完这篇文章应该都明白了。

我自己也只是接触了皮毛,大概用了2个礼拜多一点,也不是很系统的学习,写这篇的目的主要还是想把知道的东西记下来,以后好追溯。

Smali简介

Smali是Dalvik的寄存器语言,它与Java的关系,简单理解就是汇编之于C。假如你对汇编有足够的驾驭能力,那你可以通过修改汇编代码来改变C/C++代码的走向。当然,学过汇编的都清楚,汇编比BrainFuck还难学,更不用说去反编译修改了。

但是Smali有一点不一样,就是它很简单,只有一点点的语法,只要你会java,了解Android的相关知识,那你完全可以通过修改Smali代码来反向修改java代码,虽然绕了一点,但是在某些情况下你不得不这么做。还好,Smali很简单。

【玩转cocos2d-x之四十】Cocos2d-x 3.0截屏功能集成

3.0的截屏和2.x的截屏基本上相同,都是利用RenderTexture来处理,在渲染之前调用call函数,然后调用Cocos的场景visit函数对其进行渲染,渲染结束后调用end函数即可。只是3.0截屏需要在截完屏的下一帧才能处理RenderTexture,这点要注意。关于2.x的RenderTexture的API和demo可以参见http://blog.csdn.net/jackystudio/article/details/15498083

本文的重点在于如何将截图功能继承到Cocos2d-x 3.0引擎。

如何在Windows平台使用VS搭建C++/Lua的开发环境

本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境。这里的“C++/Lua开发环境”主要指的是C++调用Lua,以及Lua调用C++。Mac平台相对会比较方便,但是VS也不是很麻烦就是了。Mac上利用XCode搭建的教程可以参考子龙山人的教程,当然也可以利用其他IDE,比如Eclipse+CDT+LDT来搭建,这都没有问题。

另外,本文不谈及Lua/C++的交互,相关内容可以参考《Lua程序设计》,或者子龙山人的Lua系列教程

PowerCmd,一个Windows下cmd的绝佳替代工具

由于工作关系(码奴),平时会需要接触到比较多奇奇怪怪的应用。而一些比较好的小众软件和工具,我觉得很有必要分享出来。这是第一篇,之后有的话会慢慢积累分享出来,如果你们也有好的软件,欢迎留言分享。

因为只是介绍工具而已,所以内容会很简单。

当然这里没有任何的广告成分。次奥。。。谁会给我广告费啊。。。

【玩转cocos2d-x之三十八】粒子系统的加载优化

Cocos2d-x的粒子系统是通过加载plist生成的。plist包含两部分内容:粒子系统属性和粒子纹理。然而每次调用create都会对plist进行读取解析,如果重复地使用同一个粒子效果,这样的调用明显是低效冗余的。所以我们要做的是,将粒子系统属性和粒子纹理分别抽出。

  • 将粒子系统属性预加载并全局保存,避免每次进行读取。
  • 粒子纹理可视且可以进行纹理打包,加载粒子纹理就和加载普通的图片一样。

本文通过增加ParticleSystemQuad的接口实现对粒子系统属性和纹理帧的直接载入,来提高粒子系统的加载效率和实现内存纹理的优化。

,