gossip-sjtu / armariris Goto Github PK
View Code? Open in Web Editor NEW孤挺花(Armariris) -- 由上海交通大学密码与计算机安全实验室维护的LLVM混淆框架
License: Apache License 2.0
孤挺花(Armariris) -- 由上海交通大学密码与计算机安全实验室维护的LLVM混淆框架
License: Apache License 2.0
遇到中文时,运行出错
样本链接: https://cdn.discordapp.com/attachments/566987266313158656/583070306449489937/libcms.so
出于某种神必原因安卓版抄的是你们,iOS版抄的是我的。奇妙深刻的思维能力急需大脑升级,,,
所以问题的关键来了,他(们)是付钱给你们买下了使用授权还是单纯的剽窃
xor操作的时候 llvm会比较两个类型是否相同,创建的key类型是s8,所以会报错
项目中包含C++代码,编译没法通过,各种错误,不支持吗?
不只是objc__methodname, classname等私心认为同样不应该被加密。
另外这样的ctor加密方式在程序的入口点,dyld执行完ctor之后我个人理解就应该全部解密了?此时dump拿到的就是解密的字符串。基于def-use chain的处理可能会是更好的选择 . 我个人对此的一些理解放在了 http://mayuyu.io/2017/12/26/StringEncryption/
clang++.exe异常闪退
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.
在StringObfuscation.cpp中的runOnModule里,判断是否为字符串用gv->getName().str().find(".str."),会导致第一个@.str识别不出来,同时char p[] = "world"这种形式的字符串生成的名称是@.main.p,导致也识别不出来,我将判断的方式改为isa(gv->getInitializer())可以正常识别,不过这样子也有问题,这仅限于程序中只有char*字符串才能正常运行,如果是Objective-C中的NSString字符串,使用该方法混淆后,运行会出现bus error
错误。
不知有没有其他方法能对NSString的字符串进行加密。
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编译好了
原来就支持三种混淆,你这加上字符串混淆也三种,还有一个混淆呢?
这边能不能提供一下如何配置新版本ndk的方法,以前配置的ndkr10e的有点老了 要更新了
为啥不fork 下OLLVM项目 ,以后OLLVM项目更新了怎么办?你们这边可以同步进行更新?
see PR #5
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.
https://github.com/HikariObfuscator/Hikari/wiki/License
请删除相关的Pass,自己重新实现或更改授权许可为AGPLV3 ByteDance Employees Prohibited Public License, 感谢合作
字符串混淆功能在IOS中不能编译通过,有遇到相同问题的大神嘛?
以下是编译器错误:
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.