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

会计公司网站模板网站建设平台对比

会计公司网站模板,网站建设平台对比,营销技巧心得体会,网站建设赚钱Rust-CLI实现自动反编译APK Rust提供了比较好的CLI接口,可以快速的编写命令行应用, 用于日常的工具类使用。 分享一个用Rust命令行实现自动反编译Android APK包工具,是之前学习Rust写的一个练手小工具,可以快速反编译APK,同时也学习下用Rust…

Rust-CLI实现自动反编译APK

  • Rust提供了比较好的CLI接口,可以快速的编写命令行应用, 用于日常的工具类使用。

  • 分享一个用Rust命令行实现自动反编译Android APK包工具,是之前学习Rust写的一个练手小工具,可以快速反编译APK,同时也学习下用Rust来写命令行工具的。

核心依赖库准备:

  •  反编译APK依赖的必要库:

d2j-dex2jar
jd-cli
Apktool

应用该库使用为最新版本,如果有不支持兼容的需要确认Java使用的相关版本即可,这些可以下载或者从工具源码里获取。

  •  Rust CLI 编写依赖的库:

clap 
console
execute 
indicatif
text2art 

这些库的使用方式和说明可在crates.io查到具体的使用,或者参见我工程里的源码使用方式。

核心代码解析:

  • 编写CLI处理接口:

    let matches = Command::new("Decompile APK").author("lg.json@gmail.com").version("1.0.0").about("ApkDecompiler for Android, create by Spark Coding BU").arg(Arg::new("file").action(ArgAction::Set).short('f').long("file").default_value("-").help("The path to your apk."),).after_help("Longer explanation to appear after the options when \displaying the help information from --help or -h",).get_matches();
  •  Command使用的是clap来创建, 通过Arg创建对应的参数和应用,可以创建读个arg进行添加。

  •  读取CLI的输入参数:

  let file_path = match matches.get_one::<String>("file") {Some(it) => it,_ => return,};let apk_path = PathBuf::from(file_path);
  • 开始执行:

    pub fn start_decompile(&self) -> Result<()> {self.show_tools_info()?;self.create_output_dir()?;self.start_dex2jar()?;self.start_decompile_class()?;self.start_decompile_res()?;self.open_output()?;\Ok(())}

开始执行会显示工具对应的信息,创建文件输出的地址,开始解析对应的包

  •  举例命令行的创建:

   ///use dex2jar get APK's jar in output_pathpub fn start_dex2jar(&self) -> Result<()> {let mut command = Command::new("sh");command.arg(self.exe_dir.join("lib/dex2jar/d2j-dex2jar.sh")).arg("-f").arg(&self.apk_path).arg("-o").arg(self.output_path.join("app.jar"));execute_state(command, "dex2jar");Ok(())}
  • 工程注意点:

1.使用build.rs在构建前需要把代码依赖的lib库拷到对应的target下,这里使用了构建脚本, 具体参见代码工程
2.如何使用cli的执行状态,来显示处理过程, 是CLI下常用的工具

使用方法:

  •  到软件路径下:./apkdecompiler -f ./test.apk  一个命令可以自动反编译出包。

  _____                      _        _____                                        _  _/ ____|                    | |      |  __ \                                      (_)| |
| (___   _ __    __ _  _ __ | | __   | |  | |  ___   ___   ___   _ __ ___   _ __   _ | |  ___  _ __\___ \ | '_ \  / _` || '__|| |/ /   | |  | | / _ \ / __| / _ \ | '_ ` _ \ | '_ \ | || | / _ \| '__|____) || |_) || (_| || |   |   <    | |__| ||  __/| (__ | (_) || | | | | || |_) || || ||  __/| |
|_____/ | .__/  \__,_||_|   |_|\_\   |_____/  \___| \___| \___/ |_| |_| |_|| .__/ |_||_| \___||_|| |                                                                | ||_|                                                                |_|
begin del old file...in /Users/developer/apkdecompiler/output
✅ create ouput:/Users/developer/apkdecompiler/output
✅ dex2jar...done
✅ decompile class...done
✅ decompile Resource...done

反编译后的相关代码和资源内容会自动打开对应的文件夹。分享这个工具仅供对练手rust,方便反编译Android APK包用户使用,任何商业行为均与软件和本人无关。

一些源码实现细节比如rust里文件路径操作、命令行状态实现等没有具体在文中呈现,可以通过源码进一步学习。

PS: 也欢迎大家评论和交流~ 更多文章也可关注微信公号:良技漫谈  ,如需源码回复Rust。

http://www.yayakq.cn/news/723446/

相关文章:

  • 上海滕州建设集团网站新乡做网站哪家便宜
  • 手机自适应网站建设建行网站会员有什么用
  • 如何修改网站备案号济南网站建设咨 询小七
  • 装修素材网站有哪些艺阳科技网站建设
  • 句容做网站网站建设项目需求分析流程图
  • 网网站建设公司企业汽车网站建设
  • 网站与服务器的关系广州网站制作怎样
  • 怎么做网站盗号做网站要了解哪些
  • 衡阳网站优化教程低代码小程序开发平台
  • 深圳外贸网站设计网页界面设计视觉空间的三维可视化
  • 昆明二级站seo整站优化排名html5公司网站欣赏
  • vs2017js网站开发方法重庆网站推广效果
  • 网站制作报价开电子商务网站建设的风险分析
  • 网站和网页不同吗宽屏网站欣赏
  • 网站建设印花税网页管理平台
  • 网站设计的优化欧模网
  • 微信小程序 连接网站wordpress4.9.4 模版修改
  • 怎样做网站个人简介做设计图的网站
  • 百度打网站名称就显示 如何做手机版怎么用百度快照
  • 菏泽定陶网页设计培训妇科医院网站优化服务商
  • 北辰做网站公司如何管理公司网站后台
  • 内蒙古自治区建设厅网站做微信广告网站有哪些内容
  • 电商平台定制开发公司江西短视频搜索seo哪家好
  • html5网站欣赏 国内网络规划设计师教程(第2版)
  • 做网站网站多久会被抓1核1g可以做几个网站
  • 单页网站利润贵州网站建设套餐
  • 建设企业网站官网u盾登录怎么制作网站教程电商
  • 恒辉建设集团网站淘宝刷单网站建设
  • 我想建个网站网站开发用主要软件
  • 学习电子商务网站建设与管理的感想工程建设指挥部网站