测试文件地址:https://www.lanzous.com/i5ot1yd

使用IDA1打开

打开之后,这个字符串和第一题的有些类似,拿去转换一下,Flag就得到了

CrackMeJustForFun

也可以对伪代码进行分析

 int __cdecl main(int argc, const char **argv, const char **envp)
{
signed int v3; // ebx
char v4; // al
int result; // eax
int v6; // [esp+0h] [ebp-70h]
int v7; // [esp+0h] [ebp-70h]
char v8; // [esp+12h] [ebp-5Eh]
char v9[]; // [esp+14h] [ebp-5Ch]
char v10; // [esp+28h] [ebp-48h]
__int16 v11; // [esp+48h] [ebp-28h]
char v12; // [esp+4Ah] [ebp-26h]
char v13; // [esp+4Ch] [ebp-24h] strcpy(&v13, "437261636b4d654a757374466f7246756e");
while ( )
{
memset(&v10, , 0x20u);
v11 = ;
v12 = ;
sub_40134B(aPleaseInputYou, v6);
scanf(aS, v9);
if ( strlen(v9) > 0x11 )
break;
v3 = ;
do
{
v4 = v9[v3];
if ( !v4 )
break;
sprintf(&v8, asc_408044, v4);
strcat(&v10, &v8);
++v3;
}
while ( v3 < );
if ( !strcmp(&v10, &v13) )
sub_40134B(aSuccess, v7);
else
sub_40134B(aWrong, v7);
}
sub_40134B(aWrong, v7);
result = stru_408090._cnt-- - ;
if ( stru_408090._cnt < )
return _filbuf(&stru_408090);
++stru_408090._ptr;
return result;
}

第36~39行代码是判断输入字符串和right serial是否匹配,通过第15行代码,我们知道v13就是right serial,将初始化v13的十六进制转换为字符串即可。

最新文章

  1. wParam和lParam两个参数到底是什么意思?
  2. js里cookie操作
  3. Sum All Odd Fibonacci Numbers
  4. SqlSever基础 union 与 union all的区别,即 重复项是否全部显示
  5. Git与Repo入门(转载)
  6. 2014 Multi-University Training Contest 4
  7. Android之Handler
  8. Hadoop集群(第2期)_机器信息分布表
  9. 高效的SQLSERVER分页查询(推荐)
  10. Android平台调用Web Service:演示样例
  11. Win10上编译CoreCLR的Windows和Linux版本
  12. 继承 in her it
  13. DOM获取元素的方法
  14. JavaScript:void(0)使用介绍
  15. Python 学习 第一篇:数据类型(数字,集合,布尔类型,操作符)
  16. [转帖]以Windows服务方式运行.NET Core程序
  17. numpy笔记
  18. 双足步行机器人的ZMP与CoP检测
  19. svn和git的优缺点
  20. SAM

热门文章

  1. thinkphp 响应对象response
  2. 二叉树的下一个结点(剑指offer_8)
  3. mybatisplus中使用SqlRunner出错
  4. Solr添加文档(XML)
  5. spash和selenium浅析
  6. C++ 拷贝构造函数与赋值函数的区别(很严谨和全面)
  7. php面试专题---MySQL分表
  8. save change is not permitted
  9. 安装依赖的时候,报错npm WARN checkPermissions
  10. day27—JavaScript实现定时器及其应用案例