어셈블리 튜토리얼 (18) 64비트 api hooking(Trampoline #2)

4.5. api hooking(Trampoline #2)

좀 더 유연한 Trampoline방식과 조금 다른 방식의 소스이다. 원래의 함수를 이어붙인 이전방식과 달리 매번 후킹을 해제했다가 다시거는 방식이다.
후킹된 함수들을 관리하기위해 후킹 관련 정보를 담은 구조체를 추가하였다.

앞서본 Trampoline처럼 기본구현 방식은 14byte(jmp코드)를 덮어씌우는 방식으로 동일하다. 후킹함수내에서 …

어셈 퍼즐게임 TIS-100 후기/추천


https://store.steampowered.com/app/370360

간단한 어셈블리 코드로 퍼즐을 푸는게임이다. 프로그래밍하는 맛도나고 한정적인 코드 몇개로 구성하는거라 그렇게 복잡하지도 않다. 프로그래밍에 관심있는 일반인도 즐길수 있을거 같다.

한글화가 아니라는게 좀 아쉬운데 스토리적인 요소는 거의없으니 큰 문제는 없다. 스테이지 구성으로 입력값을 어셈 코드를 배치시켜서 원하는 출력으로 내보내면 …

anet a8 마를린 1.1.9 펌웨어 (marlin firmware) 올리기

arduino 1.8 다운로드

anet board 작업된 arduino 1.8 다운로드

다운로드

arduino에 직접 추가하려면 여기 참고한다.
https://github.com/SkyNet3D/anet-board

마를린 marlin 소스 다운로드

1) 소스 다운로드
https://github.com/MarlinFirmware/Marlin/releases

2) anet a8 설정파일 복사

압축풀면 아래의 경로에 Configuration.h Configuration_adv.h 파일을

Marlin/example_configurations/Anet/A8/

아래 경로로 복사해서 덮어씌운다.…

anet a8 오토레벨링 센서 변경 (LJ12A-4-Z/BX)

anet a8 전용 사각 센서에서 LJ12A-4-Z/BX 원형 센서로 변경했다

가장 큰이유는 베드 레벨링 수치가 이상해서 센서를 의심한게 컸고

그것 외에도 전용 센서는 노즐 뒤쪽에 달게 되는게 이게 은근히 불편하다. 위치 조절하기도 쉽지않았고..

무엇보다 생긴게 이게 더 이쁘다.

마음같이서 bltouch를 달고싶었으나 …

OctoPrint 로 anet a8 펌웨어 업데이트하기 (marlin, skynet)

https://github.com/OctoPrint/OctoPrint-FirmwareUpdater

플러그인을 이용하여 OctoPrint에서 간편하게 펌웨어 업데이트를 할 수 있다.
펌웨어 올릴때마다 PC 연결하기 귀찮았는데 이걸로 엄청 편해졌다. (챔버에 넣으니 더욱..)
marlin, skynet 둘 다 정상적으로 업데이트 되었다.

OctoPrint(라즈베리파이)에 avrdude 설치

Octoprint에 ssh접속을 한다.

repository를 업데이트하고 avrdude를 설치한다.

sudo apt-get 

베드 레벨링 상태 확인 Bed Visualizer

베드 레벨링 상태를 3차원 그래프로 표현해주는 Octoprint 플러그인이다.
오토레벨링이 제대로 동작하는지 점검할때도 좋은거 같다.
플러그인 매니저에서 검색 설치하면 된다.


오토레벨링을 시작하는 gcode이다.

M155 S30
@BEDLEVELVISUALIZER
G29 T
M155 S3


rawdata이다. 나의 경우 현재 4점 측정으로 4×4의 rawdata가 저장되어있다.

수치로는 헷갈릴수 …

어셈블리 튜토리얼 (17) 64비트 api hooking(Trampoline)

4.5. api hooking(Trampoline)

Trampoline은 IAT 방식과 달리 많이 복잡해졌다. 32비트와 달라진점 에서 잠깐 설명했었듯이 64bit에서는 함수의 시작이 정형화되어있지 않다.

32bit MessageBoxA 함수

; 32bit stdcall 정형화된 함수시작 (5byte)
mov edi,edi
push ebp
mov ebp,esp

64bit MessageBoxA 함수

; 64bit fastcall 

[node.js] i18n 다국어 helper app

i18n 다국어

기본적으로 po파일을 관리하지 않고 소스에서만 입력하여 빠르게 개발하기위해 만들었다.

msg_id는 한글로 하며 앞에 @를 붙인다.

  <th>
  <?__('@이름')?>
  </th>

어느정도 완료 시점을 잡아서 이 스크립트를 실행하면 소스와 DB를 파싱하고 기존에 po파일과 비교하여 없는 단어일경우 po파일을 생성해준다. 이 작업을 반복한다. …

어셈블리 튜토리얼 (16) 64비트 api hooking(IAT)

4.5. api hooking(IAT)

마찬가지로 32비트와 크게 다르지 않다. 이전 예제처럼 fastcall함수콜 방식에서 파라메터 설정하는 부분과 메모리주소(포인터)의 크기가 dword가 아닌 qword이라는 점만 제외하면 똑같으니 이 부분만 확인하면서 훑어보자.

apihook_64.asm

option casemap:none
;option frame:auto

include D:\WinInc208\Include\windows.inc
;include D:\WinInc208\Include\user32.inc
;include 

anet a8 히팅베드 케이블 타버림(화재)

anet a8 히팅베드 케이블단자가 문제가 많다고 익히 들어 알고는 있어서 바꿔야지.. 생각만하고 있었는데..

어제 문득 보니깐 케이블단자가 검게 타있다 ㄷㄷㄷ (그을린것도 아니고 정말 탐;;)

마데인차이나 저가3D프린터는 역시 자나께나 불조심해야한다는걸 새삼 깨달았다;;

일단은.. 해당 핀만 살짝 뽑아서 상태를 확인.

케이블도 역시 …