반응형

윈도우 cmd 창에서 폴더(디렉터리) 복사를 하려고 할 때 막상 해보면 잘 되지 않는다...

리눅스 처럼 간단하게 cp -rf 같은 게 있으면 될 텐데, 이러저리 해봐도 쉽지 않았다.

팁!

xcopy /hickey [소스] [목적지]

xcopy의 옵션이 워낙 많아서 읽어보려면 시간이 많이 걸린다. 

한 번 정리해본 결과. 최종 옵션은 hickey 다.

hickey ;  어떻게 쉽게 외울까 하다가 옵션 순서를 영어 단어가 있는 것으로 배열해 봤다.

히키로 외우자. (영어 단어 뜻은 여드름. 흠집. 키스마크.^^ 이다.)

옵션 정리

a ; 보관특성만 복사. 보관특성 유지
m ; 상동. 단, 보관특성 삭제.
d:m-d-y ; 지정날짜 이후 수정파일만 복사. 미지정시, 대상 파일보다 최신인 것만 복사.
p ; 사용자에게 물어보기. 
s ; sub 포함. 단, empty dir 제외.
e ; sub 포함. 단, empty dir 포함.
q ; 조용히
c ; 에러무시하고 진행
h ; hidden 포함
l ; 파일 목록 표시 list
t ; tree 구조만 복사.
u ; update
k ; 특성도 복사
o ; 파일소유권 owner 복사
y ; overwrite할때 묻지 않음. yes
i ; directory 자동인식

 

 

 

반응형
port

windows port

로컬에서 쓸데없이 리스닝하는 포트를 찾아 프로세스 종료시키기

netstat 옵션

-a ; 모든 상태 표시.
-n ; 번호로 표시. (hostname, 서비스명 대신 다 숫자로…)
-o ; owner process ID
-r ; 라이팅 테이블

리스닝 포트 확인

netstat -an | findstr "LISTEN"

image

port 누가 쓰지?? PID를 먼저 찾는다.

netstat -ano | grep "포트번호"
netstat -ano | findstr /i "검색어"

findstr.exe 는 옵션 /i=caseinsensitive. /v=inverse.

C:\WINDOWS\system32>netstat -ano | findstr 8080
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1236
  TCP    [::]:8080              [::]:0                 LISTENING       1236
  UDP    0.0.0.0:8080           *:*                                    1236
  UDP    [::]:8080              *:*                                    1236

8080 포트를 1236 PID가 쓰고 있음을 알 수 있다.

PID 로 프로세스 확인

C:\>tasklist -fi "pid eq 1236"

이미지 이름      PID       세션 이름     세션#  메모리 사용
======================== ======== =============== =========== 
svchost.exe    1236       Services       0        17,080 K

tasklist.exe /fi=filter,

작업관리자에서 확인하거나 processexplorer, processhaker 등을 사용하여 상세 정보 확인.

프로세스 강제종료

  • PID로 프로세스 강제 종료
taskkill /f /pid 1236

권한이 부족해서 실패한다면 관리자 권한으로 cmd창을 실행해서 해야 한다.

  • 프로세스명으로 강제종료
taskkill /F /T /IM notepad.exe
taskkill /f /fi "imagename eq note*"

[참고] /F ; 강제 종료, /T; 하위프로세스포함. /IM; 이미지명. /FI ; 필터
이미지명과 필터는 와일드카드 (*)를 사용 가능.

Author: crazyj7@gmail.com

반응형
자모병합

자모병합 / 한타영타 변환기

필요해서 만들어봤습니다. 필요하시면 사용하세요. ^^
맥사용자가 한글이 포함된 파일명의 파일을 보내면 파일명에 들어간 한글의 자모분리 현상이 발생합니다!!! ( 한 -> ㅎ ㅏ ㄴ )
(맥와 윈도우의 한글호환이 안 되는 문제로 어쩔 수 없음.)
깨진 한글 파일명을 복원할 방법이 없을까??? 해서… 만들었습니다.

본 프로그램은 자모분리된 파일명을 복원(병합)해주는 기능을 함. (윈도우나 맥에서 분리된 한글 지원)

  1. 탐색기에서 파일명이 깨진 파일을 드래그하여 가장 위에 에디트 창에 넣는다. (직접 스트링을 입력해도 됨.)

  2. File Rename 버튼을 누르면 복원된 이름으로 이름 변경됨.

부가 기능으로 화면 아래에 한글의 한타와 영타를 전환해주는 기능도 있음. 이건 한글이 안나오는 사람들을 위해…

image

직접 만든 바이너리 해시값도 첨부합니다. (무결성 확인용)
아래 해시값이 원본입니다.

다운로드 경로
https://www.mediafire.com/file/maydhuaqacpdg63/hantaui_Release.zip/file

c:\>certutil -hashfile hantaui_Release.zip
SHA1 해시(hantaui_Release.zip 파일):
7d 3d df bb bd 3c 53 ad 00 f8 2e a0 79 47 c4 cd 87 50 11 4b
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.

c:\>certutil -hashfile hantaui.exe
SHA1 해시(hantaui.exe 파일):
27 e2 b2 ea e3 66 44 5e 2e bb d1 3f af 1f 34 e5 07 15 e6 32
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.

참고: 윈도우에서 간단하게 파일 해시값 확인

certutil -hashfile 검사할파일명

기본적으로 SHA1 해시값을 출력한다.
다른 해시 알고리즘을 사용하려면 뒤에 알고리즘명을 추가한다.
예를 들면 MD5, SHA1, SHA256 등을 쓴다.

certutil -hashfile 검사할파일명 SHA256

Author: crazyj7@gmail.com

반응형

크롬 브라우저 현재 최신버전으로 업데이트하지 마세요.
한글 입력 버그 있음.
버전 78.0.3904.70(공식 빌드) (64비트)
크롬에 설정에서 현재 버전 확인을 하게 되면 자동(!)으로 강제업데이트됩니다.

문제는 이렇게 업데이트된 후에,
검색시에 한글누르고 스페이스 누르면 한글이 삭제되는 버그가 있고,
브라우저내에 채팅창같은곳에 스페이스를 누르면 스페이스가 안먹히고, 두 번 눌러야
스페이스 한 개가 들어갑니다....

나만 그런줄 알았는데 방금 업데이트 한 것을 보니 같은 증상이 나타났음.
패치 나올때 까지 기다리세요 ㅜ.ㅜ

이미 업데이트가 되어버렸는데, 이전으로 돌리려면????

 

크롬 옛날 버전으로 복구 방법. 패치가 나오기 전까지 옛날 버전을 사용하려면...
먼저 자동업데이트를 중지한다. 아래 경로에서 3번을 수행(서비스 중지)
https://www.webnots.com/7-ways-to-disable-automatic-chrome-update-in-windows-and-mac

간략히 요약하면 service.msc 실행해서 Google 업데이트 서비스로 나온것들 사용안함으로 중지하는 겁니다.

 

7 Ways to Disable Automatic Chrome Update in Windows and Mac » WebNots

Learn how to disable automatic Chrome update in Windows and Mac by renaming update folder, blocking update URL, from service manager, registry editor, system configuration and modifying plist file.

www.webnots.com

 

이제 크롬을 삭제(프로그램 추가/제거에서 크롬 삭제)하고 아래 경로에서 재설치. (바이러스 검사해본 결과 이상 없어서 저도 이렇게 복구했습니다.)  설치 후 한 번 더 위와 같이 구글 업데이트 서비스 사용 안함으로 해주세요. (크롬을 설치하니 자동으로 서비스 시작으로 되는 것 같더군요.)

https://www.slimjet.com/chrome/download-chrome.php?file=files%2F76.0.3809.100%2FChromeStandaloneSetup64.exe

'Develop > Windows' 카테고리의 다른 글

윈도우 리스닝포트 찾아 강제종료  (0) 2021.02.24
자모병합 / 한타영타 변환기  (2) 2020.11.10
커맨드(cmd)창 관리자권한 실행  (1) 2019.10.23
Windows10 IP Change command line  (0) 2019.10.23
DOS Batch Script  (0) 2019.10.06
반응형

 

cmd(콘솔)창 관리자권한으로 실행하기

cmd 창을 자주 사용하는데, 가끔 관리자 권한이 필요해서 다시 창을 띄우는데 띄우기가 번거롭다.
윈도우 기본 기능으로 빨리 cmd창을 관리자 권한으로 실행할 수 없을까?

  1. Ctrl+Shift+ESC 키를 누른다. (작업관리자 실행됨)
  2. Alt를 계속 누른 상태로 F, N을 차례로 누른다.
    image
  3. cmd를 입력 후, 키, 스페이스키, 엔터 순서로 입력한다. (관리자 권한을 체크하여 실행)

Author: crazyj7@gmail.com

추가로... 더 간단한 방법이 있다...

윈도우키+X 후에 A를 누른다.

 

 

'Develop > Windows' 카테고리의 다른 글

자모병합 / 한타영타 변환기  (2) 2020.11.10
크롬 한글 버그 수정  (1) 2019.10.28
Windows10 IP Change command line  (0) 2019.10.23
DOS Batch Script  (0) 2019.10.06
curl 사용법/HTTP 테스트  (0) 2019.10.01
반응형
windows_ipchange

Windows10 IP Change Command line

윈도우10에서 PC나 노트북 이동시 자주 사용하는 곳을 왔다갔다할 경우 자주 IP 변경해야 할 경우, 그 때마다 네트웍 설정을 해 주기가 너무 번거롭다.
이것을 커맨드 라인으로 자동화 할 수 있으면 편리하다.
이런 사용자들을 위한 팁.
윈도우 10 IP 변경 커맨드 라인

장소1

현재 네트웍 정보를 확인하고 화면캡쳐를 해둘것을 권장한다. 나중에 찾아볼때 편하다. 네트웍디바이스(NIC)명을 확인하고 ip address, network, gateway, dns 설정 등이다.

ip1
위에서 “이더넷 어댑터” 뒤에 나온 스트링을 잘 기억해야 한다. 보통은 “로컬 영역 연결” 이라고 나오는 것이 일반적이다. PC마다 다를 수 있어서 확인해 주어야 한다. 여기서는 “알수없음” 이라고 나와있어서 그렇게 작성하였다.

아래와 같이 배치 파일(network_pub.bat)을 만들어 준다. 이것은 장소1에서 현재의 네트웍 상태로 만들어주는 스크립트이다. 위에서 나오는 필드들을 잘 확인하여 자신에 맞는 형태로 바꾸어 주면 된다. (인터페이스명과 IP들만 바꿔준다.)

ip2

netsh int ip set address "알수없음" static 172.16.10.11 255.255.0.0 172.16.10.254 1
netsh int ip set dns "알수없음" static 172.16.10.1 primary  validate=no
netsh int ip add dns "알수없음" 168.126.63.1 index=2 validate=no

장소2

장소2에서도 마찬가지로 부여받은 고정IP로 네트웍을 설정한 후, 현재 상태를 확인한다. (이것도 별도로 화면캡쳐 해 두는 것이 좋다.)
이더넷 어탭터(NIC 인터페이스) 이름은 장소1에서 사용한 이름과 동일할 것이다. IP address, NetMask, Gateway, DNS IP를 확인한다.
ip3

이제 장소2의 네트웍 변경 커맨드를 아래와 같이 작성한다. (인터페이스명과 IP들만 바꿔준다.)
image

netsh int ip set address "알수없음" static 192.168.10.11 255.255.255.0 192.168.10.254 1
netsh int ip set dns "알수없음" static 8.8.8.8 primary validate=no

완료

주의!!! 위 배치 파일을 실행하기 위해서는!!!
cmd.exe 창을 열 때 반드시 관리자 권한으로 실행해야 한다.
(cmd 명령프로프트 아이콘에서 마우스 우클릭하여 관리자권한으로 실행)

이제 장소 1에서는 network_pub.bat를 실행하고, 장소2에서는 network_pri.bat를 실행하기만 하면 고정IP가 설정대로 변경될 것이다.
이제 더 이상 장소 이동시 귀찮은 네트웍 설정 변경 작업을 하지 않아도 된다!!!

Author: crazyj7@gmail.com

'Develop > Windows' 카테고리의 다른 글

크롬 한글 버그 수정  (1) 2019.10.28
커맨드(cmd)창 관리자권한 실행  (1) 2019.10.23
DOS Batch Script  (0) 2019.10.06
curl 사용법/HTTP 테스트  (0) 2019.10.01
화면/윈도우 동영상 녹화 (mp4, gif)  (0) 2019.09.23
반응형
DOSBatch

DOS Batch

윈도우 커맨드에서 실행하는 DOS 스크립트 작성 방법. 쉽지만 막상 필요한 것을 하고 싶을 때 쉽지만은 않다. 자료가 많이 부족하다.

주석

  • 주석 명령은 설명문으로 실행되지 않는다.
  • rem 으로 실행하고 뒤에 주석문(아무 스트링)을 입력하면 된다. 주석은 프로그래밍시에 간략한 설명을 위한 것이다.
  • @rem test message… : 앞에 @를 붙이면 배치파일 실행시 rem 커맨드 출력이 안되도록 한다. 물론 그 전에 @echo off을 해 두었다면 @을 붙일 필요없다.
  • 더 간단하게는 :: 으로 시작하면 주석이 된다. 이것은 커맨드 출력도 되지 않아 더 간편히 사용할 수 있다. rem과 다르게 아예 없는 것으로 취급된다.

변수와 출력

  • dos batch는 파일 확장자를 .bat 또는 .cmd로 하여 메모장으로 텍스트 파일로 작성하면 된다.
  • 기본 적인 출력은 “echo” 커맨드가 있다. 뒤에 출력할 내용을 적으면 된다.
  • 출력 내용에 변수명을 적어 변수값을 출력할 수 도 있다. 또한 변수중에는 미리 시스템에서 정의된 값들도 있어서 유용하다.
  • 변수 설정은 set으로 변수이름과 값을 =으로 할당한다.
  • 변수 사용시에는 변수 이름 앞뒤로 %를 붙인다. 변수 삭제는 빈 값을 할당한다. (빈 값이 있는 변수로 만드는 것이 아니라 변수 자체를 삭제한다는 의미!)

SET FOO=hello world
echo %FOO%
echo %FOO%xxx%FOO%
SET FOO=

  • for문의 변수 이름은 커맨드창에서 바로 실행할 때 영문자앞에 %를 붙인다. 그러나, Dos batch file(.bat)에서 for문의 변수 영문자 앞에 %% 이렇게 %를 두 개 붙인다!
c:\> copy con test1.bat
@echo off
@rem this is a test batch...
set aaa=hello
echo %aaa%
echo %1
^Z
c:\> test1 kim
hello
kim
  • @echo off는 이후에 echo 실행명령은 출력하지 않고, 결과만 출력하도록 한다.

  • batch 파일 실행시 뒤에 파라미터를 줄 수 있는데, 순서대로 %1, %2, … 이렇게 변수로 사용할 수 있다.

  • 줄바꿈. 엔터 입력. 빈 줄 출력

echo.

  • 공백으로 시작하는 문자열 출력

echo. aaa
echo aaa (이것도 이제는 가능함. 앞에 공백 두 개)

  • 특수 문자 출력시 앞에 ^를 사용

echo ^< 이것은 꺾은 괄호 ^>
echo ^| 파이프
echo ^^ 두 개 입력시 하나 출력

스트링 처리

  • 문자열 추출 mid / substr

FOO 변수의 값에서 인덱스 6부터 3글자를 추출. (인덱스는 0부터 시작) 뒤에 수를 생략하면 끝까지를 의미함. -1은 마지막 바로 한글자를 의미.
set BAR=%FOO:~6,3%
set BAR=%FOO:~5%
set BAR=%FOO:~-3% : FOO가 파일명일떄 마지막 세글자(확장자명)을 가져온다.

연산

  • 수 값을 할당하거나 연산하려면 SET /a를 사용한다.

set /a num=4*8+8/2+122
set /a num=1
set /a num+=2
if %num% GEQ 3 echo big

환경 변수

%CD% : 현재 작업 디렉터리
%DATE% : date 커맨드와 같은 포맷의 날짜
%TIME%
%RANDOM% : 0~32767 범위의 수
%ERRORLEVEL%
%CMDCMDLINE%

파라미터

  • 파라미터는 %1, %2, 등으로 받는다. (%0은 배치파일 이름 자체임. %9까지 가능)
  • %*은 모든 파라미터를 의미함.
  • 파리미터 내부에 공백이 있으면 커맨드상에서 파라미터를 "로 둘러싼다. 단, 스크립트에서 "를 제거하고 받으려면 %~1, %~2 로 받는다.
  • 파라미터가 없으면 종료

if “%1” == “” goto :eof
파라미터에 "를 추가해 주어야 한다.’

Redirect

  • stderr까지 파일로 기록

cmd /c “test.exe” > “output.txt” 2>&1

  • 실행만 하고 출력은 없앰 (no output)

dir > nul
nul 이라는 파일은 생성되지 않는다. (NUL 대소문자 상관없음. 주의! L이 한 개임.)

type nul > a
0바이트짜리 a라는 파일 생성

program 2>output.txt
stderr 출력을 파일로 기록

배치내에서 배치 실행하기

call b.bat param1 param2

  • 동시 실행

start /d “directory…” /b program.exe
start /d “directory…” /b program.exe

디렉터리 경로명 이동

cd /d e:\temp

반복문 for

  • integer 증가

for /L %%n in (1,1,100) do net user %%n /add
1부터 100까지 증가하고, 숫자로 계정명으로 사용자를 추가한다.
(for의 변수는 커맨드로 실행시에는 %하나 batch file인 경우는 %% 두개를 사용한다.)

  • 1부터 5까지 출력

for /L %n in (1,1,5) do echo %n

  • 1부터 5까지 출력. 2씩 건너뜀.

for /L %n in (1,2,5) do echo %n
1,3,5 각각 한 줄로 출력됨.

goto

  • 종료시

goto :eof 또는 goto:eof
eof 레이블은 만들필요없이 미리정의된 거라 그대로 사용 가능
또는 exit /b 0

  • 레이블 지정과 goto

레이블 지정시에는 앞에 :을 붙이고 goto 시에는 :를 빼야 한다.
:loop
echo infinite…
goto loop

Sleep

@rem 3sec sleep
@ping 1.2.3.4 -n 1 -w 3000 > NUL

IF

  • 조건 판단
  • 같은지 확인 == 앞 뒤에 공백은 없어도 됨.

if %var% == 1 goto done
echo a
:done
echo b

  • if else : 괄호, 공백 주의

if %var% == 0 (
echo a
) else (
echo b
)

  • /i 옵션 : 대소문자 구분 없이 비교. (case-insensitive)

사용자 입력/텍스트파일변수

  • yn 선택지 (or 스트링 입력)

set /p result=message (Y/N)?
echo %result%
빈 값을 검사하려면 아래 코드를 참고

@echo off
:: init var for empty string.
set "result="
set /p result=are you ok(y/n)?
if "%result%" == "" (
echo no input
goto :eof
)
if /i "%result%"=="y" goto YES
if /i "%result%"=="n" goto NO

echo your input is %result%

  • 텍스트 파일을 첫 행을 읽어 변수에 할당

set /p var=<%temp%\filename.txt

> copy con lines.txt
hello1
hello2
hello3
^Z
> set /p var=<lines.txt
> echo %var% %var%
hello1 hello1

디렉터리

  • 중간 디렉터리까지 모두 생성. mkdir 대신 md를 사용

md “a\b\c”

  • 하위 파일/디렉터리 모두 삭제. /s 옵션

rmdir /s “dirname”

기타

  • 종료 : exit

exit /b 0 : /b는 cmd창은 남겨둔다는 의미. 뒤의 숫자는 프로그램 종료 리턴값. (다른 배치에서는 이 값을 errorlevel 변수로 받아 사용할 수 있다.)

  • 파일 병합 / 붙이기 concate
  • 파일 세 개를 붙여서 하나의 파일로 만든다.

copy 1.txt + 2.txt + 3.txt out.new /b

  • 배치 파일에서 다른 배치 파일 실행하기

call b.bat : call을 사용한다. 그냥 b.bat로 실행하면? b.bat가 종료시 나머지 스크립트로 돌아오지 않고 종료된다.

Author: crazyj7@gmail.com
Written with StackEdit.

'Develop > Windows' 카테고리의 다른 글

커맨드(cmd)창 관리자권한 실행  (1) 2019.10.23
Windows10 IP Change command line  (0) 2019.10.23
curl 사용법/HTTP 테스트  (0) 2019.10.01
화면/윈도우 동영상 녹화 (mp4, gif)  (0) 2019.09.23
windows 10 kernel structure  (0) 2015.08.28
반응형
curl

curl 사용법

패킷/메시지를 네트웍으로 전송하는 유용한 유틸리티입니다. HTTP/S로 GET/POST 등으로 데이터를 전송할 수 있습니다.

  • 설치

  • curl -h 를 하면 옵션이 다 나온다. 너무 많은 내용으로 읽어보기 어렵다. 필요할 때 마다 찾아서 사용하거나 아래 예제를 통해 옵션들을 배워보자.

사용 방법

많이 사용되는 옵션

  • v : 상세로그 보기
  • o : 출력 파일 지정
  • O : 출력 파일명을 자동으로 원격지 파일명과 동일
  • H : 헤더 추가
  • A : 에이전트 추가
  • d : 데이터 추가로 폼 데이터나 JSON 데이터 등을 POST로 보낸다. (단, -G 옵션이 있으면 GET으로 적용된다.)

HTML 받아오기(기본사용)

URL 주소만 뒤에 주면 알아서 받아온다. (GET방식) image

파일 받아오기

URL 주소가 image나 zip 등 바이너리 파일 주소인 경우 텍스트 출력이 아니라 파일로 받아오기. 단순하게 파일 받는 용도로 쓸 거면 wget 유틸리티가 더 편하다.
- URL 뒤에 --output 옵션으로 저장할 파일명을 지정한다. (–output 은 -o 와 같다. 대문자 -O로 하면 뒤에 파일명 지정할 필요가 없다. 원격지 파일명과 동일한 파일명으로 자동으로 생성한다.)

curl https://curl.haxx.se/windows/dl-7.66.0_2/curl-7.66.0_2-win64-mingw.zip -o a.zip
curl https://curl.haxx.se/windows/dl-7.66.0_2/curl-7.66.0_2-win64-mingw.zip -O

HTTP 헤더 보기

$ curl 주소 : 해당 주소의 html content만 출력
$ curl -i 주소 : 해당 주소의 html 헤더와 content를 모두 출력
$ cur -I 주소 : 해당 주소의 html 헤더만 출력 (-I는 --head와 같다)

GET에 추가 정보

헤더 추가
$ curl -H “Host: test.com” -H “name:jun” [주소] : 헤더 정보 추가하기. -H를 여러 번 사용할 수 있다.

User-Agent 추가
$ curl -A “Mozilla/5.0” [주소] : -A 뒤에 지정.
일반적으로 에이전트를 식별하거나 브라우져인척 가장하기 위해 사용한다.

URL 파라미터 추가
$ curl [주소]?key=value&key=value… : URL뒤에 파라미터를 지정.
$ curl -G [주소] -d “key=value&key=value” : -d 옵션은 POST DATA로 지정하는데, -G 옵션을 주면 GET방식 파라미터로 변한다.
$ curl -G [주소] -d “key=value” -d “key=value” : -d 옵션을 나눌 수도 있다.
즉, 위와 같이 입력하면 자동으로 [주소]?key=value&key=value 이런식으로 변환되어 GET으로 요청된다.

POST 사용하기

데이터추가
$ curl -X POST [주소] -d “데이터” : -X POST 옵션은 생략가능 (content-type 지정이 없으면 application/x-www-form-urlencoded 타입으로 보낸다.)

FORM 데이터 추가
HTML의 FORM에 name으로 지정된 부분에 값을 채워서 POST할 경우 사용한다. name을 key로 하여 아래처럼 값을 채워 보낸다.
$ curl -X POST [주소] -d “key=value&key=value&…” : (-X POST는 생략 가능. -d는 --data와 같다)
$ curl -X POST [주소] -d “key=value” -d “key=value” : (상동)
$ curl [주소] --data-urlencode ‘msg=한글’ --data-urlencode ‘name=kkk’ : url인코딩 변환 후 보낸다.

JSON으로 보내기
$ curl -H ‘Content-Type: application/json’ -X POST [주소] -d ‘{“id”:“abc”, “pwd”:“def”}’
$ curl -H “Content-Type: application/json” http://localhost:18899/sum -d “{\“a\”:10,\“b\”:20}”

DOS 커맨드에서는 데이터를 "로 감싸고 내부에 "가 있으면 \를 앞에 추가해 줘야 한다. Linux에서는 바깥을 '로 감싸면 된다. -d 옵션이면 POST로 가기 때문에 별도로 -X 옵션은 필요없다.

그 외 방법으로 사용하기

DELETE로 요청하기
$ curl -X DELETE -G [주소] -d key=value -d key=value
HTTP 인증
$ curl -v -u ID:PASSWORD [주소]

리눅스에서 웹서버 정상 체크 스크립트

#!/bin/bash

if [ "$#" -lt 1 ]; then
    echo "Usage: $0 [URL]"
    exit 1
fi

SVR=$1
RES=$(curl -L -s -o /dev/null -w "%{http_code}" ${SVR})

if [ ${RES} -ne 200 ];then
    echo "${SVR} fail: ${RES}"
    exit ${RES}
fi;

Author: crazyj7@gmail.com
Written with StackEdit.

반응형
screenvideocapture

Screen Capture (Video)

PC 화면의 일부를 캡쳐하는 방법은 많이 있는데…
PC 화면의 일부나 특정 윈도우를 간단하게 영상을 캡쳐하고 싶을 때는 어떻게 해야 할까? 무료 유틸리티를 사용하고 싶다.

먼저 Free License 유틸리티로 동영상 처리 관련된 강력한 프로그램인 ffmpeg를 권장한다.
물론 사용 방법은 커맨드 등을 익혀야 되서 복잡할 수 있지만, 여기서는 이것을 dos batch script로 만들어서 한 번만 만들어 두면 이후에 공짜로 편하게 사용할 수 있다.

  1. 프로그램 설치

구글에서 ffmpeg windows download 라고 검색해서 설치한다.
잘 모르겠으면 윈도우 패키지 링크 주소는
ffmpeg windows 64 bit binary download
다운 받은 파일을 열어 압축을 풀면 bin 폴더가 있다. bin 폴더의 파일들을 c:\windows에 복사하자. (별도 유틸리티 폴더를 만들고, 환경설정으로 PATH에 설정해 두는 것이 좋긴하지만 귀찮으면 위와 같이 한다.)
이제 DOS 커맨드 창에서 ffmpeg라고 실행해서 잘 되는지 확인한다.
image

  1. 스크립트 작성

스크립트1: 특정 윈도우 창만 캡쳐하기
ffmpeg_videocap.bat “윈도우제목” "파일명"
파일명.mp4로 파일이 생성됨.

@echo off
if "%1"=="" goto usage

:: by crazyj7@gmail.com
:: famerate ; 24, 30. 60 
:: 파일 확장자는 mp4, avi, mpg 등 
:: drawmouse : 마우스 커서를 보여줄지 여부 (1/0)

ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 30 -probesize 10M -draw_mouse 0 -i title="%1" -c:v libx264 -r 30  -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" "%2.mp4"

goto:eof

:usage
echo Usage)
echo %0 "window title" "filename"
goto:eof

스크립트2: 전체 화면 동영상 캡쳐하기 (모니터가 2개면 둘 다 캡쳐된다.)
ffmpeg_videocap_fullscreen.bat "파일명"

파일명.mp4 파일 생성됨.

@echo off
if "%1"=="" goto usage
 
:: crazyj7@gmail.com 
:: famerate ; 24, 30. 60 
:: 파일 확장자는 mp4, avi, mpg 등 
:: drawmouse : 마우스 커서를 보여줄지 여부 (1/0)
 
ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 30 -probesize 10M -draw_mouse 1 -i desktop -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p "%1.mp4"
 
goto:eof
  
:usage
echo Usage)
echo %0 "filename"
goto:eof

스크립트3: 전체 화면 동영상 캡쳐하기. (모니터2개인경우 모니터1만)
주의! 모니터1의 해상도 값으로 코드를 바꿔줘야 한다. (1280x1080 예이다.)
특정 영역 캡쳐하기도 된다. (offset과 크기 조정)
ffmpeg_videocap_full1280x1080.bat “파일명”

@echo off
if "%1"=="" goto usage

:: crazyj7@gmail.com
:: famerate ; 24, 30. 60 
:: 파일 확장자는 mp4, avi, mpg 등 
:: drawmouse : 마우스 커서를 보여줄지 여부 (1/0)

ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 30 -probesize 10M -draw_mouse 1 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p "%1.mp4"

goto:eof

:usage
echo Usage)
echo %0 "filename"
goto:eof

  1. 실행
  • 커맨드 실행 종료 (녹화 종료)는 q 또는 ^c(컨트롤c)

특정 윈도우만 동영상 캡쳐를 하려면 아래와 같이 한다.
윈도우 타이틀은 창의 상단에 타이틀바에 기록된 스트링이다. (없거나 못 찾을 경우는 화면 일부영역 캡쳐를 참고하기 바란다.)

c:\temp> ffmpeg_videocap “stackedit” “aaa”
"stackedit"란 제목의 창을 찾아 aaa.mp4 동영상 파일을 생성한다.
aaa

전체화면 동영상 캡쳐
c:\temp> ffmpeg_videofullscreen “full”
전체 화면을 녹화하여 full.mp4 파일이 생성된다. (모니터가 2개면 둘 다 나온다.)
full

모니터1만 캡쳐 또는 일부 영역만 캡쳐
(일부 영역을 지정하려면 스크립트를 수정하여 offset과 size를 조정하면 된다.)
c:\temp> ffmpeg_videofullscreen_1920_1080 “full2”
모니터1만 (1920x1080 해상도) 녹화하여 full2.mp4 동영상 파일을 생성한다.
full2

  1. 보너스 (동영상을 gif로)

생성한 동영상 파일을 움직이는 gif 파일로 변환하기
ffmpeg -i aaa.mp4 aaa.gif
브라우저에 aaa.gif 파일을 드래그드롭하면 움직이는 gif 파일이 재생된다. (웹에 올리기 편하다.)

image

Written with StackEdit.

'Develop > Windows' 카테고리의 다른 글

DOS Batch Script  (0) 2019.10.06
curl 사용법/HTTP 테스트  (0) 2019.10.01
windows 10 kernel structure  (0) 2015.08.28
윈도우8/8.1에서 visual studio 2008 설치실패시 / .net framework 설치  (0) 2015.08.20
64비트 프로그래밍  (2) 2015.06.05
반응형


windows 10 64bit


윈도우 10에서 사용되는 커널 자료 구조를 알려면....


1. 일단 디버거. windbg를 설치해야 되는데, 

https://msdn.microsoft.com/ko-kr/windows/hardware/dn913721.aspx

위 사이트로 가서 WDM 10 설치하면 디버거가 깔린다.


2. 필요한 심볼..

https://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx

위 사이트 가서 필요한 심볼 압축파일을 받아 설치한다.

3. 디버거에 심볼 설정.

ctrl+s 하고 심볼 경로에 아래 기록. e:\symbols는 본인이 설치한 심볼 경로로 변경.

SRV*e:\symbols*http://msdl.microsoft.com/download/symbols

reload 체크하여 확인.


4. 메뉴에서 중요하지 않은 프로세스나 attach하여 심볼 확인.

F6 - 중요하지 않은 임의의 프로세스(notepad.exe 등) 선택


5. 필요한 자료구조 조회


주의!!! build 1511에서 약간 변경변경되에 뒤에 추가하였음


0:032> dt _EPROCESS

ntdll!_EPROCESS

   +0x000 Pcb              : _KPROCESS

   +0x2d8 ProcessLock      : _EX_PUSH_LOCK

   +0x2e0 RundownProtect   : _EX_RUNDOWN_REF

   +0x2e8 UniqueProcessId  : Ptr64 Void

   +0x2f0 ActiveProcessLinks : _LIST_ENTRY

   +0x300 Flags2           : Uint4B

   +0x300 JobNotReallyActive : Pos 0, 1 Bit

   +0x300 AccountingFolded : Pos 1, 1 Bit

   +0x300 NewProcessReported : Pos 2, 1 Bit

   +0x300 ExitProcessReported : Pos 3, 1 Bit

   +0x300 ReportCommitChanges : Pos 4, 1 Bit

   +0x300 LastReportMemory : Pos 5, 1 Bit

   +0x300 ForceWakeCharge  : Pos 6, 1 Bit

   +0x300 CrossSessionCreate : Pos 7, 1 Bit

   +0x300 NeedsHandleRundown : Pos 8, 1 Bit

   +0x300 RefTraceEnabled  : Pos 9, 1 Bit

   +0x300 DisableDynamicCode : Pos 10, 1 Bit

   +0x300 EmptyJobEvaluated : Pos 11, 1 Bit

   +0x300 DefaultPagePriority : Pos 12, 3 Bits

   +0x300 PrimaryTokenFrozen : Pos 15, 1 Bit

   +0x300 ProcessVerifierTarget : Pos 16, 1 Bit

   +0x300 StackRandomizationDisabled : Pos 17, 1 Bit

   +0x300 AffinityPermanent : Pos 18, 1 Bit

   +0x300 AffinityUpdateEnable : Pos 19, 1 Bit

   +0x300 PropagateNode    : Pos 20, 1 Bit

   +0x300 ExplicitAffinity : Pos 21, 1 Bit

   +0x300 ProcessExecutionState : Pos 22, 2 Bits

   +0x300 DisallowStrippedImages : Pos 24, 1 Bit

   +0x300 HighEntropyASLREnabled : Pos 25, 1 Bit

   +0x300 ExtensionPointDisable : Pos 26, 1 Bit

   +0x300 ForceRelocateImages : Pos 27, 1 Bit

   +0x300 ProcessStateChangeRequest : Pos 28, 2 Bits

   +0x300 ProcessStateChangeInProgress : Pos 30, 1 Bit

   +0x300 DisallowWin32kSystemCalls : Pos 31, 1 Bit

   +0x304 Flags            : Uint4B

   +0x304 CreateReported   : Pos 0, 1 Bit

   +0x304 NoDebugInherit   : Pos 1, 1 Bit

   +0x304 ProcessExiting   : Pos 2, 1 Bit

   +0x304 ProcessDelete    : Pos 3, 1 Bit

   +0x304 ControlFlowGuardEnabled : Pos 4, 1 Bit

   +0x304 VmDeleted        : Pos 5, 1 Bit

   +0x304 OutswapEnabled   : Pos 6, 1 Bit

   +0x304 Outswapped       : Pos 7, 1 Bit

   +0x304 FailFastOnCommitFail : Pos 8, 1 Bit

   +0x304 Wow64VaSpace4Gb  : Pos 9, 1 Bit

   +0x304 AddressSpaceInitialized : Pos 10, 2 Bits

   +0x304 SetTimerResolution : Pos 12, 1 Bit

   +0x304 BreakOnTermination : Pos 13, 1 Bit

   +0x304 DeprioritizeViews : Pos 14, 1 Bit

   +0x304 WriteWatch       : Pos 15, 1 Bit

   +0x304 ProcessInSession : Pos 16, 1 Bit

   +0x304 OverrideAddressSpace : Pos 17, 1 Bit

   +0x304 HasAddressSpace  : Pos 18, 1 Bit

   +0x304 LaunchPrefetched : Pos 19, 1 Bit

   +0x304 Background       : Pos 20, 1 Bit

   +0x304 VmTopDown        : Pos 21, 1 Bit

   +0x304 ImageNotifyDone  : Pos 22, 1 Bit

   +0x304 PdeUpdateNeeded  : Pos 23, 1 Bit

   +0x304 VdmAllowed       : Pos 24, 1 Bit

   +0x304 ProcessRundown   : Pos 25, 1 Bit

   +0x304 ProcessInserted  : Pos 26, 1 Bit

   +0x304 DefaultIoPriority : Pos 27, 3 Bits

   +0x304 ProcessSelfDelete : Pos 30, 1 Bit

   +0x304 SetTimerResolutionLink : Pos 31, 1 Bit

   +0x308 CreateTime       : _LARGE_INTEGER

   +0x310 ProcessQuotaUsage : [2] Uint8B

   +0x320 ProcessQuotaPeak : [2] Uint8B

   +0x330 PeakVirtualSize  : Uint8B

   +0x338 VirtualSize      : Uint8B

   +0x340 SessionProcessLinks : _LIST_ENTRY

   +0x350 ExceptionPortData : Ptr64 Void

   +0x350 ExceptionPortValue : Uint8B

   +0x350 ExceptionPortState : Pos 0, 3 Bits

   +0x358 Token            : _EX_FAST_REF

   +0x360 WorkingSetPage   : Uint8B

   +0x368 AddressCreationLock : _EX_PUSH_LOCK

   +0x370 PageTableCommitmentLock : _EX_PUSH_LOCK

   +0x378 RotateInProgress : Ptr64 _ETHREAD

   +0x380 ForkInProgress   : Ptr64 _ETHREAD

   +0x388 CommitChargeJob  : Ptr64 _EJOB

   +0x390 CloneRoot        : _RTL_AVL_TREE

   +0x398 NumberOfPrivatePages : Uint8B

   +0x3a0 NumberOfLockedPages : Uint8B

   +0x3a8 Win32Process     : Ptr64 Void

   +0x3b0 Job              : Ptr64 _EJOB

   +0x3b8 SectionObject    : Ptr64 Void

   +0x3c0 SectionBaseAddress : Ptr64 Void

   +0x3c8 Cookie           : Uint4B

   +0x3d0 WorkingSetWatch  : Ptr64 _PAGEFAULT_HISTORY

   +0x3d8 Win32WindowStation : Ptr64 Void

   +0x3e0 InheritedFromUniqueProcessId : Ptr64 Void

   +0x3e8 LdtInformation   : Ptr64 Void

   +0x3f0 OwnerProcessId   : Uint8B

   +0x3f8 Peb              : Ptr64 _PEB

   +0x400 Session          : Ptr64 Void

   +0x408 AweInfo          : Ptr64 Void

   +0x410 QuotaBlock       : Ptr64 _EPROCESS_QUOTA_BLOCK

   +0x418 ObjectTable      : Ptr64 _HANDLE_TABLE

   +0x420 DebugPort        : Ptr64 Void

   +0x428 Wow64Process     : Ptr64 Void

   +0x430 DeviceMap        : Ptr64 Void

   +0x438 EtwDataSource    : Ptr64 Void

   +0x440 PageDirectoryPte : Uint8B

   +0x448 ImageFileName    : [15] UChar

   +0x457 PriorityClass    : UChar

   +0x458 SecurityPort     : Ptr64 Void

   +0x460 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO

   +0x468 JobLinks         : _LIST_ENTRY

   +0x478 HighestUserAddress : Ptr64 Void

   +0x480 ThreadListHead   : _LIST_ENTRY

   +0x490 ActiveThreads    : Uint4B

   +0x494 ImagePathHash    : Uint4B

   +0x498 DefaultHardErrorProcessing : Uint4B

   +0x49c LastThreadExitStatus : Int4B

   +0x4a0 PrefetchTrace    : _EX_FAST_REF

   +0x4a8 LockedPagesList  : Ptr64 Void

   +0x4b0 ReadOperationCount : _LARGE_INTEGER

   +0x4b8 WriteOperationCount : _LARGE_INTEGER

   +0x4c0 OtherOperationCount : _LARGE_INTEGER

   +0x4c8 ReadTransferCount : _LARGE_INTEGER

   +0x4d0 WriteTransferCount : _LARGE_INTEGER

   +0x4d8 OtherTransferCount : _LARGE_INTEGER

   +0x4e0 CommitChargeLimit : Uint8B

   +0x4e8 CommitCharge     : Uint8B

   +0x4f0 CommitChargePeak : Uint8B

   +0x4f8 Vm               : _MMSUPPORT

   +0x5f0 MmProcessLinks   : _LIST_ENTRY

   +0x600 ModifiedPageCount : Uint4B

   +0x604 ExitStatus       : Int4B

   +0x608 VadRoot          : _RTL_AVL_TREE

   +0x610 VadHint          : Ptr64 Void

   +0x618 VadCount         : Uint8B

   +0x620 VadPhysicalPages : Uint8B

   +0x628 VadPhysicalPagesLimit : Uint8B

   +0x630 AlpcContext      : _ALPC_PROCESS_CONTEXT

   +0x650 TimerResolutionLink : _LIST_ENTRY

   +0x660 TimerResolutionStackRecord : Ptr64 _PO_DIAG_STACK_RECORD

   +0x668 RequestedTimerResolution : Uint4B

   +0x66c SmallestTimerResolution : Uint4B

   +0x670 ExitTime         : _LARGE_INTEGER

   +0x678 InvertedFunctionTable : Ptr64 _INVERTED_FUNCTION_TABLE

   +0x680 InvertedFunctionTableLock : _EX_PUSH_LOCK

   +0x688 ActiveThreadsHighWatermark : Uint4B

   +0x68c LargePrivateVadCount : Uint4B

   +0x690 ThreadListLock   : _EX_PUSH_LOCK

   +0x698 WnfContext       : Ptr64 Void

   +0x6a0 Spare0           : Uint8B

   +0x6a8 SignatureLevel   : UChar

   +0x6a9 SectionSignatureLevel : UChar

   +0x6aa Protection       : _PS_PROTECTION

   +0x6ab HangCount        : UChar

   +0x6ac Flags3           : Uint4B

   +0x6ac Minimal          : Pos 0, 1 Bit

   +0x6ac ReplacingPageRoot : Pos 1, 1 Bit

   +0x6ac DisableNonSystemFonts : Pos 2, 1 Bit

   +0x6ac AuditNonSystemFontLoading : Pos 3, 1 Bit

   +0x6ac Crashed          : Pos 4, 1 Bit

   +0x6ac JobVadsAreTracked : Pos 5, 1 Bit

   +0x6ac VadTrackingDisabled : Pos 6, 1 Bit

   +0x6ac AuxiliaryProcess : Pos 7, 1 Bit

   +0x6ac SubsystemProcess : Pos 8, 1 Bit

   +0x6ac IndirectCpuSets  : Pos 9, 1 Bit

   +0x6ac InPrivate        : Pos 10, 1 Bit

   +0x6b0 DeviceAsid       : Int4B

   +0x6b8 SvmData          : Ptr64 Void

   +0x6c0 SvmProcessLock   : _EX_PUSH_LOCK

   +0x6c8 SvmLock          : Uint8B

   +0x6d0 SvmProcessDeviceListHead : _LIST_ENTRY

   +0x6e0 LastFreezeInterruptTime : Uint8B

   +0x6e8 DiskCounters     : Ptr64 _PROCESS_DISK_COUNTERS

   +0x6f0 PicoContext      : Ptr64 Void

   +0x6f8 TrustletIdentity : Uint8B

   +0x700 KeepAliveCounter : Uint4B

   +0x704 NoWakeKeepAliveCounter : Uint4B

   +0x708 HighPriorityFaultsAllowed : Uint4B

   +0x710 EnergyValues     : Ptr64 _PROCESS_ENERGY_VALUES

   +0x718 VmContext        : Ptr64 Void

   +0x720 Silo             : Ptr64 _ESILO

   +0x728 SiloEntry        : _LIST_ENTRY

   +0x738 SequenceNumber   : Uint8B

   +0x740 CreateInterruptTime : Uint8B

   +0x748 CreateUnbiasedInterruptTime : Uint8B

   +0x750 TotalUnbiasedFrozenTime : Uint8B

   +0x758 LastAppStateUpdateTime : Uint8B

   +0x760 LastAppStateUptime : Pos 0, 61 Bits

   +0x760 LastAppState     : Pos 61, 3 Bits

   +0x768 SharedCommitCharge : Uint8B

   +0x770 SharedCommitLock : _EX_PUSH_LOCK

   +0x778 SharedCommitLinks : _LIST_ENTRY

   +0x788 AllowedCpuSets   : Uint8B

   +0x790 DefaultCpuSets   : Uint8B

   +0x788 AllowedCpuSetsIndirect : Ptr64 Uint8B

   +0x790 DefaultCpuSetsIndirect : Ptr64 Uint8B

------------------------------------------------------------------------
Windows 10 x64, build 1511 버전에서는 위 커널 자료구조가 약간 바뀌었다.

---------

kd> dt _EPROCESS
nt!_EPROCESS
   +0x000 Pcb              : _KPROCESS
   +0x2d8 ProcessLock      : _EX_PUSH_LOCK
   +0x2e0 RundownProtect   : _EX_RUNDOWN_REF
   +0x2e8 UniqueProcessId  : Ptr64 Void
   +0x2f0 ActiveProcessLinks : _LIST_ENTRY
   +0x300 Flags2           : Uint4B
   +0x300 JobNotReallyActive : Pos 0, 1 Bit
   +0x300 AccountingFolded : Pos 1, 1 Bit
   +0x300 NewProcessReported : Pos 2, 1 Bit
   +0x300 ExitProcessReported : Pos 3, 1 Bit
   +0x300 ReportCommitChanges : Pos 4, 1 Bit
   +0x300 LastReportMemory : Pos 5, 1 Bit
   +0x300 ForceWakeCharge  : Pos 6, 1 Bit
   +0x300 CrossSessionCreate : Pos 7, 1 Bit
   +0x300 NeedsHandleRundown : Pos 8, 1 Bit
   +0x300 RefTraceEnabled  : Pos 9, 1 Bit
   +0x300 DisableDynamicCode : Pos 10, 1 Bit
   +0x300 EmptyJobEvaluated : Pos 11, 1 Bit
   +0x300 DefaultPagePriority : Pos 12, 3 Bits
   +0x300 PrimaryTokenFrozen : Pos 15, 1 Bit
   +0x300 ProcessVerifierTarget : Pos 16, 1 Bit
   +0x300 StackRandomizationDisabled : Pos 17, 1 Bit
   +0x300 AffinityPermanent : Pos 18, 1 Bit
   +0x300 AffinityUpdateEnable : Pos 19, 1 Bit
   +0x300 PropagateNode    : Pos 20, 1 Bit
   +0x300 ExplicitAffinity : Pos 21, 1 Bit
   +0x300 ProcessExecutionState : Pos 22, 2 Bits
   +0x300 DisallowStrippedImages : Pos 24, 1 Bit
   +0x300 HighEntropyASLREnabled : Pos 25, 1 Bit
   +0x300 ExtensionPointDisable : Pos 26, 1 Bit
   +0x300 ForceRelocateImages : Pos 27, 1 Bit
   +0x300 ProcessStateChangeRequest : Pos 28, 2 Bits
   +0x300 ProcessStateChangeInProgress : Pos 30, 1 Bit
   +0x300 DisallowWin32kSystemCalls : Pos 31, 1 Bit
   +0x304 Flags            : Uint4B
   +0x304 CreateReported   : Pos 0, 1 Bit
   +0x304 NoDebugInherit   : Pos 1, 1 Bit
   +0x304 ProcessExiting   : Pos 2, 1 Bit
   +0x304 ProcessDelete    : Pos 3, 1 Bit
   +0x304 ControlFlowGuardEnabled : Pos 4, 1 Bit
   +0x304 VmDeleted        : Pos 5, 1 Bit
   +0x304 OutswapEnabled   : Pos 6, 1 Bit
   +0x304 Outswapped       : Pos 7, 1 Bit
   +0x304 FailFastOnCommitFail : Pos 8, 1 Bit
   +0x304 Wow64VaSpace4Gb  : Pos 9, 1 Bit
   +0x304 AddressSpaceInitialized : Pos 10, 2 Bits
   +0x304 SetTimerResolution : Pos 12, 1 Bit
   +0x304 BreakOnTermination : Pos 13, 1 Bit
   +0x304 DeprioritizeViews : Pos 14, 1 Bit
   +0x304 WriteWatch       : Pos 15, 1 Bit
   +0x304 ProcessInSession : Pos 16, 1 Bit
   +0x304 OverrideAddressSpace : Pos 17, 1 Bit
   +0x304 HasAddressSpace  : Pos 18, 1 Bit
   +0x304 LaunchPrefetched : Pos 19, 1 Bit
   +0x304 Background       : Pos 20, 1 Bit
   +0x304 VmTopDown        : Pos 21, 1 Bit
   +0x304 ImageNotifyDone  : Pos 22, 1 Bit
   +0x304 PdeUpdateNeeded  : Pos 23, 1 Bit
   +0x304 VdmAllowed       : Pos 24, 1 Bit
   +0x304 ProcessRundown   : Pos 25, 1 Bit
   +0x304 ProcessInserted  : Pos 26, 1 Bit
   +0x304 DefaultIoPriority : Pos 27, 3 Bits
   +0x304 ProcessSelfDelete : Pos 30, 1 Bit
   +0x304 SetTimerResolutionLink : Pos 31, 1 Bit
   +0x308 CreateTime       : _LARGE_INTEGER
   +0x310 ProcessQuotaUsage : [2] Uint8B
   +0x320 ProcessQuotaPeak : [2] Uint8B
   +0x330 PeakVirtualSize  : Uint8B
   +0x338 VirtualSize      : Uint8B
   +0x340 SessionProcessLinks : _LIST_ENTRY
   +0x350 ExceptionPortData : Ptr64 Void
   +0x350 ExceptionPortValue : Uint8B
   +0x350 ExceptionPortState : Pos 0, 3 Bits
   +0x358 Token            : _EX_FAST_REF
   +0x360 WorkingSetPage   : Uint8B
   +0x368 AddressCreationLock : _EX_PUSH_LOCK
   +0x370 PageTableCommitmentLock : _EX_PUSH_LOCK
   +0x378 RotateInProgress : Ptr64 _ETHREAD
   +0x380 ForkInProgress   : Ptr64 _ETHREAD
   +0x388 CommitChargeJob  : Ptr64 _EJOB
   +0x390 CloneRoot        : _RTL_AVL_TREE
   +0x398 NumberOfPrivatePages : Uint8B
   +0x3a0 NumberOfLockedPages : Uint8B
   +0x3a8 Win32Process     : Ptr64 Void
   +0x3b0 Job              : Ptr64 _EJOB
   +0x3b8 SectionObject    : Ptr64 Void
   +0x3c0 SectionBaseAddress : Ptr64 Void
   +0x3c8 Cookie           : Uint4B
   +0x3d0 WorkingSetWatch  : Ptr64 _PAGEFAULT_HISTORY
   +0x3d8 Win32WindowStation : Ptr64 Void
   +0x3e0 InheritedFromUniqueProcessId : Ptr64 Void
   +0x3e8 LdtInformation   : Ptr64 Void
   +0x3f0 OwnerProcessId   : Uint8B
   +0x3f8 Peb              : Ptr64 _PEB
   +0x400 Session          : Ptr64 Void
   +0x408 AweInfo          : Ptr64 Void
   +0x410 QuotaBlock       : Ptr64 _EPROCESS_QUOTA_BLOCK
   +0x418 ObjectTable      : Ptr64 _HANDLE_TABLE
   +0x420 DebugPort        : Ptr64 Void
   +0x428 WoW64Process     : Ptr64 _EWOW64PROCESS
   +0x430 DeviceMap        : Ptr64 Void
   +0x438 EtwDataSource    : Ptr64 Void
   +0x440 PageDirectoryPte : Uint8B
   +0x448 ImageFilePointer : Ptr64 _FILE_OBJECT
   +0x450 ImageFileName    : [15] UChar
   +0x45f PriorityClass    : UChar
   +0x460 SecurityPort     : Ptr64 Void
   +0x468 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO
   +0x470 JobLinks         : _LIST_ENTRY
   +0x480 HighestUserAddress : Ptr64 Void
   +0x488 ThreadListHead   : _LIST_ENTRY
   +0x498 ActiveThreads    : Uint4B
   +0x49c ImagePathHash    : Uint4B
   +0x4a0 DefaultHardErrorProcessing : Uint4B
   +0x4a4 LastThreadExitStatus : Int4B
   +0x4a8 PrefetchTrace    : _EX_FAST_REF
   +0x4b0 LockedPagesList  : Ptr64 Void
   +0x4b8 ReadOperationCount : _LARGE_INTEGER
   +0x4c0 WriteOperationCount : _LARGE_INTEGER
   +0x4c8 OtherOperationCount : _LARGE_INTEGER
   +0x4d0 ReadTransferCount : _LARGE_INTEGER
   +0x4d8 WriteTransferCount : _LARGE_INTEGER
   +0x4e0 OtherTransferCount : _LARGE_INTEGER
   +0x4e8 CommitChargeLimit : Uint8B
   +0x4f0 CommitCharge     : Uint8B
   +0x4f8 CommitChargePeak : Uint8B
   +0x500 Vm               : _MMSUPPORT
   +0x5f8 MmProcessLinks   : _LIST_ENTRY
   +0x608 ModifiedPageCount : Uint4B
   +0x60c ExitStatus       : Int4B
   +0x610 VadRoot          : _RTL_AVL_TREE
   +0x618 VadHint          : Ptr64 Void
   +0x620 VadCount         : Uint8B
   +0x628 VadPhysicalPages : Uint8B
   +0x630 VadPhysicalPagesLimit : Uint8B
   +0x638 AlpcContext      : _ALPC_PROCESS_CONTEXT
   +0x658 TimerResolutionLink : _LIST_ENTRY
   +0x668 TimerResolutionStackRecord : Ptr64 _PO_DIAG_STACK_RECORD
   +0x670 RequestedTimerResolution : Uint4B
   +0x674 SmallestTimerResolution : Uint4B
   +0x678 ExitTime         : _LARGE_INTEGER
   +0x680 InvertedFunctionTable : Ptr64 _INVERTED_FUNCTION_TABLE
   +0x688 InvertedFunctionTableLock : _EX_PUSH_LOCK
   +0x690 ActiveThreadsHighWatermark : Uint4B
   +0x694 LargePrivateVadCount : Uint4B
   +0x698 ThreadListLock   : _EX_PUSH_LOCK
   +0x6a0 WnfContext       : Ptr64 Void
   +0x6a8 Spare0           : Uint8B
   +0x6b0 SignatureLevel   : UChar
   +0x6b1 SectionSignatureLevel : UChar
   +0x6b2 Protection       : _PS_PROTECTION
   +0x6b3 HangCount        : UChar
   +0x6b4 Flags3           : Uint4B
   +0x6b4 Minimal          : Pos 0, 1 Bit
   +0x6b4 ReplacingPageRoot : Pos 1, 1 Bit
   +0x6b4 DisableNonSystemFonts : Pos 2, 1 Bit
   +0x6b4 AuditNonSystemFontLoading : Pos 3, 1 Bit
   +0x6b4 Crashed          : Pos 4, 1 Bit
   +0x6b4 JobVadsAreTracked : Pos 5, 1 Bit
   +0x6b4 VadTrackingDisabled : Pos 6, 1 Bit
   +0x6b4 AuxiliaryProcess : Pos 7, 1 Bit
   +0x6b4 SubsystemProcess : Pos 8, 1 Bit
   +0x6b4 IndirectCpuSets  : Pos 9, 1 Bit
   +0x6b4 InPrivate        : Pos 10, 1 Bit
   +0x6b4 ProhibitRemoteImageMap : Pos 11, 1 Bit
   +0x6b4 ProhibitLowILImageMap : Pos 12, 1 Bit
   +0x6b4 SignatureMitigationOptIn : Pos 13, 1 Bit
   +0x6b8 DeviceAsid       : Int4B
   +0x6c0 SvmData          : Ptr64 Void
   +0x6c8 SvmProcessLock   : _EX_PUSH_LOCK
   +0x6d0 SvmLock          : Uint8B
   +0x6d8 SvmProcessDeviceListHead : _LIST_ENTRY
   +0x6e8 LastFreezeInterruptTime : Uint8B
   +0x6f0 DiskCounters     : Ptr64 _PROCESS_DISK_COUNTERS
   +0x6f8 PicoContext      : Ptr64 Void
   +0x700 TrustletIdentity : Uint8B
   +0x708 KeepAliveCounter : Uint4B
   +0x70c NoWakeKeepAliveCounter : Uint4B
   +0x710 HighPriorityFaultsAllowed : Uint4B
   +0x718 EnergyValues     : Ptr64 _PROCESS_ENERGY_VALUES
   +0x720 VmContext        : Ptr64 Void
   +0x728 SequenceNumber   : Uint8B
   +0x730 CreateInterruptTime : Uint8B
   +0x738 CreateUnbiasedInterruptTime : Uint8B
   +0x740 TotalUnbiasedFrozenTime : Uint8B
   +0x748 LastAppStateUpdateTime : Uint8B
   +0x750 LastAppStateUptime : Pos 0, 61 Bits
   +0x750 LastAppState     : Pos 61, 3 Bits
   +0x758 SharedCommitCharge : Uint8B
   +0x760 SharedCommitLock : _EX_PUSH_LOCK
   +0x768 SharedCommitLinks : _LIST_ENTRY
   +0x778 AllowedCpuSets   : Uint8B
   +0x780 DefaultCpuSets   : Uint8B
   +0x778 AllowedCpuSetsIndirect : Ptr64 Uint8B
   +0x780 DefaultCpuSetsIndirect : Ptr64 Uint8B





+ Recent posts