일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- hackingcamp
- 워 게임
- Basic
- 리버싱
- PYTHON
- 히공
- 라이트업
- c언어
- 리버스 엔지니어링
- write up
- ctf
- web
- 라이트 업
- 2021
- 라업
- 뭉뭉
- probgame
- 시탭
- vsCode
- reversing.kr
- reversing
- 변수
- write-up
- 파이썬
- 풀이
- 해킹캠프
- 코드엔진
- 드림핵
- ShaktiCTF
- 강의
목록리버싱 (48)
히공

문제 .text .globl value .data .align 4 .type value, @object .size value, 4 value: .long 24564753 .globl isGood .align 4 .type isGood, @object .size isGood, 4 isGood: .long 12345 .section .rodata .align 8 .LC0: .string "Hey ! Have you got a password for me ? " .text .globl getInput .type getInput, @function getInput: .LFB6: .cfi_startproc endbr64 pushq %rbp # .cfi_def_cfa_offset 16 .cfi_offset 6, -..

문제 package fr.heroctf.jni; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private Button checkButton; private EditText flagEditText; public native boolean checkFlag(String str); static { System.loadL..

문제 int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax bool changed; // [rsp+13h] [rbp-1Dh] int i; // [rsp+14h] [rbp-1Ch] int (*fp)(void); // [rsp+18h] [rbp-18h] char seed[5]; // [rsp+23h] [rbp-Dh] BYREF unsigned __int64 v8; // [rsp+28h] [rbp-8h] v8 = __readfsqword(0x28u); setvbuf(_bss_start, 0LL, 2, 0LL); *(_DWORD *)seed = 0; seed[4] = 0; printf("Hello, Mr. Eus..

문제 exe파일이고 gui 프로그램이다. WinProc에서 분기점을 찾았다. sub_411109 이 함수를 분석해보자 // attributes: thunk int sub_411109(void) { return sub_411F90(); } 함수 내부에서 함수를 호출한다. int sub_411F90() { __int64 v1; // [esp+Ch] [ebp-138h] int v2; // [esp+D8h] [ebp-6Ch] char v3[20]; // [esp+E4h] [ebp-60h] BYREF int v4[11]; // [esp+F8h] [ebp-4Ch] int v5; // [esp+124h] [ebp-20h] int j; // [esp+130h] [ebp-14h] int i; // [esp+13Ch] [..

문제 플래그 형식이 shaktiCTF라고 알려준다. int __cdecl main(int argc, const char **argv, const char **envp) { __int64 v4; // rax __int64 v5; // rax int i; // [rsp+4h] [rbp-12Ch] int j; // [rsp+8h] [rbp-128h] int k; // [rsp+Ch] [rbp-124h] char v10[32]; // [rsp+20h] [rbp-110h] BYREF int v11[47]; // [rsp+40h] [rbp-F0h] char s[10]; // [rsp+FFh] [rbp-31h] BYREF __int64 v13; // [rsp+109h] [rbp-27h] BYREF int v14; /..

문제 __int64 __fastcall main(int a1, char **a2, char **a3) { unsigned int v3; // eax int v5; // [rsp+8h] [rbp-C8h] int i; // [rsp+Ch] [rbp-C4h] int v7[32]; // [rsp+10h] [rbp-C0h] BYREF char s[40]; // [rsp+90h] [rbp-40h] BYREF unsigned __int64 v9; // [rsp+B8h] [rbp-18h] v9 = __readfsqword(0x28u); v5 = 3; fgets(s, 32, stdin); for ( i = 0; i < strlen(s); ++i ) { v3 = v5++; v7[i] = ((__int64 (__fastca..

문제 int __cdecl main(int argc, const char **argv, const char **envp) { FILE *v3; // eax unsigned int v4; // eax int result; // eax char *argv_1; // [esp+4h] [ebp-14h] char *Str; // [esp+8h] [ebp-10h] _BYTE *Block; // [esp+Ch] [ebp-Ch] int Size; // [esp+10h] [ebp-8h] char *base64_encode_str; // [esp+14h] [ebp-4h] maybe_printf(aEnterTheString); v3 = __acrt_iob_func(0); maybe_read((int)Str, 256, v3)..

문제 __int64 __fastcall main(int a1, char **a2, char **a3) { char v3; // bl int i; // [rsp+14h] [rbp-2Ch] __int64 v6[5]; // [rsp+18h] [rbp-28h] BYREF v6[2] = __readfsqword(0x28u); puts(a2[1]); v6[0] = *(_QWORD *)a2[1] & 0xFFFFFFFFFFFFLL; printf("%lu\n", v6[0]); for ( i = 0; i