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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9596|回复: 30
收起左侧

[Android KeyGenMe] 新出炉的入门级crackMe

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

新出炉的~~
要求写出算法

只能上传1M,我用ZIP分割了。
下载后请修改下和上面图片一样的扩展名,压缩即可。     

本帖子中包含更多资源

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

x

免费评分

参与人数 5吾爱币 +9 热心值 +5 收起 理由
15344628004 + 1 热心回复!
zkurama + 1 + 1 热心回复!
CrazyNut + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xbxbxbxb + 1 + 1 热心回复!
drw888 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

mergerly 发表于 2019-6-12 20:26
n函数比较简单,看源码就知道了,不用改直接调用,后面是字符串转数字后异或0x1256,把它逆写一下,源码如下:
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>

int __cdecl n(char *a1)
{
    int v2;  // [esp+4h] [ebp-14h]
    char v3; // [esp+Fh] [ebp-9h]
    int v4;  // [esp+10h] [ebp-8h]
    int i;   // [esp+14h] [ebp-4h]

    v4 = 0;
    for (i = 0; a1[i]; ++i)
    {
        v3 = a1[i];
        if (v3 < 65)
            break;
        if (v3 <= 90)
            v2 = v3;
        else
            v2 = v3 - 32;
        v4 += v2;
    }
    return v4 ^ 0x9988;
}

int __cdecl keygen(char *v4)
{
    int v6 = n(v4);
    int v7 = v6 ^ 0x1256;
    char code[256] = {0};
    int v2 = v7;
    int i;
    for (i = 0; v2 > 10; ++i)
    {
        code[i] = v2 % 10 + 48;
        v2 = v2 / 10;
    }
    code[i] = v2 + 48;
    printf("keygen:%s", code);
    return 0;
}

int main()
{
    char user[256] = {0};
    printf("please input name:");
    scanf("%s", user);    
    keygen(user);
    return 0;
}
weikun444 发表于 2019-5-15 07:58
本帖最后由 weikun444 于 2019-5-15 09:00 编辑

小白表示只能到这里了。



__int64 __fastcall Java_com_cm_shuair_crackme1_MainActivity_stringFromJNI(_JNIEnv *a1, __int64 a2, __int64 a3, __int64 a4)
{
  __int64 v4; // ST28_8
  char *v5; // ST20_8
  char *v6; // ST18_8
  int v7; // ST14_4
  _JNIEnv *v9; // [xsp+40h] [xbp-10h]
  __int64 v10; // [xsp+48h] [xbp-8h]

  v9 = a1;
  v4 = a4;
  v5 = (char *)Jstring2CStr(a1, a3);
  v6 = (char *)Jstring2CStr(v9, v4);
  v7 = n(v5);
  if ( v7 == (unsigned int)c(v6) )
    v10 = _JNIEnv::NewStringUTF(v9, (const char *)&unk_1193);
  else
    v10 = _JNIEnv::NewStringUTF(v9, (const char *)&unk_11CA);
  return v10;
}




__int64 __fastcall _JNIEnv::NewStringUTF(_JNIEnv *this, const char *a2)
{
  return (*(__int64 (**)(void))(*(_QWORD *)this + 1336LL))();
}

本帖子中包含更多资源

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

x
608岁的老头 发表于 2019-5-15 08:17
楼主,说好的入门级的呢,为什么搜不到注册失败?
随风伴你 发表于 2019-5-15 08:22
好好。。。
608岁的老头 发表于 2019-5-15 08:33
看来楼主把关键的代码用jni规避掉了
608岁的老头 发表于 2019-5-15 08:37
608岁的老头 发表于 2019-5-15 08:33
看来楼主把关键的代码用jni规避掉了

楼主,是不是要对so文件动手?
Missciter 发表于 2019-5-15 10:39
感谢分享
zhengkai6711 发表于 2019-5-15 13:38
以后学习都得知道他过程特征。就像易语言,知道过程如何调用,才厉害。破解过程能够还原软件写的过程,或者各种调用,这才是大神吧
Y:2 发表于 2019-5-15 15:37
鼓励发帖!鼓励发帖!鼓励发帖!
sdbzjqr 发表于 2019-5-15 17:30
按钮点击事件,关键在stringFromJNI

stringFromJNI函数内容,关键在n(v4)、c(v5)

n(v4)函数内容

c(v5)函数内容

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-18 11:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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