1. #1
    Reverse Engineer
    Staff
    SyrenRemix's Avatar
    Join Date
    Oct 2020
    Posts
    200
    Threads
    62
    Reputation

    3012

    Developer Assistant Permanent License

    Alright men/ladies welcome back to another tutorial ib this tutorial you'll learn how to modify Developer Assistant that's used to modify apps on your devices.. You'll be learning how to make it "Permanent Commercial Licence"..
    So I'll be using just MT Manager So extract 'Developer Assistant' now goto & View & open classes.dex head over to search "Permanent"

    search results (2) - "permanent"

    Code: 
    com.jw.devassist.domain.license
    
    C
    const-string v4, "Permanent"
    
    Validity
    const-string v2, "Permanent"
    Code: 
     method static constructor <clinit>()V
        .registers 10
    
        .line 1
        new-instance v0, Lcom/jw/devassist/domain/license/c;
    
        sget-object v1, Lcom/jw/devassist/domain/license/b;->d:Lcom/jw/devassist/domain/license/b;
    
        sget-object v2, Lcom/jw/devassist/domain/license/Validity;->Permanent:Lcom/jw/devassist/domain/license/Validity;
    
        const/4 v3, 0x0
    
        const-string v4, "Permanent"
    
        invoke-direct {v0, v4, v3, v1, v2}, Lcom/jw/devassist/domain/license/c;-><init>(Ljava/lang/String;ILcom/jw/devassist/domain/license/b;Lcom/jw/devassist/domain/license/Validity;)V
    
        sput-object v0, Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c
    Goto the navigation icon & copy field signature then find usage


    This should be what you copied
    Code: 
    Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c;


    Code: 
     sget-object v0, Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c;
    
        const/4 v1, 0x0
    
        invoke-direct {p0, v0, v2, v2, v1}, Lcom/jw/devassist/domain/license/l;-><init>
    Now Replace .Line 2 & .Line 7 & paste in the field signature

    Code: 
    .method public constructor <init>(Lcom/jw/devassist/domain/license/c;)V
        .registers 2
    
        .line 1
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        .line 2
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->a:Lcom/jw/devassist/domain/license/c;
    
        const/4 p1, 0x0
    
        .line 3
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->b:Ljava/util/Date;
    
        .line 4
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->c:Ljava/lang/Integer;
    
        const/4 p1, 0x0
    
        .line 5
        iput-boolean p1, p0, Lcom/jw/devassist/domain/license/l;->d:Z
    
        return-void
    .end method
    
    .method public constructor <init>(Lcom/jw/devassist/domain/license/c;Ljava/util/Date;Ljava/lang/Integer;Z)V
        .registers 5
    
        .line 6
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        .line 7
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->a:Lcom/jw/devassist/domain/license/c;
    
        .line 8
        iput-object p2, p0, Lcom/jw/devassist/domain/license/l;->b:Ljava/util/Date;
    
        .line 9
        iput-object p3, p0, Lcom/jw/devassist/domain/license/l;->c:Ljava/lang/Integer;
    
        .line 10
        iput-boolean p4, p0, Lcom/jw/devassist/domain/license/l;->d:Z
    
        return-void
    .end method
    Code: 
    sget-object p1, Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c;
    Should Look Like This

    Code: 
    .method public constructor <init>(Lcom/jw/devassist/domain/license/c;)V
        .registers 2
    
        .line 1
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        sget-object p1, Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c;
     
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->a:Lcom/jw/devassist/domain/license/c;
    
        const/4 p1, 0x0
    
        .line 3
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->b:Ljava/util/Date;
    
        .line 4
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->c:Ljava/lang/Integer;
    
        const/4 p1, 0x0
    
        .line 5
        iput-boolean p1, p0, Lcom/jw/devassist/domain/license/l;->d:Z
    
        return-void
    .end method
    
    .method public constructor <init>(Lcom/jw/devassist/domain/license/c;Ljava/util/Date;Ljava/lang/Integer;Z)V
        .registers 5
    
        .line 6
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        sget-object p1, Lcom/jw/devassist/domain/license/c;->f:Lcom/jw/devassist/domain/license/c;
    
        iput-object p1, p0, Lcom/jw/devassist/domain/license/l;->a:Lcom/jw/devassist/domain/license/c;
    
        .line 8
        iput-object p2, p0, Lcom/jw/devassist/domain/license/l;->b:Ljava/util/Date;
    
        .line 9
        iput-object p3, p0, Lcom/jw/devassist/domain/license/l;->c:Ljava/lang/Integer;
    
        .line 10
        iput-boolean p4, p0, Lcom/jw/devassist/domain/license/l;->d:Z
    
        return-void
    .end method
    Now just save & exit you're work like so


    When you install you work you'll notice the chances instantly "Permanent Commercial Licence".

    You need to enter & or goto
    The red highlight is edited & I've added sget-object

    If you can't understand it here is a video showing you


    The Before and After


    Right you're all done take care now...!!
    Last edited by SyrenRemix; May 18th, 2021 at 11:03 PM.