외규장각 도서 환수 모금 캠페인

Search Results for 'Study/Computer Science'

60 POSTS

  1. 2007.07.24 홈페이지 업로드 프로그램 3
  2. 2007.07.05 프로젝트 3
  3. 2007.07.03 8086 Register 4
  4. 2007.06.29 보내기 메뉴 (send to)
  5. 2007.06.29 프로젝트 시작!

홈페이지 업로드 프로그램

Posted 2007. 7. 24. 17:58, Filed under: Study/Computer Science

인턴들의 최대 노가다성 작업 - 바이러스 정보 홈페이지에 올리기

그 동안 하루에 보통 한두시간쯤은 투자해야하고 이제 우리가 너무 많이 모아놔서
감당하기가 어려워져가는 이 단순 작업을 자동화하기 위한 툴을 개발하기로 했다 ㅋ

인턴 프로젝트 - 악성코드 분석을 위한 hex editor- 에서 내가 맡은 부분에 소스가 있어서 -_-;;
할 일이 비교적 없는 관계로 소스 분석이나 하고 놀던 와중에 - Intel instruction stucture 관련 공부-
가능하면 우리가 하는 단순 노동들을 자동화해주는 툴을 많이 만들어놓고 가야겠다는 생각이 들었다.
(그래서 이미 하나 간단하게 만든 툴도 있다.  재성이 형이 아침마다 매일하는 엔진 추가 요청 샘플을
자동으로 추가해주는 프로그램)

다음 기수부터 본격적으로 샘플 분석을 시켜보고 안되면 그 담에 인턴을 줄인다는 말이 나와서
가능하면 단순노동을 줄이고 공부를 많이 해서 보란듯이 잘 했으면 좋겠다.
남는 시간에 놀면 낭패 -_-;;

사실 지금 샘플 분석은 분석 결과가 엔진에 반영된다는 책임 문제랑 이것저것 얽혀있어서
단순히 실력부족에 관련한 문제는 아니지만 우리가 할 일이 확실히 자동화되고 많이 공부한다면 ㅋ
그게 인턴이나 정직원 모두에게 좋은 방향이니까 점점 변해갔으면 좋겠다
괜히 남좋은 일 시키는 거 같지만 뭐 그러면서 조금씩 나아지겠지-

여튼 그래서 그런 프로그램을 만들려고 시작했다는거.
첫번째 문제는 내 아이디와 비밀 번호를 가지고 로그인된 세션을 얻는 것.
요며칠 붙들고 고생했더니 어찌저찌 해서 성공했다 ㅋ

네트웍 패킷을 캡쳐해서 http 헤더에 형식에 맞춰서 보여주는 paros 라는 프로그램을 사용해서
로그인할 때 발생하는 http 요청을 보고 MFC의 Http 관련 클래스를 이용해서 테스트해본 결과 성공.
(paros는 java로 작성된 프로그램으로 로컬호스트를 프록시로 설정하여 패킷을 캡쳐한 후 보여준다)

로그인 성공 후에 response가 redirection으로 오는데 이게 익스플로러에서는 처리가 되는데
테스트 프로그램에서는 안되서 한참 헤맸다.

알아보니까  redirection은 http  요청을 한 프로그램에게 다시한번 get 방식으로 요청을 하라고
응답하는 것이라고 해서  try- catch로 예외를 잡아서 무시해버린 후, 다시 get으로 해당 페이지를
요청하는 걸로 해결했다. 무식한 방법이지만 다른 방법을 모르겠다..-_ㅠ

단순히 ok 버튼을 누르면 실행되는 형식이라 goto문도 쓰이고 굉장히 조잡하지만-
낼 부터 차근히 정리하면 이번 주 안에 베타버전을 만들 수 있을 것 같다 (희망사항)
일단 게임핵 같은 간단한 샘플 정보 자동 업로드를 만든 후에 우리가 쓰고 있는 인턴에이드 프로그램을
깔끔하게 정리해서 덧붙여야지.

특정 조건에 맞는 파일을 복사해주는 클래스나 웹페이지 요청에 관련한 클래스를 하나쯤 만들어두면
단순한 인턴 업무를 대신해줄 프로그램을 만드는데 큰 도움이 될 것 같다.

그리고 매번 간단한 프로그램이라 다이얼로그 기반으로만 하다보니 MFC의 기본이 부족하단 생각도 든다.
책 보면서 제대로 한번 파봐야겠다.

 

Response : ,

프로젝트

Posted 2007. 7. 5. 14:58, Filed under: Study/Computer Science
어제 우리 인턴들이 진행하는 프로젝트의 PM을 맡으신 이선임님이랑 회의를 했는데.
우리가 만들기로 했던 프로그램들을 어떻게 설계하고 역할을 나누어서 코딩을 할지, 그리고 분할된 모듈 사이에서 인터페이스나 뭐 그런걸 어떻게 할지 이야기를 했다.

학교 다닐 때 프로젝트를 하면 처음에는 함께 계획을 하지만 어느 순간부터는 조금 실력이 뛰어난 애들이 그냥 혼자 다하는 경우가 많지 않았느냐고 물어보셨는데 우리 모두가 그런 경험이 있다고 대답했다ㅋ (지난 학기 OS 프로젝트가 떠오른다..;)

그런 경우에는 보통 잘 참석안하고 코딩 실력이 부족한 사람을 일방적으로 비난하는 경우가 많은데 이것은 프로그래머의 입장에서만 생각한 거고, 프로젝트 매니저의 관점으로 본다면 처음부터 기획과 설계, 역할 분담이 잘못된 프로젝트 자체의 실패라는 것이다.

프로젝트 진행의 여러가지 면을 처음부터 고려하지 않았기 때문에 생긴 생산성 하락의 책임을 한 사람이 져서는 안된다. 애초에 충분히 이야기가 이루어져 상대방이 작성한 코드 및 자신이 작성한 코드에 대해 서로 이해하고 있다면 모두의 역량을 최대한으로 발휘하여 효율적인 진행이 가능하다는 것.

흔히 충분한 기획없이 혼자서 프로젝트를 주도하다 보면 자신만의 코드를 작성하게 되고 나중에는 다른 사람들이 코드의 이해는 커녕 프로세스의 흐름을 이해하는 것 조차도 힘들기 때문에 결국에는 손조차 대지 못하고 미안한 마음으로 구경만 하게 되는 경우가 발생하게 된다. 또한 사전 계획이 없기 때문에 프로그램은 수정이나 관리, 개선이 쉽지 않다. 무엇보다 다른 사람들이 도울 수 없다는게 결정적인 단점이 된다.

철저하게 사전에 기획하고 적절한 역할 분담을 통해 효율성을 높이고, 체계적으로 소스코드를 관리할 것!

-------

다음 학기 부터는 좀 잘해보자 ㅋ
혼자 붙들고 끙끙대면서 "내가 왜 이러고 있나, 저 자식은 뭔데 아무 것도 안하고 묻어가나" 이런 생각은 버리자.
그리고 묻어가는 존재가 되지도 말자.

내가 할 수 있는 일은 하는 것. 그리고 내가 할 수 있는 것만 하는 것.
다른 사람과 같이 프로그램을 작성하는 것 역시 중요하다.
언제까지나 혼자 붙들고 있을 수도, 묻어가기만 할 수도 없으니까 ㅋ

한 사람에게 의존도가 높으면 그만큼 리스크도 큰 법.
충분한 계획 아래 체계적으로 진행할 것.

그렇지만 막상 프로젝트 때가 되면 어찌 될지 모른다는 거 -_-;

------------

전에 이야기했던 것처럼 UI 부분과 메인은 혁민이가 짜고 재성이형과 나, 지형이가 거기에 사용하는 모듈을 작성하기로 했다.
대신에 화면에 표시한다거나 하는 UI 관련 코드에 대해서는 모두 다 이해하고 있기로.

난 디스어셈블 부분을 맡아서 구현하기로 했고, 기존에 존재하는 디스어셈블 소스를 분석하는 것부터 시작을 하기로 했다. 사실, 굉장히 복잡하고  노가다성이 짙어서 별로 새로 짤 생각이 없기 때문에 기존의 간단한 오픈 소스코드를 바탕으로 코드를 이해하고 활용하는 방향으로 할 생각이다.

매일 조금씩이라도 시간을 내서 프로젝트를 진행하고 PM에게 진행상황을 알려야한다.
그리고 SVN을 통해서 소스코드를 투명하게 관리하며,
서로에게 디펜던시가 있는 코드가 거의 없으므로 나누어진 모듈 별로 작성하여 붙이는 걸로 결정-

부디 매끄럽게 잘 진행되길-

-----------

동시에 해야할 일이 여러 개가 있을 때 시간을 관리하는 것이 결코 만만치 않다.
전에 처음 입사했을 때, 한가지 시키면 하나만 계속 파고 그런 식으로 하는 것은 별로 도움이 되지 않는다고 충고를 들었었다.
자기 시간을 효율적으로 쪼개서 맡은 업무를 잘 끌고 가는 것이 진정한 능력이라고 생각한다.
Response : ,

8086 Register

Posted 2007. 7. 3. 12:10, Filed under: Study/Computer Science
 

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
Response : ,

보내기 메뉴 (send to)

Posted 2007. 6. 29. 15:42, Filed under: Study/Computer Science

윈도우 탐색기 메뉴에 보면 보내기(SentTo) 라는게 있는데 기본적으로 내 문서, 바탕화면 바로가기, e-mail 등이 있다.

하나의 폴더로 지정해서 자료를 모으거나 하는 경우에 하나하나 복사하는게 굉장히 귀찮은데 보내기를 이용하면 쉽게 할 수있다.  게다가 한꺼번에 보내기도 된다는거~

Documents and Settings\Administrator\SendTo\ 폴더에 특정 폴더의 바로가기 아이콘을 추가해두면 보내기 메뉴를 이용해서 그 폴더로 파일을 복사가능하다.

그리고 파일 이름을 파라미터로 받아서 실행되는 프로그램의 경우에도 바로가기를 등록한 후에 해당 파일을 선택한 상태에서 보내기를 이용해서 프로그램을 실행하면 된다.

VirusTotal 같은 경우가 이런 식으로 실행된다.

MS 에서 제공하는 튜토리얼

Response : ,

프로젝트 시작!

Posted 2007. 6. 29. 10:43, Filed under: Study/Computer Science

인턴이 끝나는 날까지 딱 2달 을 남겨두고(벌써!) 안랩에 우리가 왔다갔다는 흔적을 남기기 위해 ㅋ

프로그래밍 경험도 쌓을 수 있는 좋은 기회가 될 것 같다. 이상철 선임님이 PM으로 참가하시기 때메 뭔가 좋은 경험이 될 것같다. 프로젝트 관리나 스케쥴 관리, 코드 관리, 리뷰 등등 뭔가 체계가 잡힐 듯)

처음 입사했을 때부터 뭔가 하나 하자하자 말만 하면서 손은 못대고 있었는데 우리의 우수인턴 코딩쟁이 권혁민(다른건 안하고 줄창 코딩만 하고 있다 ㅋㅋ) 군의 제의로 시작하게 됐다.

이제 시간도 얼마 안남아서 더이상 미룰 수는 없다!

우리끼리 살짝 회의를 한 결과 헥사 에디터를 만들자. 해서 이선임님한테 이야기를 하고 부족한 부분을 가르쳐주십사 했다.
그렇게 진행이 되는 듯 했으나 혁민이의 충격 발언
"전에 프로젝트를 하면서 PE 파일 관련한 클래스를 모두 만들어 놓았다고 할게 없어요. 다른걸 해요"

다른 프로젝트 할까..;;

그런데 이 선임님께서 단순한 헥사 에디터가 아닌 스케일이 큰(!) 프로젝트로 바꿔버리셨다;

분석가들이 악성코드를 분석하기 위해서 파일에 관련된 여러 가지 정보를 얻을 때 사용하는 많은 툴들이 있는데 이러한 툴들에서 제공하는 기능을 통합하여 제공할 수 있는 프로그램을 목표로 정직원 분들을 상대로 기능 요청 조사를 하신 것.


 [기본 기능]
- HE.COM 파일에 있는 기능들(두개의 파일 비교, XOR , ADD , SUB 등등 블럭 연산)
- PE 파일 View, Edit 기능
- RVA, RAW 값으로 특정 파일 이동 기능..
- 문자열 검색기능(와일드 카드 , ?? 기능)..


기본 기능을 바탕으로 해서 설문 조사 및 회의 결과 우리가 구현해야할 기능을 비롯해서 벤치마킹 할 수 있는 많은 툴들을 제공 받았다.

[추가 기능]
- 2개의 파일 PE Header 비교(쉽게 구별 가능하게 보여주면 좋겠죠)
- Binary 짜르기/복사/붙여넣기/저장(편집이죠~)
- 강력한 Binary 검색
- 강력한 Binary 비교 ( 앞부분이 달라도 뒷부분이 같으면 같은내용 보여주기~)


 

[참고할 프로그램]
Hiew
Fairdell HexCmp
CFF

그리고 나서 역할 분담!
학교에서 이런 저런 프로젝트를 했지만 이렇게 역할 분담을 할 만큼 잘 모듈화시키지도 못했고 거의 제일 잘하는 애가 혼자 코딩하는 식이어서 이렇게 나눠서 하는게 어색하다.
다른 사람들도 거의 그랬다고 하는데 과연 잘될까.

재성이 형이 파일 읽어오기와 계산기
나는 디스어셈블리 부분
혁민이는 UI랑 메인 창
지형이는 text로 출력(bintext 처럼)

을 맡아서 하기로 했다.

Response : ,

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : ··· : 12 : Next »

Recent Posts

Recent Comments

Recent Trackbacks

Total hit (Today , Yesterday )

Admin Write Post