디버깅을 해보면, 연속하는 두개의 입력값의 합이 메모리에 저장된 문자와 일치하는지를 확인하는 코드이다 예를 들어서 입력값으로 문자열 abcdef...를 집어넣으면, -> a+b 즉 0x61 + 0x62가 0xAD 인지 확인 (다르면 종료) -> b+c 즉 0x62 + 0x63이 0xD8 인지 확인 (다르면 종료) -> c+d 즉 0x63 + 0x64가 0xCB 인지 확인. (다르면 종료) -> 계속 반복된다 00007FF7809E3000 AD D8 CB CB 9D 97 CB C4 92 A1 D2 D7 D2 D6 A8 A5 .ØËË..ËÄ.¡Ò×ÒÖ¨¥ 00007FF7809E3010 DC C7 AD A3 A1 98 4C 00 00 00 00 00 00 00 00 00 ÜÇ.£¡.L......... 그렇다면..
Dreamhack - rev-basic-4 기본적인 구조 설명은 생략하고 키를 찾는 부분만 설명합니다. 어셈블리 코드 입력값을 받아서 한바이트씩 연산하여 아래의 메모리에 있는 값과 비교한다. 연산 1) sar eax, 4 -> 입력값을 오른쪽으로 4칸 비트 밀기 -> 연산 결과가 저장된 eax는 건드리지 않음 연산 2) shl ecx, 4 및 and ecx, F0 -> 입력값에 왼쪽으로 4칸 비트 밀기 -> 그리고 다시 ecx를 F0과 and 연산 연산 3) or eax, ecx -> 연산1과 연산2의 결과에 OR 연산 사용 -> eax에 저장됨 연산 4) lea ~ 부터 cmp eax, ecx -> 연산3의 결과와 메모리 [7FF7FCAE3000]에 저장된 값을 비교한다 중간에 적용된 OR 연산은 역원..
개인적인 참고 용도입니다 - 1 의 보수 : 0 은 1 로 , 1 은 0 으로 변경 ( 00000100 → 11111011) - 2 의 보수 : 1 의 보수에서 1 을 더한 값 ( 11111011 → 11111100) 스택 - 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역 - 높은 주소에서 낮은 주소로 신장 - LIFO 구조 : 가장 처음에 들어간 데이터가 가장 나중에 나옴 힙 - 동적으로 메모리 할당 시 사용하는 영역 - 낮은 주소에서 높은 주소로 신장 데이터 타입, 데이터 크기 비트 (bit): 0 또는 1 바이트 (byte): 8 비트 워드 (word): 16 비트 더블 워드 (dword): 32 비트 ( ARM 아키텍처에서는 워드) 쿼드 워드 : 64 비트 ( ARM 아키텍처에서는..
개인적인 참고 용도입니다 구글과 나는 어떻게 연결되나 tracert 8.8.8.8 리눅스에서 traceroute (UDP 패킷 보냄) tracert는 ICMP Echo Request -> 11단계 OSI7 계층 모델 2계층 Data Link Layer 물리주소로 MAC 주소 사용 이더넷 프로토콜 이더넷 : 1980년에 처음 개발되었으머 1983년에 IEEE802.3으로 표준화 됨. 여러 컴퓨터가 동시에 데이터를 보낼 수 있음 Collision handling : Carrier Sense Multiple Access - Collision Detection (SCMA/CD) WLAN ARP - 같은 네트워크 대역에서 MAC주소를 알아오기 위해 사용함 ARP 테이블 확인하기 arp man arp arp -a ..
GNS3는 아래 경로의 VM List를 자동으로 읽어온다. 따라서 VM 파일을 아래의 경로로 이동해 놓으면 인식이 된다. -> C:\Users\[UserName]\Documents\Virtual Machines Virtualbox는 잘 뜨는데 VMware만 자꾸 안 떠서 엄청 헤맸네요...... VMware VM templates 화면 여기서 New를 눌러도 VM 리스트에 아무것도 안 뜸 예를 들면 이런 느낌으로...
안녕하세요? 2편이 많이 늦었네요. 1편에 이어 일부 기능을 업데이트하고 조금 더 완성도 있는 프로그램으로 만들고자 합니다. 게시물 작성 이후 추가 업데이트된 코드는 github를 참조해주세요. https://github.com/kminito/srt_reservation 1편 링크 https://kminito.tistory.com/79 1. 프로그램 구조 바꾸기 이후의 기능 추가를 편리하게 하도록 하기 위하여 1편의 프로그램을 함수를 사용하는 형태로 바꾸겠습니다. 주석을 최소화하여 1편을 기준으로 수정된 부분 위주로 주석을 남기겠습니다. 각 코드의 기능에 대한 설명은 1편을 참조해주세요. # -*- coding: utf-8 -*- import time from random import randint fr..
Even though source code made by SAP GUI Scripting (Recording) is .vbs file, it is not executed on excel VBA directly. If copy and past code from the .vbs file and run it, you can see below error message. Compile Error Invalid Use of property Problematic part of the code is below. This is very beginning part of code which is from SAP Scripting. The error occurs because the variable 'application' ..
I use OpenPyXl for handling excel in python, but it doesn't support handlling hyperlinks of images and shapes. In that case, we need to use COM (Component Object Model) to handle excel program directly and use other functions available in excel itself. Sample : test1.xlsx file with two images. Code 1 import os import win32com.client excel = win32com.client.Dispatch("Excel.Application") # excel.V..
안녕하세요? 과거에 처음 코딩을 배우던 시절 짠 허접한 SRT 매진 표 예매 게시물을 올렸었는데요, 이번에 코드를 새로 짜는 김에 파이썬 초보분들에게 도움이 될 수 있도록 어떤 식으로 접근하였는지 처음부터 설명하고자 합니다. 이 게시물에서는 파이썬을 이용하여 SRT 표 검색 및 자동 예매, 매진 표 예매를 위한 자동 새로고침에 대한 코드를 다룰 것입니다. 이후 게시물에서는 기차 조건 선택이나 예약 대기, 텔레그램 알람 등의 추가 기능을 구현하고, 더 완성된 프로그램의 형태로 만드는 과정을 공유하고자 합니다. SRT 매진 표 자동 예매 시도 1. 개요 1-1. 목표 과거 처음 파이썬을 배우던 시절에 만들었던 부끄럽고 비효율적인 코드를 새롭게 작성하며, 파이썬을 통한 기차 예매 자동화나 업무 자동화에 관심이..
웹드라이버는 프로그래밍 언어를 이용하여 웹브라우저를 직접적으로 조작할 수 있도록 해 주는 툴입니다. 여기서는 Chrome의 Webdriver인 Chromedriver를 다운 받는 법을 알아봅니다. 1. Chrome 설치하기 (없을 경우) 크롬이 없다면 크롬을 설치합니다. 크롬 다운로드 페이지 : https://www.google.co.kr/chrome Chrome 웹브라우저 더욱 스마트해진 Google로 더 간편하고 안전하고 빠르게. www.google.com 2. Chromedriver 다운받기 2-1. 설치된 크롬 버전 확인하기 크롬드라이버는 설치되어 있는 크롬과 맞는 버전을 다운받아야 정상적으로 작동이 됩니다. 현재 설치된 크롬의 버전을 확인하기 위하여 1) 크롬 실행 후 2) 브라우저 오른쪽 상단..
안녕하세요? 인터넷에 PyRFC를 이용하여 SAP를 이용하는 방법에 대한 예제 코드가 거의 전무하다시피하여, 일부 공유하고자 합니다. 저는 영업직이라 SAP에서 재고, 출하 내역, 판매 실적 확인 등의 일부 기능만 사용하고 SAP에 대한 이해도 깊지 못합니다. 제가 아는 선에서 설명하였으므로 혹시 잘못된 내용이 있으면 알려주세요. 여기서는 파이썬을 이용하여 SAP R/3의 데이터 테이블에 접근합니다. GUI Scripting을 이용하는 것 보다 PyRFC를 이용하는 것이 훨씬 더 빠르고 편리합니다. 물론 처음 사용하는 게 좀 어렵고 까다롭지만요.. 1. 기본 정보 1) SAP 테이블에 대하여 SAP에서 Transaction을 하는 것은 기본적으로 SAP 데이터베이스의 테이블에 쿼리를 날려 데이터를 가지고..
안녕하세요? 판다스에서 피벗테이블을 만들면, multi-index로 인해서 다른 데이터 프레임과 값을 비교하거나 연산을 하기에 불편합니다. 이럴 때는 목적에 맞게 피벗 테이블을 일반 데이터프레임으로 바꾸어 주는 게 편합니다. reset_index 메서드를 이용하면 간단히 할 수 있습니다. 코드 df.reset_index(inplace=True) inplace 파라메터를 True로 주시면 피벗테이블에 바로 적용됩니다. 방법 아래와 같이 피벗 테이블을 준비한 후 reset_index 메서드를 사용하면 됩니다. 끝. 엑셀에서 피벗 테이블을 만든 후 다른 데이터와 값을 비교하거나 연산 할 때는 그냥 값을 복사하여 사용하면 되는데, 판다스에서는 그게 번거롭습니다. 여러가지 방법을 생각해봤는데, 피벗테이블(혹은 g..