어셈 복습 Decimal to Binary
2021. 7. 7. 21:52ㆍ0x02 Reverse Engineer/0x03. Etc
728x90
밥먹고 오픈채팅에서 누가 짜달라해서 짜봤다. 오랜만에 어셈쓰니 재밌었다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define Naked __declspec(naked)
const char* format = "%d";
const char* format2 = "%c";
unsigned int n = 0;
Naked int main(int argc, char* argv[])
{
__asm {
push ebp
mov ebp, esp
sub esp, 0x30
// initialization
xor ecx, ecx
xor eax, eax
lea eax, [n]
push eax
push format
call scanf // stdin.get
add esp, 0x8
mov eax,dword ptr [n] // return input value
mov edx, eax // backup
mov ecx, 0x7 // loop count
_loop:
// trigger
push edx // backup
sar edx, cl
and edx, 0x1
cmp edx, 0x1
jl _print_zero
push ecx
mov edx, 0x31 // '1'
push edx
push format2
call printf
add esp, 0x8
pop ecx
pop edx
sub ecx, 0x1
cmp ecx, 0xFFFFFFFF
je _end
jmp _loop
_print_zero:
mov edx, 0x30 // '0'
push ecx // backup
push edx
push format2
call printf
add esp, 0x8
pop ecx
sub ecx, 0x1
pop edx
jmp _loop
_end:
mov esp, ebp
pop ebp
retn
}
}
'0x02 Reverse Engineer > 0x03. Etc' 카테고리의 다른 글
HackCTF keygen (0) | 2022.03.14 |
---|---|
HackCTF babymips (0) | 2022.03.14 |
Credential leak from Chrome browser [MacOS Version] (0) | 2021.06.27 |
[HTB] Bombs Landed (0) | 2021.03.24 |
lyl -3부 (0) | 2020.04.30 |