从2018强网杯hide题中学习手动脱壳与算法识别的思路

环境配置 系统 : Linux kali 4.15.0-kali2-amd64 \ win10 64bit 程序 : hide 要求 : 输入口令 使用工具 :ida 开始分析 粗略观察 使用file命令拿信息: ➜ playground file ./hide ./hide: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped 没什么特殊的,接下来使用strings命令拿信息: ➜ playground strings hide # 省略大部分字串 UPX! UPX! 发现upx字样,所以这里应该是加了upx壳保护。 手动脱壳 使用upx命令脱壳: ➜ playground upx -d hide Ultimate Packer […]

一道油田ctf比赛的算法逆向题解

环境配置 系统 : Linux ubuntu 4.4.0-116-generic \ win10 64bit 程序 : encry_algo 要求 : 输入口令 使用工具 :ida \ pysm4 开始分析 静态分析 使用ida载入程序: signed int __cdecl sub_804934A(int a1) { int v1; // eax //省略部分代码 qmemcpy(&v8, “Please input your flag: “, 0x190u); v1 = sub_805C180(&v8); printf_806E0A0(1, (int)&v8, v1); scanf_806E030(0, (int)&my_str, 16); sub_8049076(&v7, (int)&v12); sub_804911A((int)&v7, 1, 16, (char […]

网鼎杯CTF Martricks

环境配置 系统 : Linux kali 4.6.0-kali1-amd64 程序 : 1.1 要求 : 输入口令 使用工具 :ida \ angr \ z3 解法一 主要流程 使用ida了解程序结构如下: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { unsigned __int8 v4; // [rsp+Bh] [rbp-E5h] signed int v5; // [rsp+Ch] [rbp-E4h] signed int v6; // [rsp+10h] [rbp-E0h] int v7; // [rsp+14h] [rbp-DCh] signed int […]

ddctf2019 obfuscating macros write up

环境配置 系统 : Windows 10 \ Linux kali 4.6.0-kali1-amd64 程序 : obfuscating_macros.out 要求 : 输入口令 使用工具 :ida 开始分析 静态分析 使用ida载入程序,使用WELL DONE!字符串定位到关键代码: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char v3; // al char v4; // al bool v5; // al __int64 v6; // rax char v8; // [rsp+0h] [rbp-40h] unsigned __int64 v9; // […]

ddctf2019 Confused write up

环境配置 系统 : Windows 10 程序 : confused.app.zip 要求 : 输入口令 使用工具 :ida 开始分析 搜集信息 在linux中使用file命令查看信息: ➜ playground file xia0Crackme xia0Crackme: Mach-O 64-bit x86_64 executable 可知是苹果的64位可执行程序。 静态分析 在ida中载入程序,根据字符串DDCTF{定位到关键代码: void __cdecl -[ViewController checkCode:](ViewController *self, SEL a2, id a3) { void *v3; // rax void *v4; // rax void *v5; // ST18_8 void *v6; // rax char […]

ddctf2019 Windows Reverse2 write up

环境配置 系统 : Windows xp 程序 : reverse2_final.exe 要求 : 输入口令 使用工具 :ida \ Ollydbg52pojie \ peid 开始分析 查壳 使用peid查看文件信息: ASPack 2.12 -> Alexey Solodovnikov 使用了aspack壳。 dump内存 直接使用od加载文件并运行起来,看到窗口有如下输出: input code: 这里,od中选择插件->OllyDump->脱壳在当前调试的进程,在弹出的窗口中选择脱壳,然后选择保存的文件名和位置就可以。 静态分析 ida中,根据字符串定位关键函数如下: int sub_401320() { char v1; // [esp+8h] [ebp-C04h] char v2; // [esp+9h] [ebp-C03h] char my_str; // [esp+408h] [ebp-804h] char v4; // [esp+409h] […]

ddctf2019 Windows Reverse1 write up

环境配置 系统 : Windows xp 程序 : reverse1_final 要求 : 输入口令 使用工具 :ida \ od \ UPX_3.91 \ peid 开始分析 脱壳 将程序直接拖入peid,显示: 什么都没找到 * 但EP段处数据是UPX1,所以可以质疑程序加了upx保护壳,使用upx工具简单脱壳: C:\UPX_3.91_XiaZaiBa\upx391w>upx -d reverse1_final.exe Ultimate Packer for eXecutables Copyright (C) 1996 – 2013 UPX 3.91w Markus Oberhumer, Laszlo Molnar & John Reiser Sep 30th 2013 File size Ratio Format Name ——————– […]

高校运维赛 2018 Hide and Seek

环境配置 系统 : Windows 10 \ Linux kali 4.6.0-kali1-amd64 程序 : 2.2 要求 : 输入口令 使用工具 :ida \ pin 开始分析 使用ida载入程序查看主流程: signed __int64 __fastcall main(__int64 a1, char **a2, char **a3) { signed __int64 result; // rax char *v4; // [rsp+18h] [rbp-18h] if ( mprotect( (void *)((unsigned __int64)sub_400647 & 0xFFFFFFFFFFFFF000LL), (((unsigned __int64)main + 4096) & 0xFFFFFFFFFFFFF000LL) […]

看雪.TSRC 2017CTF秋季赛 第三题 crackMe

环境配置 系统 : Windows xp 程序 : crackMe 要求 : 输入口令 使用工具 :ida \ peid \ od \ CTF在线工具-在线莫尔斯电码 \ CTF在线工具-在线base编码 开始分析 查找密码学常数 使用peid查看exe属性: Microsoft Visual C++ 8.0 [Debug] 再用peid的密码学插件查看信息,点击拓展信息 -> 插件 -> krypto analyzer: BASE64 table :: 0005D8E8 :: 0048B0E8 Referenced at 004347B1 Referenced at 004347EA Referenced at 00434823 Referenced at 00434846 Referenced at […]

看雪.TSRC 2017CTF秋季赛 ctf2017_Fpc

环境配置 系统 : Windows xp 程序 : ctf2017_Fpc 要求 : 输入口令 使用工具 :ida \ od \ sympy 开始分析 进入主流程 使用ida载入程序,直接发现main函数: .text:00401000 ; int __cdecl main(int argc, const char **argv, const char **envp) .text:00401000 _main proc near ; CODE XREF: start+AFp .text:00401000 push offset aCrackmeForCtf2 ; “\n Crackme for CTF2017 @Pediy.\n” .text:00401005 call sub_413D42 .text:0040100A add […]