• 模拟人工混淆器 2代

    功能展示

    之前有写过一个用简单版本的混淆器,主要是使用正则表达来解析和混淆代码,但这个方式误混和兼容性是一个很头大的问题,维护带给了我很大的麻烦,所以我一直在寻找一个代替正则的方式,或者不要以正则为主的方式,最后还是找到了。这些并不重要,最重要的是功能升级了哪些。

  • LLVM学习之一搭建

    探索 先进入官方文档看看 About — LLVM 10 documentation 介绍的话我还没看,我现在要先把环境搭起来,所以我来到了下面 The LLVM Getting Started documentation may be out of date. The Clang Getting Started page might have more accurate information. This is an example workflow and configuration to get and build the LLVM source: Checkout LLVM (including related subprojects like Clang): git clone https://github.com/llvm/llvm-project.git Or, on windows, git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git Configure and build LLVM and Clang:. cd llvm-project mkdir build cd build cmake -G <generator> [options] .
  • python 命令行工具的框架

    在很早前听到过这样一句话“程序中要是反复在写同样一个东西,那就是不合理的”,我们应该尽可能地把能用的部分抽象出来,比如该有的工具,命令行的解析框架,引用到插件的框架。这些东西都是常用而且在每个项目中是独立的,不会跟其它模块有偶合。那么正常我们怎么开始写一个命令行工具呢?

  • 关于custom.el文件

    Saving Customizations - GNU Emacs Manual 官方详细说明 在emacs里面做的一些选择会记录在这个文件里面,比如进入dir-locals.el询问后 你的选择会写入这个文件.
  • 关于.dir-local文件

    关于.dir-local文件

    Sometimes, you may wish to define the same set of local variables to all the files in a certain directory and its subdirectories, such as the directory tree of a large software project. This can be accomplished with directory-local variables. File local variables override directory local variables, so if some of the files in a directory need specialized settings, you can specify the settings for the majority of the directory's files in directory variables, and then define file local variables in a few files which need the general settings overridden.

    大概说的意思是我们能在指定目录设置特别变量,文件局部变量会优先目录局部变量。

    ((nil . ((indent-tabs-mode . t)         ;; 设置所有模式下的缩进
             (fill-column . 80)))
     (c-mode . ((c-file-style . "BSD")      ;; 指定c-mode下的file style
                (subdirs . nil)))
     ("src/imported". ((nil . ((change-log-default-name . "ChangeLog.local"))))))  ;; 指定目录下的特殊设置

    如何重新应用dir-locals,当你选择过以后

  • 构建一个cocos js的框架

    早在几年前有个面试官问我,一个游戏框架应该包括哪些内容,那时候还是处理“只可意会不可言传”随便回答了一些片面内容,随着大型项目不断的增多,大部分的框架内容都是我负责搭建的,从搭建->完善->验证->(修补->再验证)*n->总结后才会有一个更好的总结。 什么是框架? 字面意义 框架(建筑学概念)_百度百科 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。 我的理解 游戏框架其实很像一个“框架房”,要建一个小洋房,那会选建一个框架起来,把必要的支柱,楼梯,楼层高度先建起来,然后至于要填充什么样的砖块、地板和家具等这些都是未知的。游戏也是一样,假如我们要做一款卡牌游戏,那么战斗、网络、引导、剧情、UI、声音、视频和本地存储这些就是基本的支柱,其实就是用程序的面向对象思维把卡牌游戏抽象出公共的部分,然后把这些部分高内聚低偶合地模块化。 不同类型游戏框架会有所差异 不同类型的游戏需要是不一样的,如果你是单机游戏,你其实不必要为框架添加网络模块 如何构建? *
  • Cocos2dx优化之RenderTexture

    为什么要用 游戏有一个指标是GPU渲染,做过优化的人应该对Opengl的drawcall应该都很熟悉,cocos2dx里面还有个batchnode就是批渲染 这个可以减少drawcall,但这个其实就是减少渲染流程,要达到一定的量级才会体现效果,平时那个几十个是基本影响不大。我自己测试 都是上千个数量级会效果。而且有很大的局限性,因为它要求材质必需是同一个,而这个材质包括Texture,BlendFunc,shader,只要 一个是不同的便不行,这种痛你们自己感受才明白。接下来我提的另外一种更有效的方案,那就是RenderTexture,它要做的主要事情就 是把一些碎小的元素绘制出来,然后把它们截取出来,利用的是Opengl FBO技术,如果把它们融合在一张再去绘制,那就可以大大降低 GPU的绘制时间,可以降低耗电量。 但这个是有代价的,你必要多一张绘制后大小的尺寸的占用内存,还有读取FBO消耗的性能。 什么时候用 了解完RenderTexture优点缺点后,我们要分析什么时候用它,一般我们会用它在列表上面,特别是一些不常变动的列表上面,如果列表项 越复杂,那它的效果就越明显,比如一个列表上是十个drawcall,那显示20,那就是200个drawcall, 这个量级应该是比较难接受的, 如果使用RenderTexture那就是20个,10倍的差距了解一下。 怎么用
  • 模拟人工的混淆器

    个人使用混淆器背景 简单的垃圾代码生成器 https://github.com/semgilo/gen-code 开源编译混淆工具:obfuscator https://github.com/obfuscator-llvm/obfuscator 升级版本混淆工具:Hikari https://github.com/HikariObfuscator/Hikari 专业加密软件 公司购买的 几维加密 顶象加密 其它 有一个让我有点“震惊”的混淆工具,做得非常的简陋的界面,一个月需要3K,各种全局替换。希望你们没有被坑。 我只是稍微吐槽一下。 特色介绍 目前支持C++和ObjC两个语言 效果截图 为了演示精准程度,特别找了一个比较垃圾的旧代码过来混淆。 即将支持功能 方法添加额外参数 资源混淆 垃圾方法 垃圾变量 垃圾类 提供混淆工程服务(收费) 稳定后可能会考虑开源 如果有需要工程混淆,可以联系博主 QQ微信同号:9737935
  • 经典正则表达式语句

    推荐学习地方 http://www.zjmainstay.cn/ 会持续更新中 python 需要 pip install regexVAR_TYPE = r'id|void|int|bool|BOOL|float|double|\bCG[\w]+\b|\bUI[\w]+\b|\bNS[\w]+\b|[\w]+[ ]*\*[ ]*' 双引号里面的内容 r'\"(?:[^"\\]|\\.)*\"' 注释 (***) r'/[*][\s\S]+?[*]/' 选取方法块(objc) r'[ ]*[+-][ ]*\((%s)\)[ ]*(\w+)[ ]*(:.*)?[ ]*[\s]+?(?<rec>\{(?:[^{}]+|(?&rec))*\})' % VAR_TYPE