android killer
android killer方便很多,反编译成smail和重新打包,可以不必敲什么命令。
对于log的打印也是极好的
invoke-static {v0}, Lcom/android/killer/Log;->LogStr(Ljava/lang/String;)V
丝袜秀的加密在
com/penquanyun/live/o中
# virtual methods
.method public a(Ljava/util/List;)Ljava/lang/String;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lorg/apache/http/NameValuePair;",
">;)",
"Ljava/lang/String;"
}
.end annotation
.prologue
.line 140
new-instance v0, Lcom/penquanyun/live/p;
invoke-direct {v0, p0}, Lcom/penquanyun/live/p;->(Lcom/penquanyun/live/o;)V
invoke-static {p1, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 147
new-instance v2, Ljava/lang/StringBuilder;
iget-object v0, p0, Lcom/penquanyun/live/o;->a:Lcom/penquanyun/live/n;
invoke-static {v0}, Lcom/penquanyun/live/n;->a(Lcom/penquanyun/live/n;)Lcom/penquanyun/live/n$a;
move-result-object v0
invoke-static {v0}, Lcom/penquanyun/live/n$a;->c(Lcom/penquanyun/live/n$a;)I
move-result v0
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
.line 148
const/4 v0, 0x0
move v1, v0
:goto_0
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-ge v1, v0, :cond_1
.line 150
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/apache/http/NameValuePair;
.line 151
if-lez v1, :cond_0
.line 153
const-string/jumbo v3, "&"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 155
:cond_0
invoke-interface {v0}, Lorg/apache/http/NameValuePair;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string/jumbo v4, "="
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface {v0}, Lorg/apache/http/NameValuePair;->getValue()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 148
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_0
.line 157
:cond_1
iget-object v0, p0, Lcom/penquanyun/live/o;->a:Lcom/penquanyun/live/n;
invoke-static {v0}, Lcom/penquanyun/live/n;->a(Lcom/penquanyun/live/n;)Lcom/penquanyun/live/n$a;
move-result-object v0
iget-object v0, v0, Lcom/penquanyun/live/n$a;->d:Ljava/lang/String;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 158
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
我们在这里加入这行代码,把要加密前拼接的字符串打印出来,一切就明了,
invoke-static {v0}, Lcom/android/killer/Log;->LogStr(Ljava/lang/String;)V
invoke-static {v0}, Lcom/penquanyun/lib/util/e;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
invoke-static {v0}, Lcom/android/killer/Log;->LogStr(Ljava/lang/String;)V
invoke-static {v0}, Lcom/penquanyun/lib/util/e;->a(Ljava/lang/String;)Ljava/lang/String;
android自带log包,不必自己去写,不知道多方便。
然后重新打包回去
Tag: AndroidKiller-string
Message: 1001a=gettypelist&appkey=siwa-live1&c=room&count=10&start=0&type=hotWE43@!YU89
1001为腾讯appid
WE43@!YU89在哪里,看代码还没有找到。经过混淆后的代码确实很难看,如果能直接打印看到log,方便了很多