본문 바로가기
반응형

전체 글123

Rice Tea Cat Panda - Tea Clicker 저 차(Tea)를 클릭하면 포인트가 1점씩 올라간다. Flag는 999999999999 points가 되어야 얻을 수 있는 것 같다. 처음에는 매크로를 한 번 돌려볼까 했다. 매크로를 짜서 돌리고오니 점수가 꽤나 올라가있긴 했지만 택도 없다고 느꼈을 때... 문제로 돌아와보니 흠 다른 방법을 생각해본다. 사실 처음 보자마자 치트엔진이 떠올랐지만, 귀찮아서 미루다가 그제서야 치트엔진으로 풀이를 접근했다. 가장 처음 접근하는 방법은 points를 저장하는 변수가 있을테니 그곳을 찾아내서 풀자! 방법은 점수를 1점씩 올리고 그 해당 점수를 찾아내자는 생각이었는데, 실패했다. 이 게임은 Score가 그대로 저장되는게 아니라는 것을 알 수 있다. 그래서 점수의 변화의 유무로 찾아보는 것으로 방법을 변경했다.(약간.. 2020. 2. 5.
Intel x86 Insturction Set Architecture - 6 [Multiplication, Division] MUL(unsigned multiply)명령어는 부호없는 AL, AX, EAX를 피연산자와 곱한다. 더보기 Implied Operands Multiplicand Multiplier Product AL(8) r/m8 AX (16) AX(16) r/m16 DX:AX (16bit 레지스터 2개 사용) EAX(32) r/m32 EDX:EAX (32bit 레지스터 2개 사용) IMUL명령어는 음수를 포함한 수를 곱할때 필요한 명령어이다. EAX와의 연산 뿐만 아니라 레지스터의 곱, 레지스터와 메모리의 곱, 상수와의 곱이 가능하다. 부호를 고려한 곱셈인 IMUL의 예를 들어보자. ECX = ECX * Double 를 한다. ECX와 Double 모두 음수로 인식한다... 2019. 11. 24.
Intel x86 Insturction Set Architecture - 5 [Shift and rotate] [Shift and Rotate Instructions] 리버싱을 하다보면, 이런 명령어를 만나게된다. 더보기 SHL, SHR, SAL, SAR ROL, ROR, RCL, RCR SHLD, SHRD 일단, Logical shift와 arithmetic shift를 비교해보자. Logical shift는 부호 비트가 보존되지않으며, 새로운 비트를 0으로 채운다. arithmetic shift는 새로운 비트를 sign bit(부호비트)의 복사본으로 채운다. [SHL SHR] SHL 명령어는 destination operand를 source operand만큼 왼쪽으로 shift시킨다. (SHL destination, source) 그리고 하단 비트는 0으로 채운다. SHL이 .. 2019. 11. 17.
Intel x86 Insturction Set Architecture - 4 [Conditional Jumps] IA-32(Intel Architecture) instruction set에서는 if-then-else와 같은 high-level logic 구조가 없다. 하지만, 비교 조합과 논리구조 보충을 위한 점프를 사용할 수 있다. 우선, CMP, AND, SUB와 같은 명령어들은 CPU Flags들을 수정한다. 그 후, Conditional Jumps 명령어는 플래그를 테스트하고 그것에 따라 수행 흐름을 바꾼다. [Jcond instruction] Conditional jump 명령어는 특정한 레지스터나 플래그 상태변화가 있으면 label로 분기한다. Based on specific flag values Based on equality between operands Based.. 2019. 11. 4.
반응형