2023逆向分析代码渗透测试flag0072解析(超详细)

一、竞赛时间
180分钟 共计3小时

1.从靶机服务器的FTP上下载flag0072,分析该文件,请提交代码保护技术的类型。提交格式:XXXX。
2.提交被保护的代码所在地址。提交格式: 0xXXXX。
3.提交代码解密的密钥。提交格式: 0xXX。
4.请提交输入正确flag时的输出。提交格式: XXXX。
5.提交flag的值。提交格式:XXXX。

三、竞赛任务书内容
(一)拓扑图

在这里插入图片描述

1.从靶机服务器的FTP上下载flag0072,分析该文件,请提交代码保护技术的类型。提交格式:XXXX。

FLAG:SMC

2.提交被保护的代码所在地址。提交格式: 0xXXXX。

在这里插入图片描述

FLAG:0x401500

3.提交代码解密的密钥。提交格式: 0xXX。

FLAG:0xAA

4.请提交输入正确flag时的输出。提交格式: XXXX。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
逆向建立单链表的代码解析逆向建立单链表是指从链表的尾部开始逐个添加节点,最终形成一个完整的链表。下面是一个简单的 C 语言代码示例: ``` #include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; void addNode(struct Node** head_ref, int new_data) { struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } void printList(struct Node* node) { while (node != NULL) { printf("%d ", node->data); node = node->next; } } int main() { struct Node* head = NULL; addNode(&head, 1); addNode(&head, 2); addNode(&head, 3); printf("Reversed Linked list: "); printList(head); return 0; } ``` 在这个代码中,我们定义了一个结构体 `Node`,其中包含了一个整数类型的数据 `data` 和一个指向下一个节点的指针 `next`。我们还定义了两个函数 `addNode` 和 `printList`,分别用于添加节点和打印链表。 在 `addNode` 函数中,我们首先使用 `malloc` 函数动态分配了一个新的节点,并将新节点的 `data` 设置为传入的参数 `new_data`。然后,我们将新节点的 `next` 指针指向当前链表的头节点,最后将新节点设置为新的头节点。 在 `printList` 函数中,我们使用一个循环遍历整个链表,并打印每个节点的 `data` 。 在 `main` 函数中,我们首先定义了一个空的头节点 `head`,然后依次调用 `addNode` 函数添加三个节点,最后调用 `printList` 函数打印整个链表。 运行这个程序,我们可以得到如下输出: ``` Reversed Linked list: 3 2 1 ``` 这个输出表示我们成功地逆向建立了一个包含三个节点的单链表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落寞的魚丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值