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

如何开网站网站基本信息设置

如何开网站,网站基本信息设置,百度一下就知道了官网楯,百度如何发布信息推广前言 Android应用中的APK安全性一直遭人诟病#xff0c;市面上充斥着各种被破解或者汉化的应用#xff0c;破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等#xff0c;这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植… 前言 Android应用中的APK安全性一直遭人诟病市面上充斥着各种被破解或者汉化的应用破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植入病毒等等从而破坏原有APK的安全和用户体验最终伤害到用户和原有的开发者。 而事物都是有两方面的有矛就有盾针对Android应用安全的各种方案应运而生大家比较熟悉一般是各类加壳加固的工具我们可以使用这些工具来保护我们的APK加壳加固是另外一个话题了我们这里不对加壳加固进行介绍后续如果有机会会单独开一个话题讨论我们在开发过程中可以通过ProGuard或者DexGuard来保护我们的代码从而实现相对的代码安全但我们的资源呢我们往往忽略对资源文件的保护那这里将要分享的是如果采用常规方式对APK中的资源文件进行保护。 资源安全 资源安全这个话题目前大家关注度不算太高相比较而言大家更关注代码安全目前市面上各类APP基本都使用了ProGuard来保护代码的安全但对资源文件的保护力度都不大其实资源文件是存在比较大的安全隐患那资源会有哪些安全隐患呢下面我们通过一个比较简单的例子来说明下保护资源文件的重要性。 我们先用最常见的apktool工具来反编译一个应用来看看通过运行下面命令就能进行反编译 apktool d -s xxx.apk反编译成功后我们来看下反编译得到的文件结构见下图 通过上图中的目录结构我们可以看到这个应用的资源文件大概有anim、drawable、layout、menu、values等等我们可以通过修改这些文件夹下的资源文件并通过apktool进行回编译apktool b 命令就能创建一个经过修改过的APK应用例如我们修改下图中红色横线所标示的layout文件就能往原有APK的支付信息根据资源名称猜测这个layout的意图中添加一些我们自己的东西 这个问题主要是因为我们在开发过程中倡导命名的规范性一般都要求在命名时做到见名知意这样能够方便我们自己的理解和维护但同时这也方便了破解者破解者可以轻松的根据文件名称来猜测这个文件的意图和作用从而做破坏性的修改。 通过这个例子我们可以看出目前资源安全的重要性那如何做到资源安全呢安全都是相对的没有绝对的安全我们接下来要讨论的是类似Proguard方式的对我们的资源进行保护。我们主要是通过修改AAPT工具来对资源进行保护为了方便理解下面先讲一下Android应用是怎么查找资源的。 Android查找资源的流程 在Android系统中每一个应用程序一般都会配置很多资源用来适配不同密度、大小和方向的屏幕以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说给定一个相同的资源ID在不同的设备配置之下查找到的可能是不同的资源。 这个查找过程对应用程序来说是完全透明的这个过程主要是靠Android资源管理框架来完成的而Android资源管理框架实际是由AssetManager和Resources两个类来实现的。其中Resources类可以根据ID来查找资源而AssetManager类根据文件名来查找资源。事实上如果一个资源ID对应的是一个文件那么Resources类是先根据ID来找到资源文件名称然后再将该文件名称交给AssetManager类来打开对应的文件的。基本流程如下图 通过上图我们可以看到Resources是通过resources.arsc把Resource的ID转化成资源文件的名称然后交由AssetManager来加载的。 而Resources.arsc这个文件是存放在APK包中的他是由AAPT工具在打包过程中生成的他本身是一个资源的索引表里面维护者资源ID、Name、Path或者Value的对应关系AssetManager通过这个索引表就可以通过资源的ID找到这个资源对应的文件或者数据。 AAPT介绍 AAPT是Android Asset Packaging Tool的缩写它存放在SDK的tools/目录下AAPT的功能很强大可以通过它查看查看、创建、更新压缩文件(如 .zip文件.jar文件, .apk文件), 它也可以把资源编译为二进制文件并生成resources.arsc, AAPT这个工具在APK打包过程中起到了非常重要作用在打包过程中使用AAPT对APK中用到的资源进行打包这里不对AAPT这个工具做过多的讨论只看一下AAPT这个工具在打包过程中起到的作用下图是AAPT打包的流程 AAPT这个工具在打包过程中主要做了下列工作 1. 把”assets”和”res/raw”目录下的所有资源进行打包会根据不同的文件后缀选择压缩或不压缩而”res/“目录下的其他资源进行编译或者其他处理具体处理方式视文件后缀不同而不同例如”.xml”会编译成二进制文件”.png”文件会进行优化等等后才进行打包 2. 会对除了assets资源之外所有的资源赋予一个资源ID常量并且会生成一个资源索引表resources.arsc 3. 编译AndroidManifest.xml成二进制的XML文件 4. 把上面3个步骤中生成结果保存在一个*.ap_文件并把各个资源ID常量定义在一个R.java中 *.ap这个文件会在生成APK时放入APK包中, *.ap 这个文件本身是一个ZIP包他里面包含resources.arsc、AndroidManifest.xml、assets以及所有的资源文件下图是UNZIP后的截图 可以看出*.ap_这个文件中包含的内容这个文件存放在build/intermediates/res的目录下下图是这个文件存放的路径截图 资源保护 我们这里参考Proguard Obfuscator方式对APK中资源文件名使用简短无意义名称进行替换给破解者制造困难从而做到资源的相对安全通过上面分析我们可以看出通过修改AAPT在生成resources.arsc和*.ap_时把资源文件的名称进行替换从而保护资源。 通过阅读AAPT编译资源的代码我们发现修改AAPT在处理资源文件相关的源码是能够做到资源文件名的替换下面是Resource.cpp中makeFileResources()的修改的代码片段 static status_t makeFileResources(Bundle* bundle, const spAaptAssets assets,ResourceTable* table,const spResourceTypeSet set,const char* resType){String8 type8(resType);String16 type16(resType);bool hasErrors false;ResourceDirIterator it(set, String8(resType));ssize_t res;while ((resit.next()) NO_ERROR) {if (bundle-getVerbose()) {printf( (new resource id %s from %s)\n,it.getBaseName().string(), it.getFile()-getPrintableSource().string());}String16 baseName(it.getBaseName());const char16_t* str baseName.string();const char16_t* const end str baseName.size();while (str end) {if (!((*str a *str z)|| (*str 0 *str 9)|| *str _ || *str .)) {fprintf(stderr, %s: Invalid file name: must contain only [a-z0-9_.]\n,it.getPath().string());hasErrors true;}str;}String8 resPath it.getPath();resPath.convertToResPath();String8 obfuscationName;String8 obfuscationPath getObfuscationName(resPath, obfuscationName);table-addEntry(SourcePos(it.getPath(), 0), String16(assets-getPackage()),type16,baseName, // String16(obfuscationName),String16(obfuscationPath), // resPathNULL,it.getParams());assets-addResource(it.getLeafName(), obfuscationPath/*resPath*/, it.getFile(), type8);}return hasErrors ? UNKNOWN_ERROR : NO_ERROR;}上述代码是在ResourceTable和Assets中添加资源文件时 对资源文件名称进行修改这就能够做到资源文件名称的替换这样通过使用修改过的AAPT编译资源并进行打包我们再用上面讲到的apktool这个工具进行反编译下图是反编译后的截图 发现什么变化了吗在res目录下熟悉的layout、drawable、anim、menu等文件夹不见了那他们去哪了呢因为apktool工具把它们放到了unknown文件夹下了见下图 让我们来看一下unknown文件夹你会发现资源文件名已经被简短无意义名称进行替换了这样会给反编译者制造理解上的困难反编译者需要消耗一定的时间来搞清楚这些资源文件的作用资源混淆带来的另外一个好处是能明显减小APK的大小资源混淆既能保护资源文件的安全又能减小安装包的大小那我们何乐而不为呢 这样通过修改AAPT我们可以在代码零修改的基础下就能做到相对的资源安全当然安全是相对的没有绝对的安全。
http://www.zqtcl.cn/news/672362/

相关文章:

  • 物流网站html5模板网站整站开发
  • 网站随机代码网站开发技术试验教程
  • 做翻译 网站吗仿京东电商的网站开发报价
  • 霞山网站建设公司网站开发怎样手机号验证
  • 大型门户网站建设苏州优化网站建设
  • 网站步骤怎么搭建个人网站
  • 荥阳网站建设公司wordpress会员上限
  • 采购需求网站建设呼伦贝尔网站开发
  • 东莞网站建设方案服务极速网站建设定制价格
  • 网站建设费记账福州百度网络推广
  • 中国农村建设网站邵阳房产网
  • 做非法网站网站上海备案查询
  • 网站制作要学哪些北京信管局 网站备案
  • 百度新闻源网站有哪些wordpress怎么配置七牛cdn加速
  • 山东城乡住房建设厅网站wordpress 购物网站主题
  • 石家庄制作网站查网站流量查询工具
  • 信誉好的永州网站建设静态网站的短处
  • wordpress主题汉化软件河南网站优化哪家好
  • 关于水果的网站建设前端页面设计
  • 随州网站推广哪家好河南网站seo营销多少费用
  • 重庆网站优化排名软件方案谁能做网站开发
  • 河南官网网站建设报价app网站制作多少钱
  • 做网站页面一般用什么软件网站建设项目说明书
  • 做国外lead应该做什么网站网站运营报告
  • 建立一个自己的网站需要多少钱我的世界查找建筑网站
  • 广州网站建设互广做响应式网站设计图是多大的
  • 网站建设 运维 管理包括建大网站首页
  • 快手做任务网站python基础教程作者
  • 网站添加 百度商桥企信网查询
  • 用易语言可以做网站吗西安外贸网站开发