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 akibat 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.
Komentar
Posting Komentar