Worldpad

Worldpad

Apprentice physicist's blog

Android

magisk-frida로 안드로이드 구동 즉시 frida-server 실행하기

* 필요한 환경: Magisk가 설치된, 루팅된 안드로이드 디바이스 * 설정하고자 하는 안드로이드 장치에 adb 연결(만약 안드로이드 내에서 MagiskFrida를 다운로드해 설치한다면 불필요함) Introduction 이 글에서는 magisk-frida라는 magisk 모듈을 이용해 frida-server을 자동으로 안드로이드 구동 즉시 실행하는 방법을 서술한다. Summary 1. MagiskFrida 다운로드 Releases · ViRb3/magisk-frida (github.com) 이곳의 Releases 칸에서 .zip 파일을 다운받는다.
2 min read
Android

adb 설치하는법(Windows, Linux)

이 글에서는 adb를 Windows, Linux에 설치하는 법을 다룬다. Windows choco install adb chocolatey가 설치되어 있지 않다면 설치해야 한다. Linux 1. adb가 포함된 platform-tools 다운로드 2. unzip 3. /bin에 symlink 설정 아래 커맨드를 실행하면 adb를 바로 실행할 수 있다. wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip unzip platform-tools-latest-linux.zip
Android

Android 앱 디컴파일 방법

이 글에서는 Android 앱을 디컴파일하는 방법을 다룬다. 방법은 크게 2가지이다. java decompiler 계열 프로그램을 이용해 .java 파일을 확인하는 방법, apktool을 이용해 smali 코드를 확인하는 방법이다. 1. jadx 이용 dex2jar, jd-gui를 순서대로 이용해 .java 파일을 확인할 수도 있으나, dex2jar과 jd-gui의 기능을 통합한 편리한 프로그램인 jadx를 쓰는 편을 추천한다. https://github.com/
1 min read
Windows 11 22H2, WSA(MagiskOnWSA) 사용 후기, 프록시(HTTPS 스니핑) 설정
IT

Windows 11 22H2, WSA(MagiskOnWSA) 사용 후기, 프록시(HTTPS 스니핑) 설정

9월 20일, 드디어 Windows 11 22H2가 일반 공개되었습니다. 22H2에서 주요하게 제가 봤던 변경점은 1. 작업관리자 UI 변경 2. WSA 입니 다. CLIPCHIMP 등 뭐 변한 건 여럿 있다고 들은 것 같은데 제 관심사는 아닙니다. 작업관리자 먼저 작업관리자 UI가 어떻게 변했는지 봅시다. 일단 UI가 변한 건 확실히 알겠고, 22H2 이전에 Windows
12 min read
이공계

헤세 행렬의 의미

서울대학교 자연과학대학/공과대학 소속 학생이라면 1학년 때 수학2/고급수학2/미적분학2 중 하나를 듣게 된다. 미적분학2 시간에는 김홍종 교수의 미적분학2 책을 사용하는데, 이 책의 506p에서는 헤세 행렬을 소개한다. 하지만 선형대수적인 지식을 일절 배제하고 미적분학에 집중한 설명만을 하기에 도대체 ac-b^2>0이라는 조건이 어디서 튀어나온 것인지, 2변수가 아닌 경우 확장은 어떻게 해야
9 min read
Digitalocean으로 초간단 OpenVPN 서버 만들기
IT

Digitalocean으로 초간단 OpenVPN 서버 만들기

개요 이 게시글에서는 OpenVPN 서버를 간단하게 구축해 개인 사용자용 VPN을 사용할 수 있게 하는 방법을 다룬다. 서버는 digitalocean의 것 을 기준으로 서술했으나 당연히 Vultr, Hetzner, PulseHeberg등 다른 선택지도 있고 직접 해보지는 않았으나 다른 곳에서 설정하기도 매우 쉬울 것으로 짐작한다. 참고로, 지레 복잡할 거라 겁먹지 말자. digitalocean 서버만 있으면 원클릭 스크립트
9 min read
Pytorch DDP 설정하는 법 (DDP baseline)
Machine Learning

Pytorch DDP 설정하는 법 (DDP baseline)

일단 아래는 baseline으로 쓸만한 데모 소스이다. (설명은 더 아래에 있다.) NLP 모델에서 pretraining과 finetuning을 번갈아 가며 할 수 있도록 설게했다. config.mode는 pretrain과 finetune 중 하나, run_epoch 함수의 mode는 train/valid임에 유의. config.mode는 당연히 필요 없다면 지우고 나머지 부분도 알아서 수정해가며 쓰면 된다. AverageMeter은 내 기억이 맞다면 내가
5 min read
IT

[Adblock] 특정 사이트에서 모든 gif 파일 차단하기

Brave Browser가 대부분의 광고는 막아주는데 일부 사이트에서 gif 형태로 등록된 광고는 막아주지 못하는 것을 확인했다. 어차피 gif가 아닌 광고는 번쩍거리지도 않을 거고 눈에 거슬리지도 않을 것이기에 gif 파일만 싹 다 차단하자고 생각했고 그 방법을 옮겨적는다. Brave Browser 기준 설정>보호>맞춤 필터 만들기로 들어가서, example.com##[src*=".gif"] 위에서 example.
1 min read
IT

디스크 용량 확보(anaconda cache clear)

나는 C 드라이브에 아나콘다를 설치해서 쓰고 있는데, 요즘 들어 WSL과 원래 윈도우의 anaconda만으로도 상당한 용량을 차지해 어려움을 겪고 있다. 드라이브를 옮겨서 아나콘다를 재설치하기엔 귀찮고 무엇보다 WSL이 그냥은 다른 드라이브로 안 옮겨질 것 같아서(사실 알아보지도 않았다. 알고보니 간단한 방법이 있을지도?) 뭔가를 지울 방법을 찾아봤는데, anaconda의 캐시를 지우는 것만으로 해결된다. 얼마나
1 min read
ArcfaceLoss for Competition
Machine Learning

ArcfaceLoss for Competition

ArcfaceLoss는 간단히 말하면 Softmax+Cross Entropy Loss(CE Loss)를 개량한 것이라 보면 된다. 관련 논문은 arXiv 기준 2018년에 처음 Submit되었다. 사용법이 매우 간단하고 동시에 성능은 상당히 좋다. 용어 정리 * Logits: softmax 직전 레이어의 출력값 Softmax+CE Loss ArcfaceLoss에 대해 알아보기 전에, 가장 고전적(?)으로 쓰이는 Softmax+CE Loss에 대해
8 min read
이공계

2022 삼성전자 샤이닝스타 지원 후기

보통 매일, 또는 이틀에 한번씩 에브리타임을 들어가 유용한 정보가 있나 확인해보는 편인데, 우연히 대외활동 란에서 지원 마감이 얼마 남지 않은 삼성전자 샤이닝스타를 발견했었다. 모집대상이 1,2학년...???? 처음 보자마자 도대체 1,2학년을 데려다 뭘 가르칠 수 있는건지 의문이 들었었는데 그래도 그냥 기업 견학 가는 기분으로 신청하면 재미는 있지 않을까 싶어서 바로
3 min read
[딥러닝] 이상하게 길게 보면 학습이 되는 것 같긴 한데 영 상태가 이상할 때 해결방법
Machine Learning

[딥러닝] 이상하게 길게 보면 학습이 되는 것 같긴 한데 영 상태가 이상할 때 해결방법

이런 식으로 수십 epoch 이후에는 성능 향상이 되기는 하는데 단기적으로는 심지어 loss가 늘어나기도 하는 경우가 있다. (가장 처음 loss의 1.5배 이상으로 10epoch 이상 유지) 의심해볼 만한 걸로는 1. criterion 제대로 나오는지 점검(왠만하면 멀쩡할 것이다) 2. learning rate, optimizer가 잘못되었나 점검(lr 너무 높으면 수렴이 힘듬) 3. 2번과 더불어
2 min read
Python

Python multiprocessing Manager로 custom class 공유하기

BaseManager에 커스텀 클래스를 register하면 된다. 나머지는 그냥 원래 Manager 쓰는 거랑 똑같이 쓰면 된다. import asyncio import aiohttp from multiprocessing.managers import BaseManager class Session: def __init__(self, beta_engine=False): process = self._init_session() asyncio.run(process) async def _init_session(self): self.session = aiohttp.ClientSession() class MyManager(BaseManager)
2 min read
Wolfram Engine 설치 및 사용 가이드
이공계

Wolfram Engine 설치 및 사용 가이드

1. https://www.wolfram.com/engine/ 에서 Wolfram Engine 다운로드 및 설치 2. 설치된 'wolframscript'를 실행. 처음에 라이선스를 요구할텐데, 라이선스는 프리라이선스 사용하면 무방함. 프리라이선스는 계정마다 그냥 발급 가능한 듯하고, 계정 회원가입은 필요하면 https://account.wolfram.com/auth/create 여기서 하면 된다. 이후 계정 이메일과 패스워드 wolframscript 커맨드 프롬프트에 입력하면 된다.
3 min read
InfoNeRF: Ray Entropy Minimization for Few-Shot Neural Volume Rendering
Papers Reading

InfoNeRF: Ray Entropy Minimization for Few-Shot Neural Volume Rendering

InfoNeRF: Ray Entropy Minimization for Few-Shot Neural Volume Rendering https://arxiv.org/abs/2112.15399 https://cv.snu.ac.kr/research/InfoNeRF/ Shannon Entropy에 기반해 광선의 entropy를 minimze하고 여기에 KL divergence loss term을 더해 오직 4개의 이미지를 이용한 Few-shot NeRF에 좋은 성능을 낸다. entropy minimization은 "가장 덜 noisy"한, 또는
6 min read
Machine Learning

RL Course by David Silver 요약

이 글은 David Silver의 2015년 Reinforcement Learning 강의를 내 방식으로 일부 재해석해가며 적는 요약 글이다. 이 글 하나만 보고 RL을 처음 배우기는 적합하지 않을 것이며, Sutton의 An Introduction to Reinforcement Learning(한국 번역서: 단단한 강화학습)이나 유튜브 강의를 보며 참고하기를 권장한다. 물론 이미 RL에 대한 기반 지식이 있는데 기억이 희미해지거나
35 min read
Machine Learning

Gumbel Trick Explained

Reparameterization Trick 왜 필요한가? * deterministic하게 작동하는 NN이라면 상관없지만, VAE처럼 어떠한 stochastic distribution에서 $n$개의 sample을 sampling하여 이후 레이어의 입력으로 삼는 Neural Network의 경우 "sampling 연산"에 대해 gradient를 계산할 수 없다. * layer의 output $z$를 sampling하는 연산을 Gumbel Distribution을 이용해 argmax로 바꿔버리 자! = Gumbel-Max Trick * argmax는 미분 불가능하니 softmax로 바꿔주자!
3 min read