逆向flag0073详解


1. 从靶机服务器的FTP上下载flag0073,分析该文件,请提交正确flag的长度。提交格式:XXXX。

进到main函数
在这里插入图片描述
可以看到输入不等于38个,就会跳转到wrong flag,所以正确flag的长度为38个

2. 提交程序所使用的算法的名称。提交格式: 0xXXXX。

md5,第五题有讲怎么知道是md5

3. 提交flag正确时的输出。提交格式: 0xXX。

shift+f12可以看到well done!
在这里插入图片描述

4. 请用程序所使用的算法计算112233的值,并提交其结果。提交格式: XXXX。

用md5sum计算112233的值即可

5. 提交flag的值。提交格式:XXXX。

在主函数里sub_40182f函数对sub_401864进行了加密操作,长度为0x1061也就是4193
在这里插入图片描述
密钥为0x11
在这里插入图片描述
可以通过idc脚本进行解密
在这里插入图片描述
解密后我们可以看到多了一段汇编语言
在这里插入图片描述
我们可以看到汇编语言当中,还call了一次sub_40182f函数来进行解密,而参数是word_40157A的地址以及0x2B5的长度
所以我们解密完第一个函数后,先在函数入口用U转换为数据段,然后再用C转换为汇编,要注意i下面还有一大串的数据段也要用C来转换成汇编代码,然后再在入口按P定义为函数
在这里插入图片描述
sub401864函数解密成功,但此时我们并不能反编译40157A我们之前看到汇编里还call了一次解密函数来对word_40157A进行解密,所以我们再次使用IDC脚本以0x40157A作为地址,然后进行解密
在这里插入图片描述
再通过上述 同样的操作转换为函数后就可以进行正常反编译了,点进sub40157A函数,可以看到开头就有四个值

在这里插入图片描述
这个就是md5算法的特征,所以第三题是md5
而我们看到代码上面有一大串的md5值,众所周知,md5不可逆,只能通过碰撞来解密,那我们在省赛kali下该怎么解这个东西呢?答案是用python3 的hashlib模块加密一个flag的可能组成列表来与里面的md5的值进行碰撞,我们可以将小写a-z和大写a-z以及花括号和0123456789都写进一个字符串里,然后将字符串用hashlib来进行md5加密,加密后再与程序里的md5值一一碰撞。
在这里插入图片描述
写出脚本进行解密,hashlist即程序里的那一大串md5值,而list即为我们a-z A-Z 0-9 {} _组成的hash列表,通过两边的值来进行碰撞,确定这些md5原本的值即可,运行脚本即可得到flag

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis逆向工程是指通过数据库表结构自动生成Java代码的工具。配置文件是MyBatis逆向工程的重要组成部分,下面是对其进行详细解释。 在逆向工程配置文件中,首先需要配置数据库连接信息。包括数据库的URL、用户名、密码等,这些信息用于建立与数据库的连接,保证能够正常读取到数据库的表结构。 接着需要配置逆向工程生成的文件保存的目标路径。可以指定生成的Java文件、Mapper接口和Mapper.xml文件的保存路径。这样生成的文件就会按照配置的路径保存到指定的目录下。 配置生成的实体类的包名和类名前缀,可以通过这些配置项来自定义生成的实体类的命名规则。例如可以指定包名为com.example.entity,类名前缀为"Sys",那么生成的实体类就会以"Sys"开头,如"SysUser"。 配置生成的Mapper接口的包名和后缀名,可以通过这些配置项来自定义生成的Mapper接口的命名规则。例如可以指定包名为com.example.mapper,后缀名为"Dao",那么生成的Mapper接口就会以"Dao"结尾,如"UserDao"。 配置生成的Mapper.xml文件的包名和后缀名,可以通过这些配置项来自定义生成的Mapper.xml文件的命名规则。例如可以指定包名为com.example.mapper,后缀名为"Mapper",那么生成的Mapper.xml文件就会以"Mapper"结尾,如"UserMapper"。 此外,还可以在配置文件中添加特定的Table标签来过滤要生成的表,只生成需要的部分表的代码。 通过以上配置,我们可以轻松地使用MyBatis逆向工程自动生成与数据库表结构对应的Java代码,极大地提高了开发效率。当数据库表结构发生变化时,只需重新运行逆向工程,就可以自动更新生成的代码,避免手动修改带来的错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值