hudaozhong 发表于 2023-7-23 19:58

新人初学逆向,求大佬帮忙看看这个程序,给点思路或是提示

起因是我对逆向破解感兴趣,在论坛里学了一段时间,又想找个群学习,结果在加群的时候,群的入群条件:是分析这个程序,拿到进入群的答案
于是趁热打铁,刚好拿我这段时间的学习成果来检验下,果断立马下载文件(我不信还治不了你),我就先执行程序,界面如下

心中窃喜,感觉很简单,有提示字符串可以搜索,于是立马拖进OD,直接F9运行,随便输入几个数字,界面如下

接着就直接中文搜索,界面如下

出现的字符停留的位置,不墨迹,直接F2断点,再次运行,F8跟进,提示出现

还是随便输入几个字符,继续F8跟进,大跳转出现,继续F8,跳转后还是继续F8,之后走了几行指令,程序执行结束,界面如下


之后,我反复输入不同的数据,调试,结果还是一直走那个大跳转,调试期间,又仔细看了看堆栈以及寄存器,还有数据界面,看看是否会出现关键字符,但很遗憾,只看到了我输入的字符。尤其堆栈,除了能看到我输入的字符,没有其它可疑的字符出现。最终,我就采取最蠢的办法(大佬别笑话哈),从断点的地方开始F8或F7跟进,分析各个指令的意图,结果如下

红圈的地方,我就仔细分析了一下,发现输入的字符的个数必须16个(CMP ECX,0X10),于是我输入16个1,结果就不走那个大跳转了


分析到这以为有点眉目,结果往下各种F7/F8跟进跟出,NOP掉各个跳转指令,堆栈窗口分析,还是没有可疑字符出现


希望论坛里的各位大佬抽点您宝贵的时间帮我看看
给点思路或提示啥的,但千万不要直接给答案,我想看看我分析时哪里出问题了
感谢!


程序连接如下
https://wwa.lanzoui.com/inUQ5j2x5nc












situhaonan 发表于 2023-7-24 13:07

darksied 发表于 2023-7-31 08:54

先使用ida分析吧。主要验证流程都在这里了

int v3; // edx
unsigned int v4; // ecx
char *v5; // edi
char *v6; // esi
char v7; // al
int v8; // edx
const char *v9; // eax
char v10; // BYREF

memset(v10, 0, 0x104u);
sub_401020("请输入邀请码:");
v3 = sub_401060("%s", v10);
if ( v3 )
{
    v4 = strlen(v10);
    v3 = v4 == 16;
    if ( v4 == 16 )
    {
      v5 = &v10;
      v6 = &byte_44E9D5;
      do
      {
      if ( *(v5 - 1) == 53 )
      {
          LOBYTE(v4) = *v5;
          *v6 = sub_401200(v4, v3);
          v7 = 1;
      }
      else
      {
          *v6 = 0;
          v7 = 0;
      }
      *(v6 - 1) = v7;
      v5 += 2;
      v6 += 2;
      }
      while ( (int)v6 < (int)&unk_44E9E5 );
      v3 = sub_4010A0() == -661827796 && v8 == 1329810648;
    }
}
v9 = "输入错误\n";
if ( v3 )
    v9 = "输入正确\n";
sub_401020(v9);
exit(0);

hudaozhong 发表于 2023-7-23 20:01

第一次发这样的贴子,图顺序不知道咋乱了,不好意思,各位大佬

hudaozhong 发表于 2023-7-24 09:19

大佬们,帮我看看

hudaozhong 发表于 2023-7-26 15:26

situhaonan 发表于 2023-7-24 13:07


大佬,你是如何找到的啊,给点思路呗

hudaozhong 发表于 2023-7-26 15:26

situhaonan 发表于 2023-7-24 13:07


大佬咋找到的,给点思路呗

mihutu 发表于 2023-7-26 15:30

这个软件都打不开,是什么情况,新手一枚

hudaozhong 发表于 2023-7-26 19:34

mihutu 发表于 2023-7-26 15:30
这个软件都打不开,是什么情况,新手一枚

无法运行?win10系统应该可以的

hudaozhong 发表于 2023-8-15 12:37

darksied 发表于 2023-7-31 08:54
先使用ida分析吧。主要验证流程都在这里了

int v3; // edx


如果硬要OD分析呢,这个验证该咋找
页: [1] 2
查看完整版本: 新人初学逆向,求大佬帮忙看看这个程序,给点思路或是提示