I hereby claim:
- I am pigfromchina on github.
- I am duangsuse (https://keybase.io/duangsuse) on keybase.
- I have a public key whose fingerprint is 5F58 2CEE 0DF2 67EE 5179 AC59 4224 ED34 5D4D 4922
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
using System; | |
using static System.IO.File; | |
using System.Text.RegularExpressions; | |
namespace guid_auto { | |
class MainClass { | |
const string DB_FILENAME = "database.xml"; | |
const string REPLACE_TEXT = "{}"; | |
public static void Main(string[] args) { | |
if (args.Length >= 1) { |
for m in `ls|grep .music`;do | |
file_name=`grep -e '".*ogg' -h -o $m|cut -d '"' -f2` | |
loop_start=`grep -e "loop-begin *" -h $m|awk -F"[ ]" '{print $4}'|cut -d ')' -f 1` | |
loop_end=`grep -e "loop-at *" -h $m|cut -c 12-|cut -d ")" -f1` | |
printf "\033[32mPlaying SuperTux music \033[36m$file_name\033[0m:\033[0m";echo | |
printf "\033[34m[*] \033[0m";printf "\033[31mLoop starts at \033[33m$loop_start\\033[0m, ends at \033[35m$loop_end\033[0m \033[0m";echo | |
mpv $file_name --ab-loop-a $loop_start --ab-loop-b $loop_end;sleep 0.1 | |
done;unset file_name loop_start loop_end |
https://file.bike/dl?k=14f755e88d05b70f |
72.80 PHP7内核剖析 amazon.cn/gp/product/B077446PFD 33.80 算法图解 amazon.cn/gp/product/B06XKCV7X9 42.25 The Little Schemer:递归与函数式的奥妙 amazon.cn/gp/product/B073FD5ZRF 39.30 Lua设计与实现 amazon.cn/gp/product/B07557RYBD 78.20 深入分析GCC amazon.cn/gp/product/B06XCPZFKD 48.75 LLVM Cookbook中文版 amazon.cn/gp/product/B01H0LP902 54.50 深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) amazon.cn/gp/product/B00D2ID4PK 80.40 ES6标准入门(第3版) amazon.cn/gp/product/B0755547ZZ 59.58 Ruby元编程(第2版) amazon.cn/gp/product/B013QMKP80 86.50 CLR via C#(第4版) amazon.cn/gp/product/B00P8VZ8T4
此为 AXMLEditor 重构后的版本, 添加了 dump/build/plugin
指令, 修正了部分错误
针对于特定 Android APK 反编译修改后无法执行回编译操作, 直接进行 AXML 二进制文件修改, 然后只需要二次签名即可. 无需完全进行反编译和回编译操作
AXML 即 Android Binary XML, 是 Android 应用程序 APK 包中保存 xml 文件数据的一种方式, 可以减小 xml 文件的大小.
本文章与我的另一篇文章手把手教你解析 resources.arsc 是相关联的, resources.arsc 文件是 apk 的资源索引文件, 而 xml 文件是 apk 的资源文件, resources.arsc 保存了 xml 中需要用到的资源的索引, 它们之间有非常强的依赖关系, apk在执行的时候缺一不可.
另外大家在用 AXMLPrinter 去解码 AXML 文件时会看见输出中有很多属性的值都是一串数字, 很难明白是什么意思, 实际上这串数字就是资源的索引 id 值, 需要用这个 id 去 resources.arsc 中查找才能得到具体的字符串, 知道这个属性的值是 @string/XXXX 或者 @drawable/XXXX 等等.
在上面的文章中我介绍了 resources.arsc 文件的解析方式, 本文我来介绍怎样来解析 AXML 文件.
!!! 所有界面设计均使用伪代码展现,这个文档决定了 API设计 和 服务端应该保存的内容 | |
!!! 版本:GeekMarket v0.1.0 'GingerBread' | |
GeekCode:类似这样的一种 Key-Value字符串 表示形式 \ | |
'&' key '@' value '!&' \ | |
一般用于插入在消息中,与插件系统和 Markdown 集成,动态生成内容。 \ | |
语法上允许嵌套(虽然不常用),内层的 GeekCode 必须先完成替换。 \ | |
例子:&em@doge/smile!& &geekapp@12!& &[email protected]!& &user@1!& | |
GeekURL: 类似这样的一种 Key-Value字符串 表示形式 \ | |
key ':' value \ |
// Complete Lite Desugared Syntax (Ohm PEG) | |
// Lite parser by duangsuse, no rights reserved (lexical rules see https://ohmlang.github.io/editor) | |
Lite { | |
// The JavaScript lexical rules | |
// §A.1 Lexical Grammar -- https://es5.github.io/#A.1 | |
Program = CompStmt | |
sourceCharacter = any |
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | |
* Copyright (C) 1998-2015 Gerwin Klein <[email protected]> * | |
* All rights reserved. * | |
* * | |
* License: BSD * | |
* * | |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | |
/* Java 1.2 language lexer specification */ |