吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11059|回复: 12
收起左侧

[Android KeyGenMe] [转]一个有意思的Crackme

[复制链接]
qtfreet00 发表于 2016-11-11 11:28
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

转的看雪F8的cm,大家玩玩那吧



记得解压一下

作者源码地址:IDA,">https://github.com/F8LEFT/AndroidAntiDebugger

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
吾要开始学习ing + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2018-2-11 19:46
.class Lf8left/cm2/MainActivity$1;
.super Ljava/lang/Object;
.source "MainActivity.java"

# interfaces
.implements Landroid/view/View$OnClickListener;


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lf8left/cm2/MainActivity;->onCreate(Landroid/os/Bundle;)V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation


# instance fields
.field final synthetic this$0:Lf8left/cm2/MainActivity;


# direct methods
.method constructor <init>(Lf8left/cm2/MainActivity;)V
    .locals 0
    .param p1, "this$0"    # Lf8left/cm2/MainActivity;

    .prologue
    .line 24
    iput-object p1, p0, Lf8left/cm2/MainActivity$1;->this$0:Lf8left/cm2/MainActivity;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public onClick(Landroid/view/View;)V
    .locals 5
    .param p1, "v"    # Landroid/view/View;

    .prologue
    const/4 v4, 0x0

    .line 27
    iget-object v1, p0, Lf8left/cm2/MainActivity$1;->this$0:Lf8left/cm2/MainActivity;

    iget-object v1, v1, Lf8left/cm2/MainActivity;->mEdit:Landroid/widget/EditText;

    invoke-virtual {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    .line 28
    .local v0, "flag":Ljava/lang/String;
    iget-object v1, p0, Lf8left/cm2/MainActivity$1;->this$0:Lf8left/cm2/MainActivity;

    invoke-static {v1, v0}, Lf8left/cm2/MainActivity;->access$000(Lf8left/cm2/MainActivity;Ljava/lang/String;)Z

    move-result v1

  

    .line 29
    iget-object v1, p0, Lf8left/cm2/MainActivity$1;->this$0:Lf8left/cm2/MainActivity;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "great:flag{"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, "}"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v1, v2, v4}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v1

    .line 30
    invoke-virtual {v1}, Landroid/widget/Toast;->show()V

    .line 35
    :goto_0
    return-void

    .line 32
    :cond_0
    iget-object v1, p0, Lf8left/cm2/MainActivity$1;->this$0:Lf8left/cm2/MainActivity;

    const-string v2, "Error, try again"

    invoke-static {v1, v2, v4}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v1

    .line 33
    invoke-virtual {v1}, Landroid/widget/Toast;->show()V

    goto :goto_0
.end method
bxypkbpv77y 发表于 2016-11-28 08:23
算法很简单。关键是sflag的值是动态修改的,用IDA静态看到的值解不了码。
    char keys[17] = {30, 29, 18, 0, 1, 18, 51, 11, 37, 120, 38, 17, 64, 79, 74, 82, 0};
    for (int i = 0; i < 16; i++)
    {
        keys[i] ^= sflag[i];
    }
牵走天涯 发表于 2016-11-11 16:47
我下了,简单看了下,模拟器安装失败,然后AK反编译出问题。就一直忙,没时间去看
舞忧姬 发表于 2016-11-11 19:14
这是干嘛用的啊
yege0201 发表于 2016-11-18 16:22
这个Crackme确实像作者说的一样,难度不高。如果不会动态调试,其实纯IDA Pro静态分析也可以找到最后的Flag。
ai枫 发表于 2016-11-21 15:27
后四位中16  , 25 ,  6 对应的是什么呢
xuqi 发表于 2016-12-11 18:18
bxypkbpv77y 发表于 2016-11-28 08:23
算法很简单。关键是sflag的值是动态修改的,用IDA静态看到的值解不了码。
    char keys[17] = {30, 29, 1 ...

那应该怎么做呢,我分析到异或那一步,但是异或之后的结果不知道,不知道该怎么还原回去啊
睡了全世界 发表于 2017-2-16 10:17
反编译之后,没看到想要的,感觉无从下手,果然学习的还是太少太少啊,希望后期大神赐教,谢谢楼主分享
worldmaomao 发表于 2017-9-1 17:12
看了源码,这个crackme使用了双进程守护技术。对于我这个小白,有难度。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-28 20:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表