Android eclipse 디렉토리

Posted by nopsled
2014.10.28 17:34 프로그래밍

src : java 코드들이 들어있는 곳(source)

gen : 해당 프로젝트를 빌드하기 위한 자바 파일들이 참조되어 있는 곳

Android * : Android SDK

assets : 바이너리 파일

libs : 라이브러리 파일 (외부 라이브러리를 사용할땐 여기에 포함시킨다.)

res : 리소스 (그림, 레이아웃, XML 파일 등)

res/drawable-hdpi : 리소스 중에서 그림파일들이 들어갈 곳

** drawable : 안드로이드 장치의 해상도가 다양하기 떄문에 해상도에 따라 사용할 이미지를 분류해서 넣어놓기 위해 존재

layout : 레이아웃 XML이 들어있는 폴더로 activity_main.xml이 포함되어 있음.

menu : 메뉴 레이아웃 XML이 들어있음. (기본적으로 Settings 항목 하나가 있는 XML이 들어있음.)

values : 안드로이드 프로그램에서 사용할 값들을 저장한 XML들이 들어있음. (strings.xml에 Hello_World가 들어있음.)

values-v11, values-v14 : 안드로이드 버전 호환성을 위한 것들이 있음

AndroidManifest.xml : 안드로이드 프로젝트를 생성할때 설정한 값들이 들어있음.

이 댓글을 비밀 댓글로

오토핫키 한글 출력 로직

Posted by nopsled
2014.08.13 09:51 프로그래밍



string_dst = 안녕하세요.

Loop, % strlen(string_dst)/2

{

Tooltip, % substr(string_dst, 1, A_INDEX*2)

Sleep, 500

}

; 디버깅 결과

; MsgBox, 안

; MsgBox, 안녕

; MsgBox, 안녕하

; MsgBox, 안녕하세

; MsgBox, 안녕하세요

; MsgBox, 안녕하세요. 





string_dst = 안녕하세요.

count = 1

Loop, % strlen(string_dst)/2

{

Msgbox, % substr(string_dst, count, 2)

count+=2

} 

 ; 디버깅 결과

; MsgBox, 안

; MsgBox, 녕

; MsgBox, 하

; MsgBox, 세

; MsgBox, 요

; MsgBox, .



추가 내용 : 영문혼합안됨.


'프로그래밍' 카테고리의 다른 글

악성코드 자동분석관리 시스템 with telegram-cli, pytg  (0) 2014.12.09
Android eclipse 디렉토리  (0) 2014.10.28
오토핫키 한글 출력 로직  (0) 2014.08.13
Python 주민등록번호 검증  (0) 2014.05.06
AutoHotKey 파일 구하기  (0) 2014.04.01
php MD5  (0) 2014.03.30
이 댓글을 비밀 댓글로

Python 주민등록번호 검증

Posted by nopsled
2014.05.06 02:09 프로그래밍

1
2
3
4
5
6
7
8
9
kssn = raw_input("주민등록번호 : ")
logic = [2,3,4,5,6,7,8,9,2,3,4,5]
number = 0
for i in range(0, len(logic)):
    number += int(kssn[i]) * int(logic[i])
if 11-(number%11) == int(kssn[12]):
    print "이 주민등록번호는 유효한 주민등록번호 입니다."
else:
    print "이 주민등록번호는 유효하지 않은 주민등록번호 입니다."


'프로그래밍' 카테고리의 다른 글

Android eclipse 디렉토리  (0) 2014.10.28
오토핫키 한글 출력 로직  (0) 2014.08.13
Python 주민등록번호 검증  (0) 2014.05.06
AutoHotKey 파일 구하기  (0) 2014.04.01
php MD5  (0) 2014.03.30
Microsoft-IIS/6.0 webdav remote authentication bypass scanner v0.1  (0) 2014.03.28
이 댓글을 비밀 댓글로

AutoHotKey 파일 구하기

Posted by nopsled
2014.04.01 10:18 프로그래밍



스크립트

Loop, *.*,1,1

{

if A_LoopFileName != A_ScriptName

OutPutVar .= A_index . ". " . A_LoopFileName . "`n"

}

ClipBoard := OutPutVar

Tooltip, Done :D`nif you want use`, paste it

Sleep, 2000

Tooltip 


현재 디렉토리에 있는 파일들을 구한뒤 클립보드에 넣는 스크립트입니다.


디버깅 결과

1. a.ahk

2. a.bmp

3. a.jpg

4. a.png

5. a.txt

6. a.xlsx

; 위에 있는 내용이 클립보드에 복사되어 집니다.



이 댓글을 비밀 댓글로

php MD5

Posted by nopsled
2014.03.30 19:41 프로그래밍


<?php

$hash = md5("$_GET[str]");

echo "$hash";

?>

ex) 127.0.0.1/md5.php?str=abc



이 댓글을 비밀 댓글로

Microsoft-IIS/6.0 webdav remote authentication bypass scanner v0.1

Posted by nopsled
2014.03.28 21:27 프로그래밍

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import httplib, datetime, sys
 
def checkVuln(target, port):
    try:
        conn = httplib.HTTPConnection(target, port)
        
        # Checking Microsfot IIS/6.0 Dav vulnerability
        conn.request('OPTIONS''/')
        response = conn.getresponse()
 
        data = response.getheaders()
        dicData = {}
        for a in range(0, len(data)):
            dicData[data[a][0]] = data[a][1]
        try:
            if dicData['server'] == 'Microsoft-IIS/6.0':
                #print '[+] Target is vulnerable.\r\nTarget : ' + str(dicData['server'])
                try:
                    allow = dicData['allow'].replace(' ','').split(',')
                    for b in range(0, len(allow)):
                        if allow[b] == 'PUT':
                            time = datetime.datetime.now().strftime('%H:%M:%S')
                            print '[' + str(time) + '] [INFO]' + str(target) + ':' + str(port) + '  server is vulnerable!'
                    time = datetime.datetime.now().strftime('%H:%M:%S')
                    print '[' + str(time) + '] [CRITICAL] ' + str(target) + ':' + str(port) + ' is not vulnerable!'
                    return 'false'
                except:
                    time = datetime.datetime.now().strftime('%H:%M:%S')
                    print '[' + str(time) + '] [CRITICAL] ' + str(target) + ':' + str(port) + ' allow key error'
                    return 'false'
            else:
                time = datetime.datetime.now().strftime('%H:%M:%S')
                print '[' + str(time) + '] [CRITICAL] ' + str(target) + ':' + str(port) + ' is ' + str(dicData['server']) + '.'
                return 'false'
        except:
            time = datetime.datetime.now().strftime('%H:%M:%S')
            print '[' + str(time) + '] [CRITICAL] ' + str(target) + ':' + str(port) + ' Server not found.'
            return 'false'
    except:
        time = datetime.datetime.now().strftime('%H:%M:%S')
        print '[' + str(time) + '] [CRITICAL] ' + str(target) + ':' + str(port) + ' connection failed.'
        return 'false'
 
def injectFile(target, port, fname):
    print target, port, fname
 
# Check sys argv.
if len(sys.argv) is 1 or len(sys.argv) is not 4:
    name = sys.argv[0].split('\\')
    time = datetime.datetime.now().strftime('%H:%M:%S')
    print '[' +str(time)+ ']' + ' [INFO] Invaild Parameter. (' + str(name[len(name)-1]) + ' IP PORT Shell.asp|status)'
else:
    # Set host.
    url = sys.argv[1].split('.')
    print '\r\n\t\tMicrosoft-IIS/6.0 webdav vulnerable scanner. v0.1\r\n\t\thttp://nopsled.tistory.com\r\n'
    time = datetime.datetime.now().strftime('%H:%M:%S')
    print '[*] starting at ' + str(time) + '\r\n'
    if url[len(url)-1] == '*':
        for i in range(2, 255):
            target = str(url[0]) + '.' + str(url[1]) + '.' + str(url[2]) + '.' + str(i)
            result = checkVuln(target, sys.argv[2])
            if result == 'true':
                injectFile(sys.argv[1], sys.argv[2], sys.argv[3])
    else:
        result = checkVuln(sys.argv[1], sys.argv[2])
        if result == 'true':
            injectFile(sys.argv[1], sys.argv[2], sys.argv[3])
 
time = datetime.datetime.now().strftime('%H:%M:%S')
print '\r\n[*] shutting down at ' + str(time) + '\r\n'
 


view more



현재는 스캐닝만 구현되었습니다.


Exploit까지 시도하는 스크립트를 짜고 싶으시면 injectFile 함수에 추가하시면 됩니다.


아마 쉘업로드까지 완성할 것 같습니다.


스크립트는 공부용도 입니다. 실제서버에 사용하지 마세요.



이 댓글을 비밀 댓글로

[AutoHotKey Header] EUC-KR Encode, Decode.ahk

Posted by nopsled
2014.03.14 09:09 프로그래밍


 

EUC.ahk


EucEncode( p_data, p_reserved=true, p_encode=true )

{

   old_FormatInteger := A_FormatInteger

   SetFormat, Integer, hex


   unsafe =

      ( Join LTrim

         25000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20

         22233C3E5B5C5D5E607B7C7D7F808182838485868788898A8B8C8D8E8F9091929394

         95969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6

         B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8

         D9DADBDCDDDEDF7EE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9

         FAFBFCFDFEFF

      )

       

   if ( p_reserved )

      unsafe = %unsafe%24262B2C2F3A3B3D3F40

   

   if ( p_encode )

      loop, % StrLen( unsafe )//2

      {

         StringMid, token, unsafe, A_Index*2-1, 2

         StringReplace, p_data, p_data, % Chr( "0x" token ), `%%token%, all

      }

   else

      loop, % StrLen( unsafe )//2

      {

         StringMid, token, unsafe, A_Index*2-1, 2

         StringReplace, p_data, p_data, `%%token%, % Chr( "0x" token ), all

      }

       

   SetFormat, Integer, %old_FormatInteger%


   return, p_data

}


EucDecode( p_data )

{

   return, EucEncode( p_data, true, false )

}  

 

 Description : EUC-KR로 인코딩하거나 디코딩할때 사용하는 함수입니다.

 AHK_B, AHK_L 모두 사용 가능한 함수입니다.



    • 2014.03.29 17:17
    비밀댓글입니다
    • 파싱이라면 정확히 어떤걸 말씀하시는건가요?
      • 2014.03.30 12:57
      비밀댓글입니다
    • 음.. 좀 애매하네요.
      저같은 경우엔 Stringmid나 StringLeft, StringRight부터 하세요.
      그리고 StringReplace를 배워두시면 더 좋구요. ahk help파일도 은근 도움이 되니까 그거 확인하셔도 되구요.
      차근차근.. 정규식 같은 경우엔 나중에 해도 되니깐요. 정규식을 알아두시면 나중에는 stringmid나 stringleft stringright는 잘 안쓰게 될꺼에요.
      • 2014.03.30 21:13
      비밀댓글입니다
    • 음.. 정규식을 잘 모를땐 StringReplace를 사용합니다.
      string = here is my tistory
      여기서 my를 뽑고 싶은데 방법을 모른다고하면
      stringreplace,string,string,here,,All
      stringreplace,string,string,is,,All
      stringreplace,string,string,tistory,,All
      형식으로 써서 정규시을 대신합니다. 물론 코드가 더러워지기도 하구요.
      정규식하고 같이쓰면 파싱쪽이 재밌을꺼에요.
    • 초보
    • 2014.04.28 19:38 신고
    좋은 자료 감사드립니다.
    사용하는데 있어 궁금증이 있어서 댓글 남겨봅니다.
    해당 스크립트를 실행시키면 아래와 같은 오류메세지가 발생하는데 어떻게 해결해야할까요?
    제가 사용하는 버전은 Autohotkey v1.1.14.04 (Unicode 64-bit)입니다.

    ---------------------------
    EUC.ahk
    ---------------------------
    Error: Call to nonexistent function.

    Specifically: EncodeURL( p_data, true, false )

    Line#
    028: StringMid,token,unsafe,A_Index*2-1,2
    029: StringReplace,p_data,p_data,%%token%,Chr( "0x" token ),all
    030: }
    032: SetFormat,Integer,%old_FormatInteger%
    034: Return,p_data
    035: }
    038: {
    ---> 039: Return,EncodeURL( p_data, true, false )
    040: }
    041: Exit

    The program will exit.
    ---------------------------
    확인
    ---------------------------

    • 안녕하세요. ^^

      에러메시지를 확인해보니 39번째 라인에서 오류가 뜨고 이유를 알아보니 함수가 없다고 나오길래 알고보니 프로그래밍을 할때 잘못했었습니다..
      39번째 라인에 있는 return, EncodeURL( p_data, true, false )을
      return, EucEncode( p_data, true, false )로 바꿔주시면 정상적으로 디버깅이 될껍니다.
      감사합니다.
      • 초보
      • 2014.04.29 11:59 신고
      말씀해주신대로 변경하니 정상적으로 실행됐습니다! ^^
      그런데 해당 스크립트를 이용해 할아버지라는 단어를 테스트해보니 이상한 결과가 나왔습니다.
      어떤 문제인지 알 수 있을까요?


      [인코딩]할아버지 -> 할아버지
      [디코딩]%c7%d2%be%c6%b9%f6%c1%f6 -> ÇҾƹöÁö
    • #include EUC.ahk
      String := EucEncode("할아버지")
      MsgBox, % EucDecode(String)
      MsgBox, % EucDecode("%c7%d2%be%c6%b9%f6%c1%f6")
      ; Tested AHK_L with ANSI

      테스트 해보았더니 정상적으로 디코딩되었습니다.
      *.ahk 파일의 인코딩 형식이 UTF-8로 되어 있는지 확인하시기 바랍니다.
      그래도 안된다면 코딩한거 올려주시면 한번 봐드리겠습니다.
      • 초보
      • 2014.04.29 14:23 신고
      해결되었습니다!
      Autohotkey를 ANSI버전으로 재설치하니 정상적으로 출력됩니다.
      Unicode버전에선 댓글 달아주신 스크립트도 동일한 문제가 발생했었습니다.
      잘 모르는 초보 답변에도 친절하게 답변해주셔서 정말 감사드립니다.
      좋은 하루되세요~ ^^
    • 저도 오토핫키 처음 배우던 시절이 있었기 때문에..^^
      모르는게 있으시다면 또 질문해주세요. 좋은 하루되세요.^^
    • 2015.02.24 05:27
    비밀댓글입니다
    • 안녕하세요^^
      AutoHotKey B버전 사용하시는 건가요? L버전에서 winhttp 내장 라이브러리로 지원을 하고 있고 유니코드 형태로 동작하는데 그걸 써보세요.
      저도 예전에 고민하고 고민하다가 해봤는데 됬는데 지금은 모르겠네요.
      사이트 관리 권한이 있으시다면 페이지 인코딩 방식을 바꿔주시면 될 것 같기도하네요.
      감사합니다.
이 댓글을 비밀 댓글로

[AutoHotKey Header] UTF8Encode, UTF8Decode.ahk

Posted by nopsled
2014.03.14 09:05 프로그래밍



UTF8.ahk

 

UTF8encode(Str, Enc = "UTF-8")

{

    StrPutVar(Str, Var, Enc)

    f := A_FormatInteger

    SetFormat, IntegerFast, H

    Loop

    {

        Code := NumGet(Var, A_Index - 1, "UChar")

        If (!Code)

            Break

        If (Code = 0x21

            || Code = 0x27 || Code = 0x28

            || Code = 0x29 || Code = 0x2A

            || Code = 0x2D || Code = 0x2E

            || Code >= 0x30 && Code <= 0x39 ; 0-9

            || Code >= 0x41 && Code <= 0x5A ; A-Z

            || Code = 0x5F || Code = 0x7E

            || Code >= 0x61 && Code <= 0x7A) ; a-z

            Encoded .= Chr(Code)

        Else

            Encoded .= "%" . SubStr(Code + 0x100, 4)

    }

    SetFormat, IntegerFast, %f%

    Return, Encoded

}

 


UTF8Decode(Str, Enc = "UTF-8")

{

    Loop

    {

        If (!RegExMatch(Str, "i)(?:%[0-9a-f]{2})+", Code))

            Break

        VarSetCapacity(Var, StrLen(Code) / 3, 0)

        StringTrimLeft, Code, Code, 1

        Loop, Parse, Code, `%

            NumPut("0x" . A_LoopField, Var, A_Index - 1, "UChar")

        StringReplace, Str, Str, `%%Code%, % StrGet(&Var, Enc), All

    }

    Return, Str

}

 

 

StrPutVar(Str, ByRef Var, Enc = "")

{

    Size := StrPut(Str, Enc) * (Enc = "UTF-16" || Enc = "CP1200" ? 2 : 1)

    VarSetCapacity(Var, Size, 0)

    Return, StrPut(Str, &Var, Enc)

}

 

 Description : UTF-8로 인코딩하거나 UTF-8을 디코딩하기 위한 함수입니다. AHK_B, AHK_L 모두 사용 가능한 함수입니다.



이 댓글을 비밀 댓글로

[AutoHotKey Header] MD5.ahk

Posted by nopsled
2014.03.14 08:46 프로그래밍


 

MD5.ahk


HashFromAddr(pData, len, algid, key=0)

{

  hProv := size := hHash := hash := ""

  ptr := (A_PtrSize) ? "ptr" : "uint"

  aw := (A_IsUnicode) ? "W" : "A"

  if (DllCall("advapi32\CryptAcquireContext" aw, ptr "*", hProv, ptr, 0, ptr, 0, "uint", 1, "uint", 0xF0000000))

  {

    if (DllCall("advapi32\CryptCreateHash", ptr, hProv, "uint", algid, "uint", key, "uint", 0, ptr "*", hHash))

    {

      if (DllCall("advapi32\CryptHashData", ptr, hHash, ptr, pData, "uint", len, "uint", 0))

      {

        if (DllCall("advapi32\CryptGetHashParam", ptr, hHash, "uint", 2, ptr, 0, "uint*", size, "uint", 0))

        {

          VarSetCapacity(bhash, size, 0)

          DllCall("advapi32\CryptGetHashParam", ptr, hHash, "uint", 2, ptr, &bhash, "uint*", size, "uint", 0)

        }

      }

      DllCall("advapi32\CryptDestroyHash", ptr, hHash)

    }

    DllCall("advapi32\CryptReleaseContext", ptr, hProv, "uint", 0)

  }

  int := A_FormatInteger

  SetFormat, Integer, h

  Loop, % size

  {

    v := substr(NumGet(bhash, A_Index-1, "uchar") "", 3)

    while (strlen(v)<2)

      v := "0" v

    hash .= v

  }

  SetFormat, Integer, % int

  return hash

}

 

 

HashFromString(string, algid, key=0)

{

  len := strlen(string)

  if (A_IsUnicode)

  {

    VarSetCapacity(data, len)

    StrPut := "StrPut"

    %StrPut%(string, &data, len, "cp0")

    return HashFromAddr(&data, len, algid, key)

  }

  data := string

  return HashFromAddr(&data, len, algid, key)

}

 

MD5(string)

{

  return HashFromString(string, 0x8003)

}

 

 Description : MD5 암호화를 하기위한 AHK 헤더 스크립트 입니다.



이 댓글을 비밀 댓글로

[AutoHotKey Header] COM.ahk

Posted by nopsled
2014.03.14 08:26 프로그래밍


 

COM.ahk


 




스크립트가 매우 길므로 본문에 쓰진 않았습니다.






 Description : AHK_B, AHK_L에서 사용 할 수 있으며 Winhttp에 이용됩니다.

 대부분 "COM 라이브러리" 라고도 하며, L버전에서는 내장함수가 나왔으므로 잘 사용하진 않습니다.




이 댓글을 비밀 댓글로