首页
论坛
专栏
课程

[原创]第一题流浪者解析

2019-3-12 18:06 282

[原创]第一题流浪者解析

2019-3-12 18:06
282

分析工具:

IDA      x32dbg     

一、代码分析:

(一)、定位关键字符串


(二)、IDA查看

定位到了关键字符串的位置,利用IDA的交叉引用查找其核心代码,也就是其算法

核心算法:


二、解密算法

逆推得到解密算法:
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<Windows.h>
int _tmain( int argc, _TCHAR* argv[] )
{
	char Str1[ 26 ] = "KanXueCTF2019JustForhappy";
	char Str2[ 26 ] = { 0 };
	char str[] = "abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ";
	for ( int j = 0; Str1[ j ]; j++ )
	{
		for ( int k = 0; str[ k ]; k++ )
		{
			if ( str[ k ] == Str1[ j ] )
			{
				if ( k + 48 > 57 || k + 48 < 48 )     //  ‘9’=57  ‘0’=48
				{
					if ( k + 87 > 122 || k + 87 < 97 )   // 'z'   'a'

					{
						if ( k + 29 > 90 || k + 29 < 65 )  //   'Z'    'A'
						{
							printf( "ERROR" );
							break;
						}
						else
						{
							Str2[ j ] = k + 29;
							break;
						}
					}
					else
					{
						Str2[ j ] = k + 87;
						break;
					}
				}

				else
				{
					Str2[ j ] = k + 48;
					break;
				}

			}
		}
	}
	for ( int j = 0; j < 26; j++ )
	{
		printf( "%c", Str2[ j ] );
	}
	system( "pause" );
	return 0;
}
逆推,写出解密算法。



[招聘]欢迎市场人员加入看雪学院团队!

最新回复 (0)
游客
登录 | 注册 方可回帖
返回