一些题目的wp
Zsc_02
二进制方向在校大学生
展开
-
有意思的 CrackRTF
CrackRTF最近刷题遇到的不会又不错的题,考了几个我没有见过的API,以及一种奇妙的给出flag的方式题目描述在互联网时代,兼容就是胜利,兼容就是王道。为了遏制微软一家独大的趋势,小明自诩民族斗士,向微软CEO挑战,CEO给了他一个文件,据说破解后能得到一个微软的多信息文本格式文件。只有得到了才能获得挑战CEO的机会。小明绞尽脑汁,最后不得不求助大家。。。兄弟们该出手时就出手! 注意:得到的 flag 请包上 flag{} 提交main函数:int __cdecl main_0(int arg原创 2022-05-17 18:57:53 · 292 阅读 · 0 评论 -
攻防signIn(RSA加解密)
攻防signIn拖入ida:main__int64 __fastcall main(int a1, char **a2, char **a3){ char v4[16]; // [rsp+0h] [rbp-4A0h] BYREF char v5[16]; // [rsp+10h] [rbp-490h] BYREF char v6[16]; // [rsp+20h] [rbp-480h] BYREF char v7[16]; // [rsp+30h] [rbp-470h] BYREF原创 2022-04-25 20:06:44 · 227 阅读 · 0 评论 -
攻防Replace
攻防Replace查壳,发现是upx壳,upx -d进行脱壳脱壳后拖入ida看伪代码main函数int __cdecl main(int argc, const char **argv, const char **envp){ int v3; // kr00_4 char Buffer[40]; // [esp+4h] [ebp-2Ch] BYREF memset(Buffer, 0, sizeof(Buffer)); printf("Welcome The System\nPl原创 2022-04-15 23:38:37 · 2744 阅读 · 0 评论 -
攻防re2-cpp-is-awesome(c++干扰我,align 8作用)
攻防re2-cpp-is-awesome拖入ida看到一堆冗长的我看不懂的代码__int64 __fastcall main(int a1, char **a2, char **a3){ char *v3; // rbx __int64 v4; // rax __int64 v5; // rdx __int64 v6; // rax __int64 v7; // rdx __int64 v8; // rdx __int64 v10[2]; // [rsp+10h] [rb原创 2022-04-12 21:43:24 · 3061 阅读 · 0 评论 -
攻防notsequence(杨辉三角的判断)
攻防notsequence杨辉三角https://baike.baidu.com/item/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/215098拖入ida 看main函数int __cdecl main(){ _DWORD *v0; // eax int v2; // [esp+14h] [ebp-Ch] _DWORD *v3; // [esp+1Ch] [ebp-4h] memset(&unk_8049BE0, 0, 0x4000u);原创 2022-04-12 17:55:16 · 2206 阅读 · 0 评论 -
攻防elrond
攻防elrond分析拖入ida看main函数int __cdecl main(int a1, char **a2){ if ( a1 > 1 && sub_8048414(a2[1], 0) ) { puts("Access granted"); sub_8048538(a2[1]); } else { puts("Access denied"); } return 0;}只要让**sub_8048414(a2[1],原创 2022-04-09 22:24:21 · 2529 阅读 · 0 评论 -
攻防crackme(手动脱壳nspack)
攻防crackme(手动脱壳nspack)放到exeinfope查壳,是nspack尝试进行手动托脱壳拖入od设硬件断点执行pushfd和pushad后,在esp的位置设置硬件断点再按f9执行到popfd后,jmp跳到的地方即为oepdump:插件中dump修复IATfixdump:修复iat(针对上次dump后的文件)最后生成一个crackme_dump_scy.exe文件,即为脱壳后的文件:拖入idaint __cdecl main(int argc, const char *原创 2022-04-07 22:19:00 · 328 阅读 · 0 评论 -
攻防re_crazy
攻防re_crazy拖入ida看到繁琐的代码:int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rax __int64 v4; // rax __int64 v5; // rax __int64 v6; // rax __int64 v7; // rax __int64 v8; // rax __int64 v9; // rax __int64 v10; //原创 2022-04-05 16:17:26 · 1314 阅读 · 0 评论 -
攻防easyre-153
攻防easyre-153先拖入exeinfope查壳,发现是简单的 upx壳所以用upx.exe脱壳:upx-d脱壳之后拖入ida,f5看main函数int __cdecl main(int argc, const char **argv, const char **envp){ int pipedes[2]; // [esp+18h] [ebp-38h] BYREF __pid_t v5; // [esp+20h] [ebp-30h] int v6; // [esp+24h] [eb原创 2022-04-05 14:11:26 · 1727 阅读 · 0 评论 -
攻防re-1 100
攻防re-1 100拖入ida,main函数f5int __cdecl __noreturn main(int argc, const char **argv, const char **envp){ __pid_t v3; // eax size_t v4; // rax ssize_t v5; // rbx bool v6; // al bool bCheckPtrace; // [rsp+13h] [rbp-1BDh] ssize_t numRead; // [rsp+1原创 2022-04-04 22:08:40 · 105 阅读 · 0 评论 -
攻防世界easyhook
攻防世界easyhook题目流程int __cdecl main(int argc, const char **argv, const char **envp){ HANDLE FileA; // eax DWORD NumberOfBytesWritten; // [esp+4h] [ebp-24h] BYREF char Buffer[32]; // [esp+8h] [ebp-20h] BYREF printf(aPleaseInputFla); scanf("%31s",原创 2022-04-04 10:22:42 · 306 阅读 · 0 评论 -
攻防re_secret-galaxy-300
攻防re_secret-galaxy-300拖入ida看到int __cdecl main(int argc, const char **argv, const char **envp){ __main(); fill_starbase(&starbase); print_starbase(&starbase); return 0;}点开print那个函数看看:int __cdecl print_starbaseint a1){ int result; /原创 2022-04-04 10:21:26 · 212 阅读 · 0 评论 -
攻防hackme
攻防hackme字符串查找到主要函数__int64 __fastcall sub_400F8E(__int64 a1, int a2, int a3, int a4, int a5, int a6){ int v6; // edx int v7; // ecx int v8; // er8 int v9; // er9 int v10; // ecx int v11; // er8 int v12; // er9 char v14; // [rsp+0h] [rbp-C原创 2022-04-04 10:17:46 · 100 阅读 · 0 评论 -
攻防 re_parallel-comparator-200
攻防 re_parallel-comparator-200是一个c语言源文件,打开看到具体代码:#include <stdlib.h>#include <stdio.h>#include <pthread.h> //linux的线程库 ,所以要在linux中才可运行#define FLAG_LEN 20void * checking(void *arg) { char *result = malloc(sizeof(char)); cha原创 2022-03-30 21:52:49 · 474 阅读 · 0 评论 -
攻防re_Reversing-x64Elf-100
攻防re_Reversing-x64Elf-100题目流程读取输入的字符串s,再作为参数传入 sub_4006fd 函数中判断条件成立,返回1,输入的flag不正确,**所以当 *(char *)(v3[i % 3] + 2 * (i / 3)) - (char )(i + a1) = 1 的时候成功解题思路通过对函数中判断条件的逆向分析得出以下脚本注意:*(char *)() 中后面括号里是地址之,所以写脚本的时候对应位置应改为二维数组的形式: (v3[i % 3] [2 * (i / 3原创 2022-03-17 20:42:27 · 365 阅读 · 0 评论 -
【无标题】
攻防re-666题目流程main函数对输入的字符串作为参数传入 encode 函数中,最后与enflag字符串比较,成功。encode函数:先判断输入的字符串是否符合长度要求(strlen(a1)== key(18)),之后进行一系列的加密。加密:就是一些异或运算解题思路将加密过程逆向,这里需要知道:a ^ b ^ = c ^ d <=> a = c ^ b ^ dc语言脚本#include <stdio.h>int main(){ int enfla原创 2022-03-16 23:49:58 · 3717 阅读 · 0 评论