Skip to content

Instantly share code, notes, and snippets.

View duangsuse's full-sized avatar
👨‍💻
Leaning at school

duangsuse duangsuse

👨‍💻
Leaning at school
View GitHub Profile

Keybase proof

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:

@duangsuse
duangsuse / main.cs
Created August 21, 2017 20:25
GUIDAuto low B Source Code
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) {
@duangsuse
duangsuse / supertux_music.sh
Created October 23, 2017 04:59
SuperTux Music Player
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
@duangsuse
duangsuse / splash.lst
Created November 15, 2017 18:32
TreeToolbox Splash config
https://file.bike/dl?k=14f755e88d05b70f
@duangsuse
duangsuse / books0.md
Created December 24, 2017 14:36
[Lsimple/Book

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

@duangsuse
duangsuse / AXMLEditor.md
Created April 12, 2018 03:45
AXMLEditor readme.md

AndroidManifest AXML 二进制文件原始修改器

此为 AXMLEditor 重构后的版本, 添加了 dump/build/plugin 指令, 修正了部分错误

用途

针对于特定 Android APK 反编译修改后无法执行回编译操作, 直接进行 AXML 二进制文件修改, 然后只需要二次签名即可. 无需完全进行反编译和回编译操作

关于 xmlpull 依赖

一、 简述

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 文件.

@duangsuse
duangsuse / Android_UI.txt
Created April 22, 2018 02:08
GeekApk Android UI
!!! 所有界面设计均使用伪代码展现,这个文档决定了 API设计 和 服务端应该保存的内容
!!! 版本:GeekMarket v0.1.0 'GingerBread'
GeekCode:类似这样的一种 Key-Value字符串 表示形式 \
'&' key '@' value '!&' \
一般用于插入在消息中,与插件系统和 Markdown 集成,动态生成内容。 \
语法上允许嵌套(虽然不常用),内层的 GeekCode 必须先完成替换。 \
例子:&em@doge/smile!& &geekapp@12!& &comment@12.2!& &user@1!&
GeekURL: 类似这样的一种 Key-Value字符串 表示形式 \
key ':' value \
@duangsuse
duangsuse / lite.ohm
Last active May 9, 2018 13:23
Lite ohm.js syntax definition
// 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
@duangsuse
duangsuse / lexer.flex
Created May 10, 2018 04:36
Lite Lexical Rules and Syntax
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright (C) 1998-2015 Gerwin Klein <lsf@jflex.de> *
* All rights reserved. *
* *
* License: BSD *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Java 1.2 language lexer specification */