update: antilvl 1.1.4 can handle amazon drm protection.
amazon has an app store now and they rolled their own drm. Anonymous was kind enough to post a link describing how to crack the protection: http://pastebin.com/cFddguZX
there may be a cleaner solution, and if you find one you are encouraged to share it. here's the code from the above link but syntax highlighted:
the file name will likely always be different with obfuscation. just search for strings like "LICENSE_FAILURE_CONTENT" or "APPLICATION_LICENSE" and perform the three modifications mentioned above.
i'll be adding this functionality to the next release of antilvl. it will also contain a few more bypasses for anti-cracking techniques i've seen, and some improvements in lvl fingerprinting.
amazon has an app store now and they rolled their own drm. Anonymous was kind enough to post a link describing how to crack the protection: http://pastebin.com/cFddguZX
there may be a cleaner solution, and if you find one you are encouraged to share it. here's the code from the above link but syntax highlighted:
# virtual methods
.method public final a()V
.registers 6
const-string v4, "LICENSE_FAILURE_CONTENT"
iget-object v0, p0, Lcom/amazon/android/aa/d;->b:Lcom/amazon/android/o/d;
const-string v1, "APPLICATION_LICENSE"
invoke-virtual {v0, v1}, Lcom/amazon/android/o/d;->b(Ljava/lang/String;)Z
move-result v0
# Comment out first jump
#if-eqz v0, :cond_14
sget-object v0, Lcom/amazon/android/aa/d;->a:Lcom/amazon/android/u/a;
const-string v1, "license verification succeeded"
invoke-virtual {v0, v1}, Lcom/amazon/android/u/a;->a(Ljava/lang/String;)V
:goto_13
return-void
:cond_14
invoke-virtual {p0}, Lcom/amazon/android/aa/d;->f()Z
move-result v0
# Comment out second jump
#if-eqz v0, :cond_1d
invoke-virtual {p0}, Lcom/amazon/android/aa/d;->g()V
:cond_1d
new-instance v1, Lcom/amazon/android/l/m;
iget-object v0, p0, Lcom/amazon/android/aa/d;->b:Lcom/amazon/android/o/d;
const-string v2, "LICENSE_FAILURE_CONTENT"
invoke-virtual {v0, v4}, Lcom/amazon/android/o/d;->a(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/amazon/android/l/d;
# Comment out third jump
#if-eqz v0, :cond_3d
iget-object v2, p0, Lcom/amazon/android/aa/d;->b:Lcom/amazon/android/o/d;
const-string v3, "LICENSE_FAILURE_CONTENT"
iget-object v2, v2, Lcom/amazon/android/o/d;->a:Lcom/amazon/android/o/b;
invoke-virtual {v2, v4}, Lcom/amazon/android/o/b;->c(Ljava/lang/String;)V
:goto_34
invoke-direct {v1, v0}, Lcom/amazon/android/l/m;->(Lcom/amazon/android/l/d;)V
iget-object v0, p0, Lcom/amazon/android/aa/d;->c:Lcom/amazon/android/l/f;
invoke-interface {v0, v1}, Lcom/amazon/android/l/f;->a(Lcom/amazon/android/l/a;)V
goto :goto_13
:cond_3d
sget-object v0, Lcom/amazon/android/aa/f;->e:Lcom/amazon/android/l/d;
goto :goto_34
.end method
the file name will likely always be different with obfuscation. just search for strings like "LICENSE_FAILURE_CONTENT" or "APPLICATION_LICENSE" and perform the three modifications mentioned above.
i'll be adding this functionality to the next release of antilvl. it will also contain a few more bypasses for anti-cracking techniques i've seen, and some improvements in lvl fingerprinting.
No comments:
Post a Comment