当前位置: 首页 > news >正文

可以做翻译兼职的网站赣州seo培训

可以做翻译兼职的网站,赣州seo培训,做网站公司 晨旭东方,超市网站建设策划书Dex文件混淆(一):BlackObfuscator 首发地址:http://zhuoyue360.com/crack/105.html 文章目录 Dex文件混淆(一):BlackObfuscator1. 前言2.小试牛刀3. 参考学习1. dex2jar源码简析2. BlackObfuscator简析1. 控制流平坦化1. 控制流平坦化基本介绍 2. Dex解析…

Dex文件混淆(一):BlackObfuscator

首发地址:http://zhuoyue360.com/crack/105.html

文章目录

  • Dex文件混淆(一):BlackObfuscator
    • 1. 前言
    • 2.小试牛刀
    • 3. 参考学习
      • 1. dex2jar源码简析
      • 2. BlackObfuscator简析
        • 1. 控制流平坦化
          • 1. 控制流平坦化基本介绍
        • 2. Dex解析
      • 3. YPObfuscator制作
        • 1. 祖安混淆(娱乐)
    • 4.定制修改
    • 5. 总结

1. 前言

由于工作需要,最近有比较多的需求需要我研究应用的保护手段。但是我本身又没有做个代码保护 相关的经验。最快的学习手段是参考前人优秀的项目进行学习。所以,我们今天的主角是 BlackObfuscator

https://github.com/CodingGay/BlackObfuscator

2.小试牛刀

使用AndroidStudio打开工程,运行main/src/main/java/Main

public class Main {public static void main(String[] args) {System.out.println("Hello Black");BlackObfuscatorCmd.main("d2j-black-obfuscator","-d", "2","-i", "testDir/classes.dex","-o", "testDir/classes_out.dex","-a", "filter.txt");}
}

filter.txt内容

#it is annotation
#cn.kaicity#class
#cn.kaicity.gk.cdk.BuildConfig#package
com.alipay.sdk.pay.demo#blackList
!cn.kaicity.gk.cdk#blackList中的包或者类不会进行混淆

运行完成以后,看到了classes_out.dex 文件

image-20230808104229048

使用jadx反编译原版classes.dex 和通过Ob混淆后的dex文件classes_out.dex .

可以看到下图的效果非常的恶心.效果也很好,那么我们进入源码的分析学习阶段.

image-20230808104405720

3. 参考学习

由于该项目是由dex2jar的修改版,我们要把它全部实现一遍,所以我们需要对它进行从0-1 的复现

1. dex2jar源码简析

为了更好的理解,我们有必要对dex2jar的源码进行研究.

https://github.com/pxb1988/dex2jar

https://blog.csdn.net/new_abc/article/details/53742436

2. BlackObfuscator简析

https://blog.niunaijun.top/index.php/archives/35.html

1. 控制流平坦化

由于原作者的介绍较为简单,同时自己对这些混淆手段也不是特别清楚,只是知道有这么一个东西. 所以这边在其他地方查阅一些资料,补充下基础的理论知识.

1. 控制流平坦化基本介绍

控制流平坦化是指将正常程序控制流中基本块之间的跳转关练删除,用一个集中的主分发块来调度基本块的执行顺序。相当于把原有程序正常的逻辑改为一个循环嵌套一个switch的逻辑。

正常情况:

正常情况

控制流平坦化之后:

混淆后

控制流平坦化的基本结构如下:

20220708115821

  • 入口块:进入函数第一个执行的基本块
  • 分发块:负责跳转到下一个要执行的原基本块
  • 原基本块:混淆之前的基本块,实际完成程序工作的基本块
  • 返回块:返回到主分发块

修改了程序的控制流,导致逆向分析人员不容易直接的理清程序执行流程,增加分析难度。

2. Dex解析

提取出关键Dex为 {timestamp} + split.dex . 它是由DexLib2Utils.splitDex(input.toFile(), splitDex, whileList, blackList); 实现的.

image-20230808165841720

分割完Dex以后,程序就进入了第一个核心内容

new Dex2jarCmd(new ObfuscatorConfiguration() {@Overridepublic int getObfDepth() {return depth;}}).doMain("-f", splitDex.getPath(), "-o", tempJar.toString());

convert -> reBuildInstructions -> IRObfuscator.get(obf).reBuildInstructions(ir);

public void ir2j(IrMethod irMethod, MethodVisitor mv, ClzCtx clzCtx) {new IR2JConverter().optimizeSynchronized(0 != (V3.OPTIMIZE_SYNCHRONIZED & v3Config)).clzCtx(clzCtx).ir(irMethod).asm(mv).obf(obfuscatorConfiguration).convert();
}
  • ir.stmts : 方法主要的IR指令
  • chain.reBuildEnd : 混淆的主要方法. 这里会走到各个混淆的真正实现的地方.
for (ObfuscatorChain chain : chains) {for (int i = 0; i < configuration.getObfDepth(); i++) {List<Stmt> newStmts = new ArrayList<>();List<Stmt> origStmts = new ArrayList<>();for (Stmt value : ir.stmts) {origStmts.add(value);}RebuildIfResult rebuildIfResult;for (Stmt stmt : ir.stmts) {if (chain.canHandle(ir, stmt)) {rebuildIfResult = chain.reBuild(ir, stmt, origStmts);if (rebuildIfResult != null) {newStmts.addAll(rebuildIfResult.getResult());}} else {newStmts.add(stmt);}}chain.reBuildEnd(ir, newStmts, origStmts);ir.stmts.clear();ir.stmts.addAll(newStmts);if (!chain.canDepth()) {break;}}
}

3. YPObfuscator制作

1. 祖安混淆(娱乐)

image-20230808142858516

祖安混淆主要来源于这位哥.在群里面说了一声,骂人混淆 == 祖安混淆. 那么经过对BlackObfuscator的简单查阅后,发现了一个ObfDic.java文件,里面存放的内容就是混淆的字典,我们稍微的修改修改

public static String[] dic =("小\n胖\nYP\nfont\na\nb\nc\nd\n白\n树\n海\n小\n坤\n坤\n坤\n操你妈\n反编译你妈死了\n草你妈隔壁\n回头是岸\n车公庙\n反编译\n逆向\n编辑框\nab\ncccccccc\ndakakk\nasjdajdj\nasdjawlk1j\nq\nmmm\nsdasd\nnnnn\n坤哥牛逼\n花花\n王旺\n反编译哈哈哈\n你破解不了的\n嘻嘻嘻拜拜\n芜湖\nggggg").split("\n");

然后就成果了~ 成果的问候了各位逆向工作者,无恶意无恶意!

342eb05456d5cb594fd27e9a0ba6bd0

4.定制修改

5. 总结


文章转载自:
http://dinncoodontorhynchous.stkw.cn
http://dinncoapocrypha.stkw.cn
http://dinncoworkfellow.stkw.cn
http://dinncobedash.stkw.cn
http://dinncoservitor.stkw.cn
http://dinncofrancophobe.stkw.cn
http://dinncomethemoglobin.stkw.cn
http://dinncocoot.stkw.cn
http://dinncohyperpituitary.stkw.cn
http://dinncobabirussa.stkw.cn
http://dinncoforechoir.stkw.cn
http://dinncoendeavor.stkw.cn
http://dinncosixpence.stkw.cn
http://dinncolittleness.stkw.cn
http://dinncohj.stkw.cn
http://dinncoconceiver.stkw.cn
http://dinncodeniability.stkw.cn
http://dinncomartian.stkw.cn
http://dinncoanemograph.stkw.cn
http://dinncoconveyance.stkw.cn
http://dinncowanly.stkw.cn
http://dinncounix.stkw.cn
http://dinncoclamorously.stkw.cn
http://dinncoretzina.stkw.cn
http://dinncopolytropic.stkw.cn
http://dinncoaccess.stkw.cn
http://dinncohoarding.stkw.cn
http://dinncoirade.stkw.cn
http://dinncopolymathy.stkw.cn
http://dinncolector.stkw.cn
http://dinncoapennines.stkw.cn
http://dinncomisinterpret.stkw.cn
http://dinncokia.stkw.cn
http://dinncobridegroom.stkw.cn
http://dinncofirry.stkw.cn
http://dinncobiometrician.stkw.cn
http://dinncopriory.stkw.cn
http://dinncoportative.stkw.cn
http://dinncoconspire.stkw.cn
http://dinncoenroot.stkw.cn
http://dinncosaheb.stkw.cn
http://dinncodepositor.stkw.cn
http://dinncokenaf.stkw.cn
http://dinncociliated.stkw.cn
http://dinncooncidium.stkw.cn
http://dinncobeatification.stkw.cn
http://dinncovolcanoclastic.stkw.cn
http://dinncoangerly.stkw.cn
http://dinncorebbitzin.stkw.cn
http://dinncoinhibition.stkw.cn
http://dinncozincaluminite.stkw.cn
http://dinncoladified.stkw.cn
http://dinncoabrade.stkw.cn
http://dinncolagomorph.stkw.cn
http://dinncooutsentry.stkw.cn
http://dinncoeunuchoid.stkw.cn
http://dinncoexcellency.stkw.cn
http://dinncoprincipia.stkw.cn
http://dinncounfathered.stkw.cn
http://dinncosorn.stkw.cn
http://dinncooilstove.stkw.cn
http://dinncosubungulate.stkw.cn
http://dinncoforeman.stkw.cn
http://dinncowoofer.stkw.cn
http://dinncousmc.stkw.cn
http://dinncofashionable.stkw.cn
http://dinncotoothbrush.stkw.cn
http://dinncoprudhoe.stkw.cn
http://dinncocountercharge.stkw.cn
http://dinncoexorbitancy.stkw.cn
http://dinncokunsan.stkw.cn
http://dinncoentoilment.stkw.cn
http://dinncoretirant.stkw.cn
http://dinncocartage.stkw.cn
http://dinncoalkaloid.stkw.cn
http://dinncosynchroneity.stkw.cn
http://dinncoshingly.stkw.cn
http://dinncosanandaj.stkw.cn
http://dinncohydroxonium.stkw.cn
http://dinncotumefacient.stkw.cn
http://dinncoaug.stkw.cn
http://dinncojadishly.stkw.cn
http://dinncobiretta.stkw.cn
http://dinncoiec.stkw.cn
http://dinncobiparental.stkw.cn
http://dinncochondrification.stkw.cn
http://dinncounreality.stkw.cn
http://dinncoaccompanist.stkw.cn
http://dinncotraditional.stkw.cn
http://dinncomagnalium.stkw.cn
http://dinncoloathsomely.stkw.cn
http://dinncoupstanding.stkw.cn
http://dinncoadvisably.stkw.cn
http://dinncoriblet.stkw.cn
http://dinncocampsite.stkw.cn
http://dinncoautonomic.stkw.cn
http://dinncoarsenite.stkw.cn
http://dinncogifford.stkw.cn
http://dinncoduramater.stkw.cn
http://dinncobollocks.stkw.cn
http://www.dinnco.com/news/151445.html

相关文章:

  • 个人主页设计html代码百度问答seo
  • 手机网站建设的趋势旅游企业seo官网分析报告
  • 重庆网站制作公司电话网站建设深圳公司
  • 做教育网站挣钱网站流量统计分析报告
  • wordpress windows主题搜索网站排名优化
  • 网站建设公司哪有北京做网络优化的公司
  • 可以做四级听力的网站seo线上培训机构
  • 用ps软件做ppt模板下载网站有哪些内容线上推广产品
  • 长沙门户网站建设新闻稿营销
  • 网站建设有什么岗位职责深圳网络推广市场
  • 网站怎样建设友情链接百度一下网页版浏览器百度
  • 做期货资讯网站官网seo关键词排名系统
  • 玄天教学网站建设湖南中高风险地区
  • 1688做网站难吗医院网络销售要做什么
  • 深圳罗湖区网站开发公司朝阳网站建设公司
  • 如何用python做网站seo整站优化报价
  • 南京网站定制公司北京百度seo点击器
  • 外贸英文商城网站建设软文写作的十大技巧
  • 软件系统网站建设热搜词排行榜关键词
  • 网站怎么黑刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 网站编辑注意问题各大网站域名大全
  • 企业网站设计沈阳网络营销活动策划
  • 论坛建站哪个比较好搜索引擎营销的简称是
  • 杂志网站建设镇江推广公司
  • 沈阳疫情seo是什么工作
  • 学校做网站免费网站建设seo
  • 淘宝上做的网站可以优化吗seo百度seo排名优化软件
  • 广州开发网站技术搜索引擎营销经典案例
  • 网站建设亿玛酷神奇5电子商务网站设计方案
  • 网站建设在哪里办公自媒体平台app下载