본문 바로가기

IT

안드로이드 apk 디컴파일(decompile) 하기 /* written by kaspy (kaspyx@gmail.com)*/ 안드로이드(android) 에서 사용되는 어플(apk)을 디컴파일(decompile) 하는 방법에 대해 다루어 보았습니다. 안드로이드의 실행파일은 자바로 컴파일 되며, apk 확장자로 압축되어 바이트 코드로 배포 되기 때문에 이를 디컴파일 할수 있습니다.기본 환경은 컴퓨터에 java가 설치되어 있어야 합니다. 안드로이드 어플은 설치를 통해서 사용되며, 설치 전에 apk 확장자 형태로 배포 됩니다. 우선 제가 쓰고있는 안드로이드 어플 중 임의의 apk를 가지고 디컴파일을 해보겠습니다. apk 파일을 내 컴퓨터의 임의의 디렉토리에 복사하고, 확장자만 zip형식으로 바꿔서 열면 압축된 내용과 형태를 아래와 같이 볼 수 있습니다. 첨부한 .. 더보기
윈도우(Windows) 파일 접근 API /* written by kaspy (kaspyx@gmail.com)*/ 이번 포스팅에서는 윈도우 (NTFS) 상에서 파일 조작과 관련된 API를 다루도록 하겠습니다. * 윈도우(Windows) 에서 제공하는 파일 읽기/쓰기용 API 설정 값설명CREATE_NEW신규 파일을 생성한다. 같은 파일명이 있을 경우에는 에러CREATE_ALWAYS같은 파일명이 있어서 새로 생성하면 기존 파일의 내용은 사라짐OPEN_EXISTING기존 파일을 연다. 존재하지 않으면 에러OPEN_ALWAYS기존 파일을 연다. 존재하지 않으면 새로 생성TRUNCATE_EXISTING기존 파일을 연다. 기존 파일의 내용을 소거한다. 여섯번째 인자에는 파일 속성과 플래그를 지정한다. 지정가능한 속성에는 '숨겨진파일'이나 '읽기 전용'등.. 더보기
윈도우(Windows) 파일 처리함수 - 바이너리(이진) 모드, 텍스트 모드 /* written by kaspy (kaspyx@gmail.com)*/ 파일은 프로그램이 사용할 데이터를 하드 디스크에 저장해두는 수단이며, 프로그램은 데이터를 메모리에 올려놓고 처리하지만 전원이 끄면 사라진다. 이 데이터를 보존하기 위해서는 하드디스크나 USB등에 저장해두어야한다. * C/C++ 표준 라이브러리에서 제공하는 대표적인 파일 조작 함수 더보기
파이썬 웹서버 모듈(BaseHTTPServer, SimpleHTTPServer) 사용하기 /* written by kaspy (kaspyx@gmail.com)*/ 파이썬(Python)을 사용해서 간단하게 웹서버를 구축할수 있습니다. 이번 포스팅에서는 파이썬을 이용해서 웹서버를 구축하는 내용을 다루도록 하겠습니다. * 웹서버용 파이썬 라이브러리 모듈(세번째 CGIHTTServer 모듈은 다음 포스팅에 다루도록한다.) python -m SimpleHTTPServer 8888 #아래는 동일한 명령어 python -c 'import SimpleHTTPServer; SimpleHTTPServer.test()' 8888 파이썬 명령어를 실행한 모습웹서버에 접속했을때 모습* 참고 자료django로 배우는 쉽고 빠른 파이썬 웹프로그래밍 더보기
Java로 달력(Calendar) 구현하기 /* written by kaspy (kaspyx@gmail.com)*/ 아래는 Java로 달력을 구현한 소스코드이다. 2개파일로 나뉘었고, 주석에 자세한 설명을 해놨으니 복붙해서 봐도될듯하다.1980년 1월 1일(화요일)을 기준으로 지정해준 날짜까지(윤년 포함) 총합을 계산한다 그리고 7로 나눠서 요일을 구한다. 끝 Calender.java public class Calender { //미리 기준 연도와 , 기준월을 정해서 출력하는 방법을 선택함. int base_year = 1980; // 기준 연도 int base_month = 1; // 기준 월 입니다. 실제로는 1980년 1월 1을 기준으로 계산 int total_sum = 0; // 기준 년과 월에서 입력받은 날짜까지 총 일수를 여기에 저장 .. 더보기
C언어로 달력 구현하기 /* written by kaspy (kaspyx@gmail.com)*/ 아래는 C언어로 달력을 구현한 소스이다.1980년 1월 1일(화요일)을 기준으로 지정해준 날짜까지 총합을 계산한다 그리고 7로 나눠서 요일을 구해서 달력을 출력한다.미리 기준 연도와 , 기준월을 정해서 그날짜를 기준으로 달력을 출력하는 방법을 선택하여 구현하였다. 중요한건 윤달이 끼는 날때문에 조금 계산이 필요한데, 윤달을 판별하는 알고리즘은 http://blog.naver.com/bohe76?Redirect=Log&logNo=5588545 에서 참고 하였다. #include int base_year = 1980;int base_month = 1; unsigned int total_sum = 0; int month_table[12].. 더보기
파이썬 웹프로그래밍 - 이미지 다운로드 (urllib2, httplib) 소스 /* written by kaspy (kaspyx@gmail.com)*/ 파이썬은 코드가 간단하면서 어렵지않고 유용한 기능이 많다. 이번 포스팅에서는 파이썬에서 특정 웹사이트에 접속하여 이미지만 추출해서 다운로드하는 코드를 소개하겠다. 1. urllib2 모듈 예제 아래 코드는 네이버 웹사이트에 접속해서 그림 (img tag) URL을 보여주는 파이썬 코드이다. #!/usr/bin/env pythonfrom urllib2 import urlopenfrom HTMLParser import HTMLParser class ImageParser(HTMLParser): def handle_starttag(self, tag, attrs): if tag != 'img': return if not hasattr(sel.. 더보기
파이썬 웹프로그래밍 - 웹 모듈 urlparse 예제 /* written by kaspy (kaspyx@gmail.com)*/ * urlparse 모듈은 주로 웹클라이언트 단에서 사용되는 parser 모듈이다. 1. urlparse 모듈이 모듈은 URL의 분해, 조립, 변경 등을 처리하는 함수를 제공하며, parse한 결과를 리턴한다. from urlparse import urlparse result = urlparse("http://www.python.org:80:80/guido/python.html;philosophy?overall=3#n10") result ParseResult(scheme='http',netloc='www.python.org:80:80',path='/guido/python.html', params='philosophy', query=.. 더보기
Secant Method c언어로 구현하기 #include #include #define PI 3.1415926535897931#define e 2.71828 #define thshold 2 * pow(10,-4) double fx(double x){ return (7*sin(x) * pow(e,(-x)) -1);} void Secant_Method(double xl, double xu){ double a,b,fa,fb,p; double sol; int i=0; double eia=100; double eit; a = xl; b = xu; fa=fx(a); fb=fx(b); while(1) { p=b-fb*(b-a)/(fb-fa); eia = fabs((b-a)/b)*100; if(eia 더보기
False Position Method c언어로 구현하기 #include #include #define thshold 2 * pow(10,-4) double sinfx(double x){ return (x*x - sin(x));} void false_position(double xl, double xu){ int i; double q0, q1, q,p; double num = 40; double xr2; q0 = sinfx(xl); q1 = sinfx(xu); i = 1; p = xu - q1 * (xu - xl) / (q1 - q0); q = sinfx(p); double e0=100.0; printf("%d\t%lf\t%lf\t%lf\t%lf\n", i, xl,xu,p, e0); while(1) { p = xu - q1 * (xu - xl) / (q1 - .. 더보기