본문으로 바로가기

marco

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
관리자
  • 블로그 이미지
    MarcoKhan

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

ASM to C with IDA - 058 (strstr)

C300_058 C300_소스코드 1234567891011121314151617181920212223242526272829303132#include #include #define SKY "sky" void main(void){ char string[100]; char *ret; puts("문자열을 입력한 후 Enter키를 치세요 !"); puts("문자열 중에 sky가 포함되어 있으면, 프로그램은 종료됩니다."); do { gets(string); ret = strstr(string, SKY); if (ret == NULL) { puts("문자열 중에 sky가 없습니다."); } else { printf("%d 위치에서 sky 문자열을 찾았습니다. ", ret - string); break; } } wh..

Reversing/ASM to C 2018. 7. 16. 12:15

ASM to C with IDA - 057 (strlen)

C300_057 C300_소스코드 123456789101112131415161718192021222324#include #include void main(void){ char string[200]; printf("문장을 입력한 후, Enter 키를 치세요 !\n"); printf("아무것도 입력하지 않으면 프로그램은 종료됩니다 !\n"); do { gets(string); if (strlen(string) == 0) { break; } printf("문자열의 길이는 %d입니다. \n", strlen(string)); } while (1);} Colored by Color Scriptercs IDA - Layout Graph IDA - Text View strlen을 구현하는 코드이다.우선 문자열이 NUL..

Reversing/ASM to C 2018. 7. 16. 11:53

ASM to C with IDA - 056 (strcat)

C300_056 C300_소스코드 12345678910111213141516171819#include #include void main(void){ char string1[100]; char string2[100]; printf("첫 번째 단어를 입력하세요 !\n"); gets(string1); printf("두 번째 단어를 입력하세요 !\n"); gets(string2); strcat(string1, string2); puts(string1);} cs IDA - Layout Graph IDA - Text View pseudo code - 의사코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484..

Reversing/ASM to C 2018. 7. 16. 11:18

어셈블리 프로그래밍 심화2

1. 연산자 1). 사칙연산: +, -, *, / a + b -> add add operand1, operand2 operand1 = operand1 + operand2 a - b -> sub sub operand1, operand2 operand1 = operand1 - operand2 a * b -> mul(부호없는 곱셈) - 1바이트 * 1바이트 = 2바이트(대부분) al, ax, eax, rax의 값과 피연산자의 값을 곱한다. mov eax, 0을 통해 eax 레지스터를 초기화한다.mov al, 5를 통해 al(8bit)에 5를 대입한다.mul byte [a]를 통해 10*5를 진행한다. mul 심화(범위를 벗어날 때) a = 9876, ax = 4500이다.a * ax = 44,442,000 값..

Pwnable 2018. 7. 12. 20:36

ASM to C with IDA - 055 (strncmp)

C300_055 C300_소스코드 123456789101112131415161718192021222324252627282930#include #include #define SKY "sky" void main( void ) { char string[100]; int ret; printf( "영단어를 입력한 후 Enter키를 치세요 !\n" ); printf( "sky로 시작되는 단어를 입력하면 프로그램이 종료됩니다. \n" ); do { gets( string ); ret = strncmp( string, SKY, 3 ); if( ret == 0 ) { printf( "%3.3s == %s, ret = %d \n", string, SKY, ret ); break; } else if( ret

Reversing/ASM to C 2018. 7. 12. 12:00

ASM to C with IDA - 054 (strcmp)

C300_054 C300_소스코드 1234567891011121314151617181920212223242526272829#include #include #define SKY "sky" void main(void){ char string[100]; int ret; printf("영단어를 입력한 후 Enter키를 치세요 !\n"); printf("sky를 입력하면 프로그램이 종료됩니다. \n"); do { gets(string); ret = strcmp(string, SKY); if (ret == 0) { printf("%s == %s, ret = %d \n", string, SKY, ret); break; } else if (ret

Reversing/ASM to C 2018. 7. 12. 11:38

ASM to C with IDA - 053

C300_053 C300_소스코드 123456789101112131415161718192021222324252627282930#include #define KOREA "대한민국" char* My_strcpy(char* dest, const char* src); void main(void){ char string[100]; My_strcpy(string, KOREA); puts(string);} char* My_strcpy(char* dest, const char* src){ if (dest == (int)NULL || src == (int)NULL) { if (*dest != (int)NULL) *dest = (int)NULL; return NULL; } do { *dest++ = *src; } whil..

Reversing/ASM to C 2018. 7. 12. 09:45

ASM to C with IDA - 052 (strcpy)

C300_052 C300_소스코드 123456789101112131415#include #include #define KOREA "대한민국" void main(void){ char *string1; char string2[100]; strcpy(string1, KOREA); strcpy(string2, KOREA); strcpy(string2, "봄");} cs IDA - Layout Graph IDA - Text View 한글은 유니코드를 사용하고 있다. 유니코드는 한글자에 2바이트이다.효율성을 위해 strcpy는 한번에 4바이트 씩, 2글자 씩 옮기고 있다.또한 string의 맨 마지막에 NULL을 붙여 끝을 명시해준다. pseudo code - 의사코드 1234567891011121314151617..

Reversing/ASM to C 2018. 7. 11. 11:02

ASM to C with IDA - 051

C300_051 C300_소스코드 12345678910111213#include #define KOREA "대한민국"#define SUMMER "여름" void main(void){ const char* winter = "겨울"; puts(KOREA); puts(SUMMER); puts(winter);}cs IDA - Layout Graph \ IDA - Text View 매크로 함수는 전처리 단계에서 처리되기 때문에 디스어셈블 하면 보이지 않는다.따라서 매크로 함수를 사용하지 않은 winter의 처리 과정만 디스어셈블리단에서 보인다. pseudo code - 최종 의사 코드 12345678910111213#include void main(void){ int *winter; winter = offset ..

Reversing/ASM to C 2018. 7. 11. 10:41

ASM to C with IDA - 050

C300_050 C300_소스코드 12345678910111213141516171819202122232425262728#include int count(char *str); void main(void){ char string[100]; char *ret; ret = gets(string); if (ret != NULL) { printf("문자 'a'의 개수는 %d개입니다. ", count(string)); }} int count(char *str){ int cnt = 0; while (*str != (int)NULL) { if (*str++ == 'a') cnt++; } return cnt;}Colored by Color Scriptercs IDA - Layout Graph IDA - Text View ..

Reversing/ASM to C 2018. 7. 11. 10:29
  • 이전
  • 1
  • ···
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • ···
  • 27
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

LINK

  • About Me
  • Gtihub

CATEGORY

  • M4RC0 (262)
    • CPU side-channel attack (7)
      • Resource contention-based a.. (1)
      • Meltdown-type attacks (3)
      • Spectre-type attacks (0)
      • MDS (0)
      • Whitepaper (0)
    • Drone (0)
    • Linux (42)
    • GitHub management (0)
    • Vulnerabilties on Drones (0)
    • Programming (42)
      • C언어 (6)
      • TIPS 17기 (17)
      • JAVA (12)
      • JSP (4)
      • Python (3)
    • Wargame (61)
      • LOB (20)
      • FTZ (22)
      • Protostar (7)
      • pwnable.kr (12)
    • Reversing (75)
      • Keygen (4)
      • ASM to C (70)
      • CodeEngn (1)
    • Pwnable (8)
    • Crypto, Access Control, Pro.. (2)
    • SEEDLAB (5)
    • Paper review (1)
    • Github 관리 (1)
    • ETC... (17)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • tipsware
  • tipssoft
  • 김성엽
  • Tips프로그래밍강좌
  • TIPS강좌
  • Tips프로그래밍
MORE+

ARCHIVE

CALENDAR

«   2025/08   »
일 월 화 수 목 금 토
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

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT marco, ALL RIGHT RESERVED.
marco
블로그 이미지 MarcoKhan 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
CATEGORY
  • M4RC0 (262)
    • CPU side-channel attack (7)
      • Resource contention-based a.. (1)
      • Meltdown-type attacks (3)
      • Spectre-type attacks (0)
      • MDS (0)
      • Whitepaper (0)
    • Drone (0)
    • Linux (42)
    • GitHub management (0)
    • Vulnerabilties on Drones (0)
    • Programming (42)
      • C언어 (6)
      • TIPS 17기 (17)
      • JAVA (12)
      • JSP (4)
      • Python (3)
    • Wargame (61)
      • LOB (20)
      • FTZ (22)
      • Protostar (7)
      • pwnable.kr (12)
    • Reversing (75)
      • Keygen (4)
      • ASM to C (70)
      • CodeEngn (1)
    • Pwnable (8)
    • Crypto, Access Control, Pro.. (2)
    • SEEDLAB (5)
    • Paper review (1)
    • Github 관리 (1)
    • ETC... (17)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바