吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10464|回复: 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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#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, 2025-3-30 17:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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