반응형

전체 글 229

시프트

시프트와 회전 명령어 및 응용 목표 : 시프트 연산의 기본적이 사용법과 응용 및 각 연산이 플래그에 미치는 영향까지 알아보자. 1.시프트(Shift)란? - 피연산자 내부에서 비트를 좌우로 이동하는 것을 의미한다. 표 1-1은 인텔이 제공하는 시프트 명령어를 나열한 것이다. [표 1-1] – 시프트와 회전 명령어 명령어 설명 SHL * 왼쪽 시프트 SHR * 오른쪽 시프트 SAL * 왼쪽 산술 시프트 SAR * 오른쪽 산술 시프트 ROL * 왼쪽 회전 ROR * 오른쪽 회전 RCL * 왼쪽 캐리포함 회전 RCR * 오른쪽 캐리포함 회전 SHLD * 2배 정밀도 왼쪽 시프트 SHRD * 2배 정밀도 오른쪽 시프트 2. 논리 시프트와 산술 시프트 1) 논리 시프트 - 피연산자의 비트를 시프트하는 방법으로 새..

rev-basic-4 풀이

https://dreamhack.io/wargame/challenges/18 rev-basic-4 풀이 Detect it easy다운로드사이트 http://ntinfo.biz/index.html .:NTInfo:. ntinfo.biz 대충 패킹/플텍없고 다른보안안보오기고 puts가보인다 디버거로 ep들어가서 문자열검색 성공열 으로들어가서 안에 내부함수안에 들어가서 기록한모습이다 저렇게 옆에 ;이나 클릭으로 주석을 작성할수있다 밑에덤프창에는 암호화된문자들이있다 암호화된값을 추출한후에 문자열 문자1 >> 4 문자2 > 4 문자2 > 4;//시프트 d = a[b]

rev-basic-3 풀이

https://dreamhack.io/wargame/challenges/17 rev-basic-3 풀이 Detect it easy다운로드사이트 http://ntinfo.biz/index.html .:NTInfo:. ntinfo.biz 이번것도 노패킹/플텍 64비트 puts확인 문자열검색 분기문 bp F7으로 들어가서보면 문장이보이는데 밑에문을보면입력할걸 암호화한문장인것같다 대충 과정은 a = 0 문자 한개씩가져오고 문자 xor a 뺸문자+a*2 인것같다 이걸 보면 뒤집어서 코딩해서 알고리즘만들면 끝 #include #include #include void main() { char a[] = { 0x49, 0x60, 0x67, 0x74, 0x63, 0x67, 0x42, 0x66, 0x80, 0x78, 0x..

rev-basic-2 풀이

https://dreamhack.io/wargame/challenges/16 rev-basic-3 풀이 Detect it easy다운로드사이트 http://ntinfo.biz/index.html .:NTInfo:. ntinfo.biz 이것도 그전것들랑같이 재활용을좀했나보다 c언어고 64비트 노 플텍/패킹 puts가나오는걸보니 이것도 재활용해서만든것같다 EP 문자열검색 bp f7후 안에 구조분석 누가봐도 이게 비교하는문자열이다 어셈블리어를보면.. 정답은 덤프값에있는걸 입력하면된다

rev-basic-1 풀이

https://dreamhack.io/wargame/challenges/15 rev-basic-1 Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출� dreamhack.io rev-basic-1 풀이 Detect it easy다운로드사이트 http://ntinfo.biz/index.html .:NTInfo:. ntinfo.biz 0이랑같이 c언어이고 64비트프로그램이다 패킹이나 프로텍터는없다 puts로보아 0번이랑 비슷하게만들어진것같다 EP call함수에 bp후 저기코드를보면될것같다 0번이란 코드가 많이비슷하네 재활용했나..

rev-basic-0 풀이

https://dreamhack.io/wargame/challenges/14 문제rev-basic-0 풀이 Detect it easy다운로드사이트 http://ntinfo.biz/index.html .:NTInfo:. ntinfo.biz 일단적으로 빌드정보를보아 c언어로 코딩되있고 별다른 패킹이나 프로텍터등은 안보이고 pe가 64비트인걸 확인할수있습니다 api중에 strcmp 문자열비교도보이고 puts로 가져오는것도보이네요 아마 puts로 가져온후 strcmp로 비교하는것같네요 EP로갑니다 문자열검색중에 correct가보이네요 저위부분이 puts부분인것같으니저부분에 bp를해보십다 f7로가보면 strcmp문자열비교가나옵니다 이코드안에 rdx안에 답이있네요 끝 다른방법2 그냥여기가서 strcmp하고가서 정답..

프로그래밍(코딩,정공학)과리버싱(역공학)의활용

기초적으로 이글은 c언어 연산하고 라이브러리 파이썬의대한것들및 리버싱지식을 가진자를위해서 쓴글입니다 코딩과리버싱의 활용입니다 간단한예시를보죠 1번째예시입니다 키젠 풀이입니다 이건 abex크랙미 5번입니다 저걸 리버싱기술을 이용해서 구조및암호화원리를따면 정리하면 현재시간구하는api를활용해서 ((현재시간*5)+1000)*현재년도 이런한 식을만들었다면 저는 간단하게 키젠을풀수있는 파이썬을이용해서 datetime를이용해서 작성하면 이렇게 작성할수있습니다 이게 예제1번입니다 많은사람이이런용도로 사용하죠 예제2번입니다 우리가 api를볼때 예를들어 messageboxA를볼때 그게 어셈블리어로 보면 이해가안될수있습니다 이렇게 코딩하면서 어떻게 구성되는지 이해가더잘될수있습니다 이걸 어셈블리어로 안을보면 좀더어렵게보이지만..

프로그램, 프로세스, 프로세서 차이점

먼저 프로그램부터 시작하죠 사전적의미로는 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체. 이렇습니다 이걸 쉽게말하면 명령문의 집합체라고하죠 간단하게 프로세스에대해서 말해보죠 우리가 윈도우에서 프로그램을 더블클릭할때 그건 실행되고 동작하고있습니다 이상태가 바로 프로세스입니다 프로세서를보죠 사전적으로 Processor (프로세서)는 하드웨어적인 측면에서 "컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛"이다. 이는 중앙처리장치(Central Processing Unit)를 뜻하며 폰노이만 아키텍쳐에 의해 만들어졌다면 적어도 하나 이상의 ALU (Arithmetic Logic Unit)와 처리 레지스터(Register)를 내장하고 있어야 한다. 뭐 이런이야기지..

컴퓨터 구조 2020.05.03
반응형