김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing

2015년 12월 31일 목요일

APK to Java Src and Find

 SecureKim     오전 10:35     APK to java, apk파일을 java소스로, Batch, windows     No comments   

APK를 Java 소스로 바꿔주는 배치 프로그램입니다.

제가 만들었고 라이센스 없습니다. 가져다 쓰세요.

7z.exe가 Command line 상에서 사용 가능 해야 하며
같은 폴더에 dex2jar-2.0, jd-cli-0.9.1 이 있어야 합니다.
----------------------------------------------------------------------
@echo off
set Title_BY=ver1.1_by_B.Y.
title %Title_BY%
echo 7zip, dex2jar-2.0, jd-cli-0.9.1 이 모두 있어야 합니다.

7z >NUL
if %ERRORLEVEL% EQU 0 (
goto GO_execute
) ELSE (
echo 7zip을 설치하고, 환경변수로 지정해주세요.
pause
goto GO_END
)
:GO_execute
set pth=%cd%
set new=Src_%date:~5%_%time:~0,2%_%time:~3,2%_%time:~6,2%

set /P pt^=APK (with path):
mkdir %pth%\%new%
rem APK to JAR
7z x %pt% -y -o%pth%\%new%
IF EXIST %pth%\dex2jar-2.0\classes-dex2jar.jar (
del /S /Q %pth%\dex2jar-2.0\classes-dex2jar.jar
)
setlocal enabledelayedexpansion
cd dex2jar-2.0
set LIB=lib
set CP=
for %%X in ("%LIB%"\*.jar) do (
    set CP=!CP!%%X;
)
::에러가 나면 여기를 수정해보세요.
::java -Xms512m -Xmx1024m -cp "%CP%" com.googlecode.dex2jar.tools.Dex2jarCmd %pth%\%new%\classes.dex
java -Xms512m -Xmx1024m -cp "%CP%" com.googlecode.dex2jar.tools.Dex2jarCmd %pth%\%new%\classes.dex
pause
cd ..
cd %pth%
mkdir %pth%\%new%\javaSrc
java -jar jd-cli-0.9.1\jd-cli.jar -od %pth%\%new%\javaSrc %pth%\dex2jar-2.0\classes-dex2jar.jar
cp %pth%\dex2jar-2.0\classes-dex2jar.jar %pth%\javaSrc.jar
start "" %pth%\%new%\javaSrc
::cd %pth%\%new%\javaSrc
IF EXIST %pth%\dex2jar-2.0\classes-dex2jar.jar ( del /S /Q %pth%\dex2jar-2.0\classes-dex2jar.jar )
cls
:_Find
if EXIST findInJavaSrc.bat (
findInJavaSrc.bat %pth%\%new%\javaSrc %Title_BY%
)
:GO_END
----------------------------------findInJavaSrc.bat------------------------------------
@echo off
set Title_BY=%2
if DEFINED Title_BY (
title %Title_BY%
) else (
title findInJavaSrc by B.Y.Kim
)
cls
color 03
set pth=%cd%
set rpth=%1
if NOT DEFINED rpth (
set rpth=%cd%
) ELSE (
set rpth=%1
)
IF EXIST %rpth%\finded (del /Q /S %rpth%\finded)
mkdir %rpth%\finded
cls
cd %rpth%
echo 찾는 위치   : %rpth%
echo 찾을 문자열 : %pth%\findStringList.txt
type %pth%\findStringList.txt
echo.
IF EXIST %pth%\findStringList.txt (
echo 위 문자열들을 찾는 중입니다... 잠시만 기다려 주세요.
echo.
for /f "delims= delims=: tokens=2 eol=; usebackq" %%i in ("%pth%\findStringList.txt") do call :FOR_GO %%i
echo Find END___
goto FOR_END
:FOR_GO
 findstr /N /I /S /C:"%1" *.java | findstr /V \/\/ >"%rpth%\finded\%1.txt"
exit/b
) ELSE (
echo 찾을 문자열이 없습니다.
echo "" >> "%pth%\findStringList.txt"
start "" "%pth%\findStringList.txt"
)

:FOR_END

color
start "" %rpth%\finded
:end
----------------------------------------------------------------------


findStringList.txt 는 다음과 같은 포맷으로 되어있습니다.
이 경우 string과 want, password 라는 문자열을 찾습니다.

--------------------------findStringList.txt--------------------------
;
; 설명(주석) :찾을 문자
;
설명 :string
찾을문자열  :want
패스워드 관련  :password
----------------------------------------------------------------------





Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

2015년 12월 29일 화요일

파일 또는 디렉토리를 찾는 윈도우 배치 스크립트

 SecureKim     오후 10:08     디렉토리 찾기, 윈도우 커맨드, 파일 찾기, Batch, command line, windows     No comments   


윈도우에서 파일이나 디렉토리 찾는 배치 스크립트입니다.

제가 만들었고 라이센스 없습니다. 편하게 쓰세요.


@echo off
title byfind by B.Y.
set p1=%1
if NOT DEFINED p1 goto _help
set p2=%2
set p3=%3
set p1=%p1:~1%
if DEFINED p3 (
set p2=%3
set dir=%2
) else (
set dir=%cd%
)
if %p1% EQU d (
goto _directory
) else (
if %p1% EQU f goto _file
goto _help
)
:_directory
dir /s /b /a:d %dir%\*%p2%*
goto _exit
:_file
dir /s /b %dir% | find "%p2%"
goto _exit
:_help
echo usage : %0 [/d] [/f] [directory] "name"
echo.
echo /d : directory
echo /f : file
echo.
goto _exit
:_exit
::exit
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

2015년 12월 22일 화요일

인증서 검증 확인 방법

 SecureKim     오후 3:37     가짜 인증서, 검증, 인증서, Node.js, Security     No comments   


웹 브라우저에서 인증서를 실제로 검증하는지 검사해 보려면 MITM을 하거나

가짜 인증서와 서버를 만들어 보면 됩니다. 여기서는 후자를 해봅니다.


먼저 패킷을 캡처한 것에서 Certificate를 누르고 ctrl+H 눌러서 빼옵니다.



다 빼내오면 rootCA가 있고

마지막에 demo.labs.mastercard.com을 사이닝 해주는 것을 알 수 있습니다.

저는 중간과정 생략하고 데모 인증서와 rootCA 인증서만 가짜로 만들어 보았습니다.



일단 key를 만듭니다. 키 길이는 인증서를 보고 맞춰줍니다.
openssl genrsa 2048 > my.key

root의 key는 특별히 암호도 걸어주었습니다.
openssl genrsa -aes128 2048 > root.key


OPENSSL_CONF 값이 없으면 Unable to load config info from 에러가 납니다.
(시스템 환경변수로 추가해도 됩니다.)
set OPENSSL_CONF=C:\Program Files (x86)\GnuWin32\share\openssl.cnf

본래 인증서를 잘 보고 인증을 요청하는 csr 파일을 그대로 만듭니다.
( / 같은 특수문자는 앞에 escape 문자 \ 를 붙여줍니다.)
openssl req -new -key root.key -nodes -subj "/C=US/O=Entrust, Inc./OU=www.entrust.net\/CPS is incorporated by reference/OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority" -out CA-CA.csr

만든 csr을 셀프 사이닝 해줍니다.
openssl x509 -req -days 365 -in CA-CA.csr -signkey root.key -out CA-CA.crt


이제 생성되었습니다. 똑같아 보이지만, 오른쪽이 진짜, 왼쪽이 가짜인증서입니다.




이제 똑같은 방식으로 서버용 키를 만들고 키로 csr파일 만들고,
rootCA로 사인해 주면 됩니다.

아까 키는 만들었었죠.
openssl genrsa 2048 > my.key


인증서를 잘 보고 csr파일을 만들어 줍니다.
openssl req -new -key my.key -nodes -subj "/C=BE/L=Waterloo/O=MasterCard International Incorporated/OU=NS01 ISF/CN=demo.labs.mastercard.com" -out demo.csr
(CN은 본인의 도메인으로 맞춰 줘야 관련 에러가 나지 않습니다.)


이제 rootCA인증서로 csr파일을 사인해 주면 됩니다.
openssl x509 -req -days 500 -in demo.csr -CA CA-CA.crt -CAkey root.key -CAcreateserial -out my.crt

그럼 아래처럼 2단계로 인증하는 가짜인증서 체인을 만들 수 있습니다.



물론 지금 했던 과정은 공개된 인증서를 바탕으로 하는 것이기 때문에

크게 문제될 것은 없습니다. 어차피 RSA2048 은 현재 깰 수 없을 것이기 때문이죠.

그리고 지금 위와 같이 인증서를 만들었다면, SHA1 으로 되어있을 텐데요,

획기적인 해시 충돌 취약점이 발견되서 모두들 SHA256 으로 바꾸도록 하고있으니

설정을 통해 SHA256 으로 바꿔주는게 좋겠습니다. ( -sha256 옵션 추가 )




이제 서버를 올려줍니다. 저는 간단하게 Node.js 를 사용했습니다.


Hello SyntaxHighlighter

HTTPS and HTTP Server


var http=require('http'),
    https = require('https'),
    express = require('express'),
    fs = require('fs');

var options = {
    key: fs.readFileSync('my.key'),
    cert: fs.readFileSync('my.crt')
};

var port1 = 80;
var port2 = 443;

var app = express();

http.createServer(app).listen(port1, function(){
  console.log("Http server listening on port " + port1);
});


https.createServer(options, app).listen(port2, function(){
  console.log("Https server listening on port " + port2);
});

app.get('/', function (req, res) {
    res.writeHead(200, {'Content-Type' : 'text/html'});
    res.write('

Welcome

'); res.write('Please login'); res.end(); }); app.get('/login', function (req, res){ res.writeHead(200, {'Content-Type': 'text/html'}); res.write('

Login

'); res.write('
'); res.write('') res.write(''); res.write('') res.write(''); res.write(''); res.write('
'); res.end(); }) app.post('/login', function (req, res){ var userId = req.param("userId"); var password = req.param("password") res.writeHead(200, {'Content-Type': 'text/html'}); res.write(userId+', you are now logged in.'); res.write(' back home'); res.end(); });


자 이제 접속 해보면 아래와 같이 나오는게 정상입니다.



Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
최근 게시물 이전 게시물 홈

페이지

  • 홈
  • Hobby

Categories

  • AI
  • android
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • mysql
  • Node.js
  • Plasma
  • review
  • Security
  • Study
  • Video
  • windows

Popular Posts

  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마세요.
  • 회사 프록시와 인증서에 고통받는 그대를 위한 글 (Bash, Gradle, Python, wget, nodejs(npm), apt-get, cURL, git, yarn, androidStudio)
    대기업에 입사하면 장단점이 있는데, 단점 중에 하나가 회사에서 프록시를 사용하여 트래픽 감시를 하므로 프록시 설정을 해주어야 한다는 점 입니다. 특히, 회사에서는 https 트래픽도 감시를 하므로 인증서도 설정해 주어야 합니다. 그런데 문...
  • [Node.js] Redis 의 hmset
    Redis 의 hmset 사용하기 var redis = require('redis'); var client=redis.createClient(포트,호스트,null); /* * MySQL을 사용하다가 Redis를 사용해보니 신세...

Blog Archive

  • ►  2023 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ►  2017 (12)
    • ►  10월 (2)
    • ►  9월 (9)
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ▼  2015 (6)
    • ▼  12월 (3)
      • APK to Java Src and Find
      • 파일 또는 디렉토리를 찾는 윈도우 배치 스크립트
      • 인증서 검증 확인 방법
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ►  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ►  7월 (3)
    • ►  6월 (3)

구독

글
Atom
글
전체 댓글
Atom
전체 댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates