当前位置: 首页 > news >正文

php手机网站建设珠海教育局系统网站

php手机网站建设,珠海教育局系统网站,已有网站开发app,网站的原理第一步 查壳。该题为64位。 第二步 进入主函数,跟进dword_40F040,它应该与关键字符串有关 分析一下: 初始化和输入 sub_402230(argc, argv, envp); 这行可能是一个初始化函数,用于设置程序环境或处理命令行参数。具体功能不明&#xff0c…

第一步  查壳。该题为64位。

第二步  进入主函数,跟进dword_40F040,它应该与关键字符串有关

分析一下:

初始化和输入

  1. sub_402230(argc, argv, envp);
    • 这行可能是一个初始化函数,用于设置程序环境或处理命令行参数。具体功能不明,因为这取决于函数的实现。
  2. sub_40E640("Give me your code:\n");
    • 输出提示信息给用户,要求输入代码。
  3. sub_40E5F0("%s", Str);
    • 通过格式化字符串读取用户输入,并存储在变量 Str 中。

验证输入长度

  1. if (strlen(Str) != 33)
    • 检查输入字符串的长度是否为33个字符。如果不是,执行以下操作:
      • sub_40E640("Wrong!\n"); 输出错误信息。
      • system("pause"); 暂停程序执行,等待用户按键。
      • exit(0); 退出程序。
      • 所以告诉我们字符串长度必须是33,才能进行下面的操作。

数据处理

  1. 循环处理字符串
    • for (i = 0; i <= 32; ++i)
      • 对输入字符串的每个字符进行处理,循环33次(从0到32)。
      • byte_414040[i] = Str[dword_40F040[i]];
        • dword_40F040[i] 可能是一个包含索引的数组,用于从 Str 中选择字符。
        • 将选定的字符赋值给 byte_414040 数组的相应位置。
      • byte_414040[i] ^= LOBYTE(dword_40F040[i]);
        • 对字符进行异或操作,LOBYTE 取 dword_40F040[i] 的低字节部分。

验证处理结果

  1. for (j = 0; j <= 32; ++j)
    • 再次遍历处理后的数据,检查是否与某个预设的数组 byte_40F0E0 匹配。
    • if (byte_40F0E0[j] != byte_414040[j])
      • 如果不匹配,输出错误信息,暂停程序,并退出。

输出成功信息

  1. 成功验证后的输出
    • sub_40E640("Right!Good Job!\n"); 输出成功信息。
    • sub_40E640("Here is your flag: %s\n", Str); 输出用户原始输入作为“flag”。
    • system("pause"); 暂停程序,等待用户操作。

程序结束

  1. return 0. 程序正常结束。

第三步  跟进后,发现这两组数据,按shiift+E提取

选中其中任意一个数据按H键转换成以下数据

这后面那个dup(0)可以不用管。

第四步   编写脚本

分析一下脚本:

初始化数组

  1. dword_40F040  byte_40F0E0 数组
    • 这两个数组包含了一些十进制和十六进制的数值,看起来像是加密或混淆数据的关键部分。
  2. str 数组和 flag 字符串
    • str 初始化为长度为33的全零数组,用于存储中间结果。
    • flag 初始化为空字符串,用于存储最终的解密字符串。

数据处理

  1. 第一个循环:异或操作和重构 str 数组
    • for i in range(33):
      • 遍历 byte_40F0E0 数组。
      • byte_40F0E0[i] ^= dword_40F040[i]
        • 对 byte_40F0E0 和 dword_40F040 数组中相同位置的元素进行异或操作,结果仍存储在 byte_40F0E0 中。
        • 异或操作是一种常见的加密和解密技术,因为它是可逆的。
      • str[dword_40F040[i]] = byte_40F0E0[i]
        • 使用 dword_40F040 数组的值作为索引,将异或后的 byte_40F0E0 数组的值重新排序或重构到 str 数组中。
        • 这一步可能是将数据重新排列到正确的顺序,以便解码或显示。

输出结果

  1. 第二个循环:构建 flag 字符串
    • for i in range(33):
      • 遍历 str 数组。
      • flag += chr(str[i])
        • 将 str 数组中的每个整数转换为对应的ASCII字符并追加到 flag 字符串。
        • 这一步将整数数组转换为可读的字符串。

flag{Tr4nsp0sltiON_Clph3r_1s_3z}

http://www.yayakq.cn/news/254911/

相关文章:

  • 个人或主题网站建设实验报告免费生成app
  • 阿里云centos7做网站可拖拽编程网站开发
  • 个人做网站给手机发短信网站开发的工作内容
  • 香河住房和建设局网站pagespeed WordPress
  • php网站作业模版搜狗做网站怎么样
  • 太原规划网站免费域名空间哪个好
  • 华为网站建设招聘怎么挑选网站主机
  • 服务网站设计案例中国建筑网官网企业愿景
  • 装修广告做哪个网站最好看北京名片设计制作
  • seo研究中心网站建设及推广优化
  • 网站建设与维护结课论文标识标牌制作
  • 案例学 网页设计与网站建设定制网络开发项目
  • 如何做Google外贸网站东莞网站建设东莞
  • 西宁做网站君博专注医院网站建设利法拉网络
  • 网站优化方案模板wordpress 调用近期文章
  • 网站建设中的色彩搭配网站开发在线培训
  • 电商运营和网站运营对比在建设官网的公司做运营
  • 网站建设优酷crm系统免费
  • 济南百度整站seo推广公司关于网站设计公司的简介
  • 西安网站托管商家哪里网站建设专业
  • .net网站建设电子商务网上法庭
  • 同城信息商家的网站开发企业怎么样上各大网站做宣传
  • 闽侯做网站wordpress图插件
  • php网站建设思路方案wordpress添加广告位插件
  • 微网站开发合同php做的网站代码
  • 网站模板选择wordpress 框架选择
  • 珠海专业网站建设企业网站布局
  • 做网站找什么公司网站开发组件拖拽
  • 前端视频教程网站台州网站排名优化费用
  • 网站备案需要哪些东西wordpress的主机