Git Product home page Git Product logo

gossip-sjtu / armariris Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 265.0 51.13 MB

孤挺花(Armariris) -- 由上海交通大学密码与计算机安全实验室维护的LLVM混淆框架

License: Apache License 2.0

CMake 0.26% Shell 0.04% Go 0.07% C++ 53.45% OCaml 0.15% Python 0.62% C 7.76% Objective-C 2.64% Makefile 0.45% LLVM 26.14% Assembly 6.87% Roff 0.01% Perl 0.06% Emacs Lisp 0.01% Batchfile 0.01% Vim Script 0.01% PHP 0.01% HTML 0.64% Objective-C++ 0.78% MATLAB 0.03%

armariris's People

Contributors

elinesterov avatar flysoar avatar gossip-sjtu avatar itcbx avatar oubotong avatar romangol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

armariris's Issues

没有arm-linux-androideabi-ollvm-g+

make: /home/android/sda4/android-ndk-r14b/toolchains/arm-linux-androideabi-ollvm-armariris/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ollvm-g++: Command not found
我把最新armariris编译好了

Assert fail in case of WCHAR

Target: x86_64-pc-windows-msvc

Assert failed at below line in case of WCHAR
BinaryOperator* int8_dec = BinaryOperator::Create(Instruction::Xor, int8_20, const_key, "xor", label_for_body);

int8_20 has a type with 16 bits and const_key has 8.
Changing const_key to 16 bits in case of wchar will fix this in my try, but you may have better solution.

Fork from llvm base next time

Why didn't you just fork from the llvm base instead of checking in whatever source code happened to be on your hard drive at the time, "software in security progress team"? Nobody can trust this source code base unless you include all the changes that have happened since the original llvm repository.

ObjC String的过滤是错误的?

不只是objc__methodname, classname等私心认为同样不应该被加密。
另外这样的ctor加密方式在程序的入口点,dyld执行完ctor之后我个人理解就应该全部解密了?此时dump拿到的就是解密的字符串。基于def-use chain的处理可能会是更好的选择 . 我个人对此的一些理解放在了 http://mayuyu.io/2017/12/26/StringEncryption/

这个不是从原来的o-llvm拷贝过来的?

原来就支持三种混淆,你这加上字符串混淆也三种,还有一个混淆呢?
这边能不能提供一下如何配置新版本ndk的方法,以前配置的ndkr10e的有点老了 要更新了

Obj-C编译的时候,还是会出问题

以下是编译器错误:
Assertion failed: (S1->getType() == S2->getType() && "Cannot create binary operator with two operands of differing type!"), function Create, file /Users/renqiming/Documents/iOS/Armariris/lib/IR/Instructions.cpp, line 2149.

这里是定位的错误位置:
StringObfuscation.cpp, line 180.

判断是否为字符串的问题

在StringObfuscation.cpp中的runOnModule里,判断是否为字符串用gv->getName().str().find(".str."),会导致第一个@.str识别不出来,同时char p[] = "world"这种形式的字符串生成的名称是@.main.p,导致也识别不出来,我将判断的方式改为isa(gv->getInitializer())可以正常识别,不过这样子也有问题,这仅限于程序中只有char*字符串才能正常运行,如果是Objective-C中的NSString字符串,使用该方法混淆后,运行会出现bus error错误。
不知有没有其他方法能对NSString的字符串进行加密。

抖音似乎抄的是你们的实现,而且没有按照Apache许可证做任何公开声明

82F4289C-86FB-417C-BBF1-2D0718CB54E0
火山小视频相关字符串,可以某种程度上证明确实来自字节跳动
DA9EE6C5-51BE-46D1-9DF0-139C8F9C1964

样本链接: https://cdn.discordapp.com/attachments/566987266313158656/583070306449489937/libcms.so

出于某种神必原因安卓版抄的是你们,iOS版抄的是我的。奇妙深刻的思维能力急需大脑升级,,,

所以问题的关键来了,他(们)是付钱给你们买下了使用授权还是单纯的剽窃

和C++混编失败

项目中包含C++代码,编译没法通过,各种错误,不支持吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.