devflow.kr@:~#

[vb.net] Base64 Encode Decode (인코딩, 디코딩)

VB

네트워크라던지 웹프로그래밍할때 많이 사용하는 base64인코딩과 디코딩을 하는방법입니다.

방법은 닷넷에서 제공하는 Converter를 사용합니다.



* 인코딩


            Dim nByte As Byte()

            nByte = Encoding.UTF8.GetBytes(텍스트)

            Convert.ToBase64String(nByte)


* 디코딩


            Dim nByte As Byte()

            nByte = Convert.FromBase64String(텍스트)

            Encoding.UTF8.GetString(nByte)




블로그 스킨의 오류를 수정하였습니다.

NEWS

본문폭이 가로폭보다 크지않으나 왼쪽 left가 10~20정도 먹기때문에 사진이 스킨가로폭을 뚫고 나가는 현상을 수정하였습니다.




도메인 devflow.kr 를 구입했습니다.

NEWS


Gretech Corporation | GomPlayer 2, 1, 32, 5063 (KOR) | 2011:07:01 19:48:44





2년치를 구매했습니다.


호스팅하거나, 개인적인 공부용도로 2.4에 구입완료하였습니다.


일단 기본호스트는 블로그로 연결하였습니다. ~~~

리그 오브 레전드 (League of Legends) 취약점 (Exploit)

REVERSING

조금 시대가 많이 지났긴하지만 여전히 인기가많은 게임인 리그 오브 레전드의 취약점을 알아보겠다.


특이하게 리오레는 adobe air를 이용하여 서버와 통신을 하게 되면 inet 과같은 IE 설정을 그대로 사용하게 된다.


이를 이용하여 IE에서 프록시를 설정해주고,  로그인할 때 Paros로 Trap 하면 아래와 같은 내용이 나온다.


POST https://검열 HTTP/1.1

Referer: app:/LolClient.swf/[[DYNAMIC]]/8

Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, text/css, image/png, image/jpeg, image/gif;q=0.8, application/x-shockwave-flash, video/mp4;q=0.9, flv-application/octet-stream;q=0.8, video/x-flv;q=0.7, audio/mp4, application/futuresplash, */*;q=0.5

Content-Type: application/x-www-form-urlencoded

Content-Length: 47

x-flash-version: 11,1,102,58

User-Agent: Mozilla/5.0 (Windows; U; ko-KR) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/3.1


payload=user%3D아이디%2Cpassword%3D패스워드


위와 같이 https 라지만 곧바로 노출이 된다. 이를 이용하여 로그인시 아이디와 패스워드를 가져올 수 있게된다.


리오레가 설치된 폴더인 Riot Games\League of Legends KR 에서 


RADS\projects\lol_air_client_config_kr\releases\0.0.0.10\deploy라는 폴더에는


lol.properties 라는 파일이 있는데. 이 파일안에는 


계정인증과 비롯한 각종 리오레 인증서버의 주소가 저장되어있다.


여기서 서버주소인 lq_uri를 다른 서버로 바꾸어 우회해서 아이디와 비밀번호를 가져온 후, 


그대로 본서버(원래 인증서버)로 다시 연결 시켜주면 사용자 모르게 아이디와 비밀번호를 가져올 수 있다.




이글은 2012 - 6 - 20 기준으로 작성된 취약점입니다.

Windows 8 지원 크롬(Chrome) 메트로 릴리즈

WINDOWS







드디어 IE밖에 작동안하던 개발자용 윈도우8 에 현재 인기가 많은 크롬브라우저가 베타로 릴리즈 되었습니다.


그러고 보니 만든다고 한지 얼마안되거같은데, 금방만들어주네요.. 구글 짜응.


일단 윈도우8 RP(Windows 8 Release Preview)에서만 작동합니다. 저도 아직 안깔아봐서 모르겠구요.


단지 x86 프로세서 기반 윈도8 환경에서만 실행되어 구글은 ARM 기반 윈도RT 메트로 모드를 지원하지 않을 전망이라고 합니다...



http://dev.chromium.org/getting-involved/dev-channel


애드박스를 재설정하였습니다.

NEWS

이전블로그에 아직도 설정되있는걸 몰랐네요.


다시 연결했습니다.



Flevator 사용방법

NEWS




















XML 자동 업로더기 XmLeader v1.0

APPS





플짤 (JWPlayer)를 만들때 연속적인 영상을 만들려면 XML 파일에 파일들을 순서대로 써줘야합니다.


간단하게 해주는 프로그램이며.


티스토리에 XML을 자동으로 업로드 해줍니다.


v1.1 (2012 05 30)

- 오타, 메인초기화 오류 수정


v1.0 (2012 05 30)

 - 릴리즈



xmLeader11.exe


[VB.NET] Upload File (파일 업로드) using HttpWebRequest

VB

Imports System.Net

Imports System.Text

Imports System.IO


Public Class HttpFileUploader


    Public Function uploadFile(ByVal containa As CookieContainer, ByVal uri As String, ByVal filePath As String, ByVal fileParameterName As String, ByVal contentType As String, ByVal otherParameters As Specialized.NameValueCollection) As String


        Dim boundary As String = "---------------------------" & DateTime.Now.Ticks.ToString("x")

        Dim newLine As String = System.Environment.NewLine

        Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(newLine & "--" & boundary & newLine)

        Dim request As Net.HttpWebRequest = Net.WebRequest.Create(uri)


        request.ContentType = "multipart/form-data; boundary=" & boundary

        request.Method = "POST"

        request.CookieContainer = containa

        request.AllowAutoRedirect = True

        request.Timeout = -1

        request.KeepAlive = True

        request.AllowWriteStreamBuffering = False


        Dim ms As New MemoryStream()

        Dim formDataTemplate As String = "Content-Disposition: form-data; name=""{0}""{1}{1}{2}"


        For Each key As String In otherParameters.Keys

            ms.Write(boundaryBytes, 0, boundaryBytes.Length)

            Dim formItem As String = String.Format(formDataTemplate, key, newLine, otherParameters(key))

            Dim formItemBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(formItem)

            ms.Write(formItemBytes, 0, formItemBytes.Length)

        Next key


        ms.Write(boundaryBytes, 0, boundaryBytes.Length)


        Dim headerTemplate As String = "Content-Disposition: form-data; name=""{0}""; filename=""{1}""{2}Content-Type: {3}{2}{2}"

        Dim header As String = String.Format(headerTemplate, fileParameterName, filePath, newLine, contentType)

        Dim headerBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(header)

        ms.Write(headerBytes, 0, headerBytes.Length)


        Dim length As Long = ms.Length

        length += New FileInfo(filePath).Length

        request.ContentLength = length


        Using requestStream As IO.Stream = request.GetRequestStream()

            Dim bheader() As Byte = ms.ToArray()

            requestStream.Write(bheader, 0, bheader.Length)

            Using fileStream As New IO.FileStream(filePath, IO.FileMode.Open, IO.FileAccess.Read)


                Dim buffer(4096) As Byte

                Dim bytesRead As Int32 = fileStream.Read(buffer, 0, buffer.Length)


                Do While (bytesRead > 0)

                    requestStream.Write(buffer, 0, bytesRead)

                    bytesRead = fileStream.Read(buffer, 0, buffer.Length)

                Loop

            End Using

            requestStream.Close()

        End Using


        Dim response As Net.WebResponse = Nothing

        Dim responseText = ""


        Try


            response = request.GetResponse()


            Using responseStream As IO.Stream = response.GetResponseStream()


                Using responseReader As New IO.StreamReader(responseStream)


                    responseText = responseReader.ReadToEnd()


                End Using


            End Using


        Catch exception As Net.WebException


            MsgBox(exception.Message)


        Finally


            response.Close()

            response = Nothing

            request = Nothing

        End Try


        Return responseText


    End Function


End Class

fan

C/C++

void fan(int fan_size) {
 int i,j,k,leftWing=fan_size,rightWing=0;
 for(i=0;i<fan_size;i++){
  rightWing++;
  for(j=0;j<i;j++)
   printf(" ");
  for(j=fan_size;j>i;j--)
   printf("*");
  for(j=fan_size; j>rightWing; j--)
   printf(" ");
  for(j=0;j<rightWing;j++)
   printf("*");
  printf("\n");
 }
 for(i=0;i<fan_size;i++){
  leftWing--;
  for(k=fan_size;k>fan_size-leftWing;k--)
   printf("*");
  for(k=0;k<fan_size-leftWing;k++)
   printf(" ");
  for(j=0;j<i;j++)
   printf("*");
  printf("\n");
 } 
}

플짤 셔틀 도우미 v1

HTML/CSS



## 이전 프로그램과는 다르게 신규에디터만 지원합니다. ##


티스토리에 파일 업로드 후 HTML 을 복사해 가장 큰 입력창에 붙여넣습니다.

블로그 주소를 휘어감아넣어주시고요.

XML로 저장을 눌러 파일을 저장합니다.

나온 파일을 각자 능력껏 업로드하신 후 사용하시면됩니다.


JW Player기준으로 작성되었습니다.


플짤셔틀도우미.exe



Oracle BEA - WebLogic 다운받기

WEBLOGIC




1.  http://www.oracle.com/us/corporate/Acquisitions/bea/index.html 에 접속합니다.


2. 상단 우측에 Sign in을 눌러 오라클 회원가입을 합니다.


3. 다시 돌아와 Latest BEA product downloads 링크를 클릭합니다.


4. 언어를 한국어로 바꾸어줍니다.


5. 다음페이지로 넘어가 수출동의서에 동의합니다. 


6. 미디어팩을 찾는데. 간단합니다. Oracle Bea Products 를 선택 후, 자신 윈도우/Unix에 맞는 플래폼을 선택합니다.


7. 실행을 눌러 검색된 파일 중 BEA WebLogic Media Pack for XXXXXX(자신의 플래폼)을 누룹니다.


8. 각종 파일목록이 나오는데 필요한 것을 고릅니다. (입문자는 BEA License Keys와 WebLogic Server  10.0 MP1이 필요합니다.)


9. 각 설치방법에 맞게 설치하거나 사용합니다.



도메인만들때 JDK 설정 주의사항

WEBLOGIC


Domain을 생성할 시 JDK을 선택할 수 있는데 각 WebLogic 별로 맞는 버전을

지정해줘야 잡스러운 오류가 발생하지않아요.


저의 같은 경우에는 WebLogic 10 MP1 을 설치해서 사용하려는데 JDK를 기본으로 잡힌 jre7로 잡아 주었더니 당연하게도


java.io.IOException: Compiler class: 'com.sun.tools.javac.Main', not found java.lang.ClassNotFoundException: com.sun.tools.javac.Main


라는 에러가 발생했습니다..


다시 JDK6 버전을 깔아서 설치후 도메인의 JAVAHOME을 jdk6로 잡아 해결했습니다.



반드시 JRE와 JDK를 구분해주세요.



호환성에 대해서는 아래 표를 참고해주세요.



WEBLOGIC VERSION 

JDK VERSION 

 8.15

 1.4

 8.16

 9.21

 1.5

 9.2MP2

 9.2MP3

 10

 10.0MP1 

 10.0MP2

 10.3

 1.6

 10.3.1

 10.3.3



P.S 오류내용

Unable to deploy EJB: mejb.jar from mejb.jar:






There are 1 nested errors:




java.io.IOException: Compiler class: 'com.sun.tools.javac.Main', not found java.lang.ClassNotFoundException: com.sun.tools.javac.Main


at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:391)


at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:295)


at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:303)


at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:343)


at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:533)


at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:500)


at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:476)


at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:798)


at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)


at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1234)


at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:372)


at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)


at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360)


at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)


at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)


at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46)


at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)


at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)


at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)


at weblogic.application.internal.BackgroundDeploymentService$1.next(BackgroundDeploymentService.java:164)


at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)


at weblogic.application.internal.BackgroundDeploymentService$BackgroundDeployAction.run(BackgroundDeploymentService.java:119)


at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)


at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)


at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)


스킨 리뉴얼중

NEWS









으아아아아아아








컨셉은 게임 사이트?ㅋㅋ




[php] 클라이언트의 ip얻기

PHP

$REMOTE_ADDR

[mIRC] 마비노기 영웅전 매니저 스크립트 v1.0

VB

 



업뎃같은건 없ㅋ음ㅋ

일단 utf8.dll이 필요함.

없는 사람이 있을거같아 첨부함

mIRC.exe있는 경로에 넣으면 되염


 



원래 !거래도 지원했는데. 저번에 패치되면서 사라짐 어엉ㅇ..


* #명령어 목록
*
*  !거래 [아이템명]    -  X 마영전시펄새기들이 지원중단

*
*
*  !표시 [숫자]          -  !거래 명령어 사용시 결과할 갯수
*
*  !어디 [아이템명]    -  아이템을 획득경로를 알려줌
*
*  !아이템 [아이템명] -  아이템 옵션과 거래가능유무를
*                                표시해줌
*
*  !적막 [플톡시세] [최고강시세]
*                             - 플톡적막노기 1시간
*                                했을때  순이익을 계산
*
*  !토큰 [개수]          - 가능한 최대 출항 횟수
*
*  !제작 [아이템명]    - 제작NPC, 의뢰비용, 재료
*                                아이템, 갯수를 알려줌
*
*  !제작 [아이템명]    - 제작NPC, 의뢰비용, 재료
*                                아이템, 갯수를 알려줌

[vb.net] JSON을 VB.NET에서 파싱하기

VB

보통 웹프로그래밍을 하다보면 json( JavaScript Object Notation )으로 찎찎 쏴준다..

믈론 mid, split left right instr replace 노가다로 구할 수 있으나, 귀찮음과 안정성을 위해 정석인 방법을 알아보았다,

csjson을 이용하면된다.

일단 http://sourceforge.net/projects/csjson/ 에서 다운로드할 수 있다.

msi 이니깐 적당히 설치하고 프로젝트 설정에서 System.Net.Json.dll을 찾아서 참조해주면된다.

설명은 귀찮으니, 예제를 보는것으로 대체하겠다

일단 strBuf에는 텍스트로된 JSON배열이 있다.


        Dim jcResults As New System.Net.Json.JsonTextParser
        Dim jResults As System.Net.Json.JsonObjectCollection


        jResults = jcResults.Parse(strBuf)

        jUser = jResults(2)

        For Each jTok As System.Net.Json.JsonObjectCollection In jUser

            frmMnu1.lstON.Items.Add(jTok(0).GetValue, jTok(1).GetValue, 0)

        Next참 쉽죠?

그런데 왜 자바에선 eval()과 앞뒤에 (, )를 넣어주는지는 모르겠다.

물론 vb.net에선 안넣어주어도 된다,

[vb.net] Listview 컨트롤 사용시 주의!

VB

리스트뷰컨트롤은 매우 유용해요.
그런데 사용시 주의할것이 있습니다.

콜렉션을 초기화하는 코드,

clear 말이다. 이게 2개가 존재해요

컨트롤.clear
컨트롤.items.clear

위 바로 컨트롤을 clear하면 코드 그대로 컨트롤을 클리어해버려요

아랫건 아이템을 콜렉션을 초기화 해주네요,


참고.

[php] 현재 시간 표시하기.

PHP

$now_time = date("Y-m-d H:i:s",time());


아래 표를 참조하시기바랍니다.

A : "AM" 또는 "PM"

d : 두자리로 표현되는 날짜, 즉 "01"~"31"
 
 D : 세글자로 표현되는 요일, 즉 "Fri"

F : 월을 긴 문장으로 나타냅니다. 즉 "January"

h : 시간을 12시간 단위로 나타냅니다. "01"~"12"

H : 시간을 24시간 단위로 나타냅니다.

g : 시간을 12시간 단위로 0 없이 나타냅니다. "1"~"12"

G : 시간을 24시간 단위로 0 없이 나타냅니다. "0"~"24"

i : 분을 나타냅니다. "00"~"59"

j : 날짜를 0 없이 나타냅니다. "1"~"31"

l : (L의 소문자)요일을 나타냅니다. "Friday"

L : 윤년인지의 여부를 나타냅니다. "0" 또는 "1"

m : 달을 나타냅니다. "01"~"12"

n : 0 없이 달을 나타냅니다. "1"~"12"

M : 3글자로 달을 나타냅니다. "Jan"

s : 초를 나타냅니다. "00"~"59"

S : 영어에서 순서를 나타내는 2글자로 된 접미사; "th", "nd"

t : 주어진 달의 날 수; 즉 "28"~"31"

U : 기준시점(GMT 1970년 1월1일 00:00:00)으로부터 지난 시간을 초로 표시

w : 요일을 숫자로 표시합니다. 즉 "0"(일요일) ~ "6"(토요일)

Y : 4글자로 연도표시, "1999"

y : 2글자로 연도표시, "99"

z : 날짜를 표시, "0"~"365"

Z : 지역간의 시간편차를 초단위로 표시, 즉 "-43200"~"43200"

출저 : http://naver-blog.nuclear.wo.tc/90110653116  (감사해영)

[mysql, php] SQL 문법에대해서..

HTML/CSS


오늘 회원가입을 구현하는데 이상한걸 발견
$sql = "INSERT INTO `member` (`id`, `pw`) VALUES ('a' , 'b');

는 올바로 작동을 한다. 그런데
$sql = "INSERT INTO `member` ('id', 'pw') VALUES ('a', 'b');

는 작동을 안한다..

 ' ` 의 차이인가보다,... 아니면 아시는분 답좀 ㅠㅠ

명시적인건 ` ` 로
암시적(?)인건 ' ' 로 처리해줘야하나보다.

이런소리 첨들어보는데..

내가 사용하는 sql 버전이 특이해서그런가?

오쉩펔펔