일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- reversing.kr
- write-up
- 풀이
- 드림핵
- PYTHON
- probgame
- web
- 강의
- 해킹캠프
- Basic
- 라이트업
- 파이썬
- 변수
- 2021
- 시탭
- 리버싱
- ShaktiCTF
- 뭉뭉
- vsCode
- c언어
- ctf
- 라이트 업
- 리버스 엔지니어링
- 라업
- 히공
- 워 게임
- write up
- hackingcamp
- reversing
- 코드엔진
목록reversing (18)
히공
문제 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)..
문제 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [rsp+8h] [rbp-28h] int i; // [rsp+Ch] [rbp-24h] char s[24]; // [rsp+10h] [rbp-20h] BYREF unsigned __int64 v7; // [rsp+28h] [rbp-8h] v7 = __readfsqword(0x28u); printf("Enter the string: "); __isoc99_scanf("%s", s); v4 = 1; if ( strlen(s) != 16 ) { puts("I dont think so XD"); exit(0); } for ( i = 0; s[i]; ++i ) { if (..
문제 int __cdecl main(int argc, const char **argv, const char **envp) { int i; // [rsp+4h] [rbp-18Ch] __int64 v5; // [rsp+8h] [rbp-188h] __int64 v6; // [rsp+8h] [rbp-188h] char *gets_value; // [rsp+10h] [rbp-180h] BYREF char *v8; // [rsp+18h] [rbp-178h] _QWORD *v9; // [rsp+20h] [rbp-170h] BYREF __int64 v10; // [rsp+28h] [rbp-168h] int v11; // [rsp+30h] [rbp-160h] __int64 v12[8]; // [rsp+40h] [rbp-..
문제 __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
ImagePrc 문제를 풀어보겠습니다. 실행화면 입니다. 그냥 아무거나 그리고 Check 버튼을 눌러보았습니다. WinMain 함수 입니다. WndProc 으로 보이는 함수 입니다. (인자도 WndProc 함수랑 같기 때문입니다) 27줄에서 CreateComatibleBitmap(v7,200,150)으로 비트맵을 만듭니다. msdn 주소 : 여기 비트맵의 크기는 200px, 150px 입니다. string 검색 Wrong을 찾았습니다. 여기서 x를 누르니 어디서 사용되는지 알려줍니다. 바로 여기 입니다. 24비트맵이란걸 알 수 있습니다. 여기서 비교를 해서 그린 그림이 맞는지 아닌지 검사합니다. x32dbg로 아까 그 부분을 열었습니다. 반복문 시작 전에 bp를 걸어주었습니다. 이런식으로 칠해주고 Che..
로또 문제를 풀어보겠습니다. 실행화면 입니다. 메인함수입니다. 64비트 문제여서 그런지 wprintf, wscanf_s 등 w붙은 함수를 사용하네요. x64dbg의 주석기능을 이용해서 코드의 설명을 넣었습니다. wscanf_s 부분에 bp를 걸고 f9를 입력해서 숫자를 입력해보겠습니다. 1 2 3 4 5 6을 입력했습니다. 그 후 system("cls")로 창을 이쁘게 정리해주고, sleep(0x1f4)를 해서 조금 쉬게 해줍니다. 여기서 랜덤으로 값을 가져오고, 그 값을 암호화 합니다. 그 후 [rsp+rbx*4+0x54] 부분에 순서대로 값을 저장합니다. 이것을 총 6번 반복합니다. 그 후 생긴 배열입니다. 이런 루틴이 있습니다. 총 6번 for문을 돌립니다. 비교 루틴이 보입니다. eax값은 1이고..
보호되어 있는 글입니다.
보호되어 있는 글입니다.