xuyuahui001 发表于 2017-11-22 09:19

Crack Me 希望有大大能给点思路。

nop掉了00014F3A 处的kill代码,可以过反调试。

但是找不到对应的JNI方法。。

应该怎么跟踪逻辑??

新手还有很多路要走啊。。




Azr_Max 发表于 2017-11-22 15:11

我一直潜水,总在观看中,不知道如何学起{:1_937:}

szweifj 发表于 2017-11-22 15:28

greywolf函数是在库文件中的吧?
求解!

爱飞的猫 发表于 2017-11-23 07:07

native 函数在动态链接库里(一般是 apk 里的 so 文件)
提取出来后一般用 IDA 来逆。

zhp981028 发表于 2017-11-23 19:38

谢谢分享

DreamMiu 发表于 2017-11-23 20:58


我一直潜水,总在观看中,不知道如何学起

大勺 发表于 2017-11-24 10:29

同感,不知如何下手. 学习中

Mrs.YMM 发表于 2019-1-9 20:04

牛逼了大佬

shuaiyue 发表于 2019-4-20 00:37

本帖最后由 shuaiyue 于 2019-4-20 00:39 编辑

这个有验证,反调式,隐藏的挺好。
给你个思路。BC函数开始分析吧,有个解密函数,还有比较,最终“hello5.1”
算法自己写看吧。
unsigned __int8 *__fastcall Decrypt(const char *s, const char *a2)
{
const char *v2; // r6
const char *v3; // r4
unsigned __int8 *v4; // r5
const unsigned __int8 *v5; // r8
size_t v6; // r0
unsigned __int8 *v7; // r7
size_t v8; // r6
int v9; // r0
int v11; //

v2 = s;                                       // 636D55B2AA8609CB
v3 = a2;                                    // 58A8631NaD
if ( !s )
    return 0;
v4 = 0;
if ( !(strlen(s) & 1) )                     // 30 & 1 == 0
{
    if ( v3 )
    {
      v5 = HexToByte(v2);                  
      v6 = strlen(v2);                        
      v7 = operator new[]((v6 >> 1) + 1);      
                                                
      v4 = 0;
      v11 = 0;
      v8 = strlen(v2);                        // 10
      v9 = strlen(v3);
      if ( RC4(v5, v8 >> 1, v3, v9, v7, &v11) ) // 关键函数
      {
      v7 = 0;
      v4 = v7;
      }
    }
}
return v4;                                    // 这里直接爆了解密后的明文
}

sergiojune 发表于 2019-4-20 20:12

nop是什么意思?新手刚开始学
页: [1] 2
查看完整版本: Crack Me 希望有大大能给点思路。