본문 바로가기

분류 전체보기264

(CTF) hayyim CTF 2022 writeup (MemoryManager) 대회 끝나고 풀어본 문제다. MemoryManager opcode 입력받아서 실행시켜주는 vm 문제. bss 영역에 있는 stack 변수는 0x4060D8 영역을 가리키고, data 변수는 0x4060E0 영역을 가리키고있다. 입력 사이즈 제한은 0x1000 이다. void __fastcall sub_401F46(__int64 a1) { __int64 v1; // [rsp+1Fh] [rbp-31h] v1 = (unsigned __int8)get_opcode(a1); if ( (unsigned __int8)v1 rax+(a2&0xF)) = a3 원하는 레지스터 값을 a3 으로 덮을 수 있다. (rbp, rsp, rip 제외) opcode == 3 4050AC 는 초기값이 -1 인 변수인데, sub_4015.. 2022. 2. 17.
(BOJ) 1629 풀이 #include using namespace std; typedef long long ll; ll pow(ll a,ll x,ll m){ if(x==1) return a%m; ll var=pow(a,x/2,m); var=var*var%m; if(x%2==0) return var; return var*a%m; } int main(void){ ios::sync_with_stdio(0);cin.tie(0); ll A,B,C; cin >> A >> B >> C; cout 2022. 2. 16.
(BOJ) 1600 풀이 1600 #include using namespace std; typedef struct _XYZ{ int x; int y; int z; }xyz; int dx[]={-1,0,1,0,-1,-2,-2,-1,1,2, 2, 1}; int dy[]={0,1,0,-1,-2,-1, 1, 2,2,1,-1,-2}; int board[202][202]; int visited[202][202][32]; int main(void){ ios::sync_with_stdio(0);cin.tie(0); int K,W,H,flag=0; xyz v; queue Q; cin >> K; cin >> W >> H; for(int i=1;i board[i][j]; } } Q.push({1,1,K}); while(!Q.empty()){ v=Q.. 2022. 2. 14.
(BOJ) 2206 풀이 2206 #include using namespace std; typedef struct _XYW { int x; int y; int w; } xyw; char ar[1001][1001]; int visited[2][1001][1001]; int dx[] = {-1, 0, 1, 0}; int dy[] = {0, 1, 0, -1}; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int N, M; cin >> N >> M; queue Q; xyw v; for (int i = 1; i ar[i][j]; } } Q.push({1, 1, 1}); visited[1][1][1] = 1; visited[0][1][1] = 1; while (!Q.empty()) { v.. 2022. 2. 10.