2013의 게시물 표시

오늘 아침 배달된 악성코드

이미지
제목: "오늘 아침 서울역에서 포착된 안타까운 사진이랍니다." 배포주소: 60.156.117.115/xz/c.apk 악성코드는 xz/c.apk를 입력해주면 획득할수 있다. 디컴파일해서 메니페스트만 봐도 최근 유행하는 코드처럼 sms 를 탈취하기 위해 리시버를 등록합니다. 그리고, 국민은행, 농협, 우리은행 등으로 위장한 앱을 다운로드 받습니다. 저장된 전화번호 목록으로 위 메시지를 전송합니다.

11번가 고객센터 모바일 상담

이미지
잘 읽어보면 "판매자와 통화 다 끝나고 교환하기로.." 라고 써있다.  질문의 요점이 파악이 안될만큼 어렵게 글을 썻나?? "더욱 더 노력하는 11번가가 되겠습니다."  정말 어이없는 답변에 실소만 나온다.

11번가 고객센터

11번가 앱에는 "구매확정" 버튼만 존재한다. 교환/환불은 눈씻고 찾아봐도없다. 고객센터 전화하면 기다리는사람이 많으니 기다리라고한다. 한참기다리면 오래기다렸다고 전화 끊어버린다. 어이가없다. 모바일 댓글상담 접수했다고 떴는데 답변은 없다. 중계 수수료만 받아먹으면 끝인가? 상담하는 직원들만 불쌍하다. 시스템이 개판이니 직원도 판매자도 구매고객도 괴롭다. 난 이제 11번가 안티다.

android setuid()

NDK를 이용해 setuid를 실행해보면 당연히 그냥은 안된다. 권한을 변경해주어야한다. http://en.wikipedia.org/wiki/Setuid 아래는 테스트 코드 int main(int argc,char *argv[]){ int id = 999; printf("hello world\n"); id = getuid(); printf("getuid(): %d , euid: %d \n",id, geteuid()); setuid(0); setgid(0); id=getuid(); printf("getuid() after setuid(): %d , euid: %d \n",id, geteuid()); return 0; } 위 코드를 NDK로 컴파일하고 디바이스에 넣고 실행해보자. 실행파일을 넣고 adb push hello /data/local/tmp 접속한다. adb shell 권한을 변경하고, 실행해보자 # cd /data/local/tmp # su # chmod 6755 hello # exit # ./hello hello world getuid(): 2000 , euid: 2000 getuid() after setuid(): 2000 , euid: 2000 # 안된다. 구글링 확인해보니 실행위치에도 관계가 있다. root권한으로 /system을 remount한다음 cat /data/local/tmp/hello > /system/xbin/hello 해서 복사한 다음 권한과 소유권을 변경하면 정상적으로 동작한다.

extX 파일시스템 블록사이즈에 따른 그룹 디스크립터 테이블의 시작위치

Ext(ext2, ext3, ext4) Filesystem 에서 Group Descriptor Table의 시작위치 First address of Group Descriptor Table on ExtX Filesystem ext 파일시스템의 모든 블록의 크기는 동일하다. ext 파일시스템의 처음 1024 블록은 0x00로 채워져 있는 예약영역이다. Block Size가 얼마이든 Superblock은 1024바이트 다음에 나타난다. ext 파일시스템을 마운트할때 블록의 크기를 알 수 없기에 1024로 가정하고 1024바이트의 예약영역다음 1024바이트를 읽어 슈퍼블록으로 해석한다. 그렇다면, 슈퍼블록다음에 나타날 그룹 디스크립터 테이블(Group Descriptor Table)은 어디서 나타날까? block size가 1KB, 2KB 일때 맨 처음부터 2048바이트 다음 위치부터 나타난다. block size가 4KB 일때 맨 처음부터 4096 바이트 다음 위치부터 나타난다. 즉 block size가 1KB, 2KB일때는 슈퍼블록이 나타난다음 바로 그룹 디스크립터 테이블이 나타나고, 4KB 일때는 2KB의 공간이 비어있고 나타나게 된다. 아래는 슈퍼블록의 구조체이다. /* * Structure of the super block */ struct ext4_super_block { /*00*/ __le32 s_inodes_count; /* Inodes count */ __le32 s_blocks_count_lo; /* Blocks count */ __le32 s_r_blocks_count_lo; /* Reserved blocks count */ __le32 s_free_blocks_count_lo; /* Free blocks count */ /*10*/ __le32 s_free_inodes_count; /* Free

Android NDK

Android Native Development Kit Java에서 C나 C++로 만든 Native 코드를 호출하기 위한 방법 중 JNI ( Java Native Interface )라고 있다. 안드로이드에서는 Native 코드를 사용하기 위해 NDK를 제공한다. 일반적인 순서는 1. Java로 Android 코드 작성(호출하고자 하는 native 함수의 signature 작성) 2. 위 자바코드를 컴파일 3. 결과물로 나온 *.class 파일을 javah 를 이용해 header 파일 생성 4. 생성된 *.h 를 이용해 *.c 나 *.cpp 로 native 코드 작성. 5. Android.mk 작성 6. ndk 에 있는 ndk-build 를 실행 7. *.so 를 포함해서 패키징(*.apk) 8. 디바이스에 설치 및 실행 그럼, 이제 환경을 구성하자. 자바를 설치한다. 구글에서 Android SDK를 검색하면 첫번째 검색되는 링크를 클릭하여 SDK를 다운로드 한다. 다운로드한 파일을 적당한 곳에 푼다.(c: 드라이브 d: 드라이브 linux라면 /home 아래든) 여기선 c:아래 압축을 풀어놓는다. 구글에서 ndk를 검색하면 제일 처음 검색되는 구글 개발자 사이트에서 ndk를 받을수 있다. 여기서 자신의 플랫폼에 맞는 kit을 다운받아야 한다. 적당한 곳에 압축을 푼다.(마찬가지로 c:에 압축을 해제) 이제 컴파일러가 필요하다. 대부분 linux를 사용하는 user는 gcc를 설치했으리라 생각한다. 윈도우에서는 cygwin 설치를 추천한다. cygwin을 다운로드하고 develop 부분을 그냥 다 설치한다.(귀차니즘) 환경변수에서 NDK홈을 지정해준다. 보통 윈도우에서는 시스템-고급 시스템 설정(시스템 속성)-환경변수 에서 설정한다. NDK=c:\android-ndk-r8e cygwin 을 실행하여 프롬프트에서 echo $NDK 또는 $NDK/ndk-build  해서 잘 설정 되었는지 확

extX에서 데이터를 숨기는 방법

1. first 1K of extX filesystem is unused.  2. reserved area of description block 3. redundancy block of super block

태아보험 참고

태아보험 참고 http://direct-bohum.com/ca_sub.php?ca=tea&num=217224 하위 파트너 http://adday.co.kr/?num=217224