crackme

工具脱壳后查看反编译代码

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int result; // eax
  int v4; // eax
  char Buffer; // [esp+4h] [ebp-38h] BYREF
  char v6[49]; // [esp+5h] [ebp-37h] BYREF

  Buffer = 0;
  memset(v6, 0, sizeof(v6));
  printf("Please Input Flag:");
  gets_s(&Buffer, 0x2Cu);
  if ( strlen(&Buffer) == 42 )
  {
    v4 = 0;
    while ( (*(&Buffer + v4) ^ byte_402130[v4 % 16]) == dword_402150[v4] )
    {
      if ( ++v4 >= 42 )
      {
        printf("right!\n");
        goto LABEL_8;
      }
    }
    printf("error!\n");
LABEL_8:
    result = 0;
  }
  else
  {
    printf("error!\n");
    result = -1;
  }
  return result;
}

Exp

byte_402130 = 'this_is_not_flag'
dword_402150 = [0x12, 0x04, 0x08, 0x14, 0x24, 0x5C, 0x4A,
                0x3D, 0x56, 0x0A, 0x10, 0x67, 0x00, 0x41,
                0x00, 0x01, 0x46, 0x5A, 0x44, 0x42, 0x6E,
                0x0C, 0x44, 0x72, 0x0C, 0x0D, 0x40, 0x3E,
                0x4B, 0x5F, 0x02, 0x01, 0x4C, 0x5E, 0x5B,
                0x17, 0x6E, 0x0C, 0x16, 0x68, 0x5B, 0x12,
                0x48, 0x0E]
flag = ''
for i in range(42):
    flag += chr(ord(byte_402130[i % 16]) ^ dword_402150[i])
print(flag)

输出:flag{59b8ed8f-af22-11e7-bb4a-3cf862d1ee75}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 [安全攻防进阶篇] 中,有关于逆向分析的教程可以帮助你了解如何使用OllyDbg逆向CrackMe程序。 OllyDbg是一种常用的逆向工具,可以用于分析和修改程序的执行流程和内存。使用内存断点和普通断点,可以在程序执行过程中捕获关键的代码位置,帮助我们找到CrackMe程序的OEP(Original Entry Point),即程序的入口点。 在 [安全攻防进阶篇] 中还有关于逆向分析两个CrackMe程序的详细教程,包括逆向分析和源码还原的步骤。这些教程将帮助你理解逆向分析的基本概念和技巧,提升你的安全能力。 如果你想深入学习如何使用OllyDbg逆向CrackMe程序,可以参考这些教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断](https://blog.csdn.net/Eastmount/article/details/107777190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [逆向crackme之ESp定律脱壳](https://blog.csdn.net/qq_58970968/article/details/125357834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值