전체 글
-
리눅스 커널 분석을 위한 vim, ctag, cscope, tagbar 세팅공부 2018. 2. 20. 00:12
리눅스 커널 분석을 위한 vim, ctag, cscope, tagbar 세팅 지난 주말 커널 분석 수업을 들으면서 언젠간 해봐야지 마음먹었을 때 알아두면 편할것 같아서 정리.나는 원래 vim을 주 에디터로 쓰고 firefox에도 vim key binding을 해놓는 사람이라... 리눅스 커널을 분석하려면 결국 리눅스환경에서 작업해야하는데 vim 커스터마이징을 안하는 사람들을 위한 글 + 알게된 팁들 정리용이다. 작업 환경 내가 작업을 진행한 환경은 Ubuntu 16.04, vim 8.0 을 이용했고 분석한 커널버전은 4.14.x대이다.리눅스 커널 소스코드는 www.kernel.org에서 다운 받을 수 있다. # jen6 at localhost.localdomain in ~/tmp [12:22:32] → ..
-
스프링의 위치와 속도 구하기공부/프로그래밍 2017. 6. 11. 15:39
import numpy as np import math g = 9.81 N = 1000 tau = 20.0 dt = tau/float(N-1) SHOstate[0] : 늘어난거리, 위치 state[1] : 속도dv_dt 유도식 F = -mg -kx (탄성력) F = ma (뉴턴 제2법칙 가속도법칙) ma = -mg -kx a = -g -(kx/m) x(늘어난 거리)를 이용해서 가속도를 구해주는 것euler 함수에 들어갈 [속도, 가속도]를 구해준다def SHO(state, time): dx_dt = state[1] dv_dt = -k/m * state[0] - g return np.array([dx_dt, dv_dt]) euler1차 일반 미분 방정식의 해를 근사시켜준다… 결국 Yn+1을 Yn을 이용해서..
-
몬테카를로법으로 원주율 근사값 구하기공부/프로그래밍 2017. 6. 11. 15:31
from random import random, seed from math import sqrt Monte Carlo Method난수를 이용해 함수의 값을 확률적으로 계산하는 알고리즘 참고 url 몬테카를로 법을 이용해 pi의 근사값을 구해보자 반지름이 1인 원이 있다고 생각하자 ( $x^2 + y^2 = 1$ )이제 그 원안에 점들을 찍는다. 이때 난수가 사용된다. (점의 좌표 범위 : $ 0 \leq x \leq 1 , 0 \leq y \leq 1 $ )random 함수의 값은 float으로 0~1 사이의 값이 리턴된다. 원의 넓이는 $\pi r^2$이고 정사각형의 넓이는 $4r^2$이다. 따라서 원의 넓이를 정사각형의 넓이로 나누게 되면 $\frac{\pi}{4}$가 된다. 3번에서 구한 값에 4배..
-
CPPCon 2016 The strange details of std::string at Facebook공부/c++ 2017. 3. 28. 09:19
CPPCon 2016 The strange details of std::string at Facebook 동영상 링크 ppt링크뭐가 제일 페이스북에 효율적인지string은 제일 중요한 요소중 하나 cpu전체의 18%가 std안에서 쓰임string을 간단하게 만드는 것 gcc string(v empty string but empty string is no empty malloc을 해서 매 번 overhead를 감수하고 할껀가? gcc는 매번 25byte arry를 가지고 있음 So empty is not emptyQ:왜 empty가 없는건데..
-
binary 관련 간단한 정리공부/프로그래밍 2017. 3. 9. 21:46
binary 관련 간단한 정리 정수표현 정수타입에서 대부분 최상위 비트(Most Siginificant Bit)가 음수인지 정수인지를 구분한다는 것은 알고있을 것 이다. 나도 그냥 그렇게만 알고 음수표현은 양수에서 최상위 비트만 반전되는줄 알고 있었다. (하지만 그게 아니다..) 그러다 학교에서 친구가 파이썬에서 ‘~’ 가 뭐냐고 물어봐서 not이라고 대답해 주다가 이상한 부분을 발견했다. 0b101 을 not연산을 하게 되면 -0b110이 나오는 이상한 일이 일어난거다. 5 : 0b0101 !5 : 0b1010 내 생각으로는 최상위 비트가 1이고 나머지가 정수라면 -2가 되야한다고 생각했지만 음의 정수는 그렇게 표현하지 않는다. source code 0을 0b0000으로 두고 -1부터는 0b000에서 ..
-
NSA HACKED!etc 2016. 8. 16. 09:01
오래간만에 일찍 일어난 아침부터 엄청난 소식 stuxnet, duqu, flame 의 배후로 지목된 Equation Group이 해킹당했다. 참고로 Equation Group은 카스퍼스키가 NSA의 한 부서가 아닐까 라고 추정한다(해외 기사는 NSA hacked라고 나오며 난리중) shadowbrocker라는 그룹이 해킹한것 같은데 외국국가들 대상으로 사이버 무기를 판매할 생각이라고.. https://twitter.com/botherder 현재 원래 깃헙에 공개한 레포는 내려가고 https://github.com/samgranger/EQGRP 이 레포지토리만 남아있는 상태 http://thehackernews.com/2016/08/nsa-hacking-tools.html
-
디스크 정리를 이용해서 Windows10의 UAC Bypass 하기공부 2016. 7. 29. 01:37
원문(bypassing-uac-on-windows-10-using-disk-cleanup)은 다음과 같은 글 입니다. 내용이 재미있다고 판단되어 번역해봤습니다. 의역 오역이 있을 수도 있으니 너그럽게 봐주세요.위 글은 원 저자에게 허락을 받고 번역한 글입니다.Thanks to @enigma0x3Matter Graeber과 나는 최근 WIndows10을 파보면서 User Account Control을 bypass할 수 있는 재미있는 방법을 찾았습니다.(UAC에 대해 잘 모른다면 이 글을 읽어보시면 됩니다.)요즘에는 UAC bypass 기술들이 여러가지 있는데, 대부분의 기술들은 DLL hijack을 하기 위해 IFileOperation COM object 또는 WUSA extraction을 이용하여 권한있..
-
Computation Structures 1: Digital Circuits공부 2016. 1. 29. 11:45
데이터를 저장하는데 필요한 비트수를 어떻게 표현할 수 있을까? 어떤 확률을 컴퓨터에 저장하기 위한 비트로 표현하기 위한 비트수는 Claude Shannon이라는 사람이 1948년에 다음과 같이 정의했다. $I(x) = log_2(\frac{1}{P_x})$ 이 확률을 만들기 위해 몇비트가 필요한지를 나타내는 것이라 $log_2$가 사용되었다. 예를들어 $P(x)$가 카드에서 어떤걸 뽑는 확률이라고 해보자. 조건은 하트라는 점이다. 그러면 확률 $P(x)$는 $\frac{13}{52}$ 가 된다. 그러면 아까 식에 대입해 보면 $I(x) = log_2(\frac{52}{13}) = 2bits$ 가 나오게 된다. data $P_x$ $log_2(\frac{1}{P_x})$ 하트이다 $\frac{13}{52}..