buuoj re逆向前32题writeup(截图+c++源码+过程)

本文详细介绍了多个逆向工程和加密解密的实例,包括简单的异或、凯撒密码、RSA算法、Base64编码、Python反编译、注册器解密等。通过实际代码展示了如何分析和解密各种加密算法,涉及脱壳、字节码操作、字符串解码等技术。

萌新第一次写这玩意,如有错误,请多指教。

RE

1 easyre

1、easyre 明码在这里插入图片描述

2 Reverse1

2、Reverse1明码在这里插入图片描述
在这里插入图片描述

3 Reverse2

3、Reverse2 几乎明码在这里插入图片描述

在这里插入图片描述

4 内涵的软件

4、内涵的软件 明码在这里插入图片描述

5 新年快乐

5、新年快乐 有壳先脱壳,之后是明码在这里插入图片描述
在这里插入图片描述

6 Xor

6、Xor 就是简单的异或在这里插入图片描述在这里插入图片描述

#include < iostream>
using namespace std;
int main(){
   
   
char miwen[34] =
{
   
   
  0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11, 
  0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F, 
  0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F, 
  0x47, 0x32, 0x4F, 0x00
};
for(int i=0;i<33;i++)
{
   
   char p=miwen[i]^miwen[i+1];
cout<<p;
}}

7 helloworld

7、helloworld 明码在这里插入图片描述

9 不一样的flag

9不一样的flag 迷宫在这里插入图片描述
在这里插入图片描述

1 上 2 下 3 左 4 右

*1111
01000
01010
00010
1111#
222441144222

10 simplerev

10SimpleRev 在这里插入图片描述在这里插入图片描述
在这里插入图片描述

key拼接src ADSFKNDCLS text也是 killshadow(小端) 然后key转小写

#include <iostream>
using namespace std;
int main(){
   
   
	string p="killshadow";
	string key="adsfkndcls";
	for(int i=0;i<10;i++)
	{
   
   for(int j=1;j<128;j++){
   
   
		if((j>'a'&&j<'z')||(j>'A'&&j<'Z'))
		{
   
   if(p[i]==(j-39-key[i]+97)%26+97)
		{
   
   char pp=j;
		cout<<pp;
		break;}}}}

8 reverse3

8 reverse3 先base64 再每位数加上自己的位数

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;
int main(){
   
   
	string p="e3nifIH9b_C@n@dH";
	for(int i=0;i<p.length();i++)
	p[i]-=i;
	cout<<p;
}

再base64 解码即可

11 java

11 java 逆向解密密,用gui 在这里插入图片描述

#include < iostream>
using namespace std;
int main(){
   
   
	int key[] = {
   
    180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65 };
	for(int i=0;i<18;i++){
   
   
		char p=key[i]-'@'^0x20;
		cout<<p;
	}
	

12 luckgay

12luckgay
在这里插入图片描述在这里插入图片描述

#include <iostream>
using namespace std;
int main(){
   
   
	int p[]={
   
   0x69,0x63,0x75,0x67,0x60,0x6f,0x66,0x7f};
	for(int i=0;i<8;i++){
   
   
		if(i%2==1)
		p[i]-=2;
		else p[i]-=1;
		char x=p[i];
		cout<<x;	
	}	
} 

13 刮开有奖

13 刮开有奖 在这里插入图片描述在这里插入图片描述

程序处理+base64
sub_4010c0

#include<stdio.h>
#include<iostream>

using namespace std;

int  sub(char a1[], int a2, int a3)
{
   
   
  int result; // eax
  int i; // esi
  int v5; // ecx
  int v6; // edx

  result = a3;
  for ( i = a2; i <= a3; a2 = i )
  {
   
   
    v5 = i;
    //v6 = *(DWORD *)(4 * i + a1);
    v6 = a1[i];
    if ( a2 < result && i < result )
    {
   
   
      do
      {
   
   
        //if ( v6 > *(DWORD *)(a1 + 4 * result) )
        if ( v6 > a1[result] )
        {
   
   
          if ( i >= result )
            break;
          ++</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_51275728

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

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

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

打赏作者

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

抵扣说明:

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

余额充值