cracking amazon drm

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:
# 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