吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 728|回复: 9
收起左侧

[求助] CTF ezre

[复制链接]
zishen 发表于 2023-12-27 22:11
image.png image.png
今天刷CTF题,根据这个逆向写出脚本,Str2不就是由v7转换而来的吗,为什么逆向的时候,v7 -= 32不用改成 += , +=不改成-=?
请大佬解惑!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

solly 发表于 2023-12-30 14:07
本帖最后由 solly 于 2023-12-30 14:34 编辑

前面看错了,就是前面有人説的字符转换功能,大小写互换,所以逆向时这个大小写转换也不用改动。
其实v2可以不要了:
[C++] 纯文本查看 复制代码
#include <iostream>
#include <string.h>

char s[] ="GONDPHyGjPEKruv{{pj]X@rF";
unsigned char byte_4420B0[]=
{
    0x0D,0x13,0x17,0x11,0x02,0x01,0x20,0x1D,0x0C,0x02,
    0x19,0x2F,0x17,0x2B,0x24,0x1F,0x1E,0x16,0x09,0x0F,
    0x15,0x27,0x13,0x26,0x0A,0x1E,0x1A,0x2D,0x0C,0x2F,
    0x22,0x04
};

int __cdecl sub_4013C0(int al)
{
    return (al - 72) ^ 0x55;
}

int main() {
    char v7[128] = "";
	for (int i = 0; i < strlen(s); i++) {
		v7[i] = sub_4013C0(s[i] ^ byte_4420B0[i]);
		if (v7[i] >= 97 && v7[i] <= 122) {
             v7[i] -= 32;
		} else if (v7[i] >= 65 && v7[i] <= 90) {
		    v7[i] += 32;
		}
    }
	std::cout << v7 << std::endl;
	return 0;
}
hsly177 发表于 2023-12-30 11:48
zishen 发表于 2023-12-28 12:45
我又debug了一下,-=32根本没用,只是把大写改小写而已

这里通过asii码和字符的转换进行了大小写字母变换。在写逆向函数的时候,不止运算式要相反(也就是-=变成+=),判定条件也要相应相反。加上对输入的预处理,所以两个if内的判断条件也交换了。

或者也可以这么理解,源程序是字母大小写交换,所以逆向程序也是把原始输出做大小写交换得到输入。
solly 发表于 2023-12-30 11:52
zishen 发表于 2023-12-28 12:45
我又debug了一下,-=32根本没用,只是把大写改小写而已

原题是小写转换大写,逆向是大写转小写,你那个 if  语句的条件要改呀,不然怎么会进去执行呢?
[C] 纯文本查看 复制代码
if(v7[i]>=65 && v7[i] <=90)
{
  v7[i] += 32;
  v2= 1;
}
头像被屏蔽
zhangjj001 发表于 2023-12-28 08:24
提示: 该帖被管理员或版主屏蔽
sixxx1 发表于 2023-12-28 10:19
因为+32之后,他就大于97了,所以逆向的时候它的逻辑其实是在-32这里。
说白了其实就是大小写字母在互相转换。
 楼主| zishen 发表于 2023-12-28 12:45
sixxx1 发表于 2023-12-28 10:19
因为+32之后,他就大于97了,所以逆向的时候它的逻辑其实是在-32这里。
说白了其实就是大小写字母在互相转 ...

我又debug了一下,-=32根本没用,只是把大写改小写而已
 楼主| zishen 发表于 2023-12-30 12:13
solly 发表于 2023-12-30 11:52
原题是小写转换大写,逆向是大写转小写,你那个 if  语句的条件要改呀,不然怎么会进去执行呢?
[mw_shl ...

flag全是大写字母,所以v2一直是0,可以一直进去
solly 发表于 2023-12-30 12:29
本帖最后由 solly 于 2023-12-30 12:31 编辑
zishen 发表于 2023-12-30 12:13
flag全是大写字母,所以v2一直是0,可以一直进去

sub_4013C0() 那里也要改。
 楼主| zishen 发表于 2023-12-30 13:28
solly 发表于 2023-12-30 12:29
sub_4013C0() 那里也要改。

为什么呀
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 20:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表