버튼을누르면 변수 a값을 a++ 로 1씩증가시킨뒤 레이블에 변수 a 값을 출력하게하는 프로그램을 만듦
그리고 CE로버튼을누르면 1씩올라가는게아니라 3씩올라가게 만들고싶어서 값을 검색한뒤 Find out what writes to this address 를 이용하여 저걸 찾은뒤
메모리뷰에 들어가서 저렇게 바꾸고 오케이를누르니
이러한 에러가나옴 대충 해석해보니 생성된 코드가 7바이트인데 선택한 옵코드가 6바이트의 길이다. 너 불완전한 옵코드를 NOP's 로 대체하길원하니?
해서 그냥 뭔지몰라서 yes하고 프로그램 버튼눌르니 프로그램이꺼짐 다시시도해서 No 를 누르고 프로그램 버튼을누르니 또 꺼짐.
그냥 대충 인터넷에서 3분정도 어셈블리튜토리얼 앞쪽내용에 inc add sub mov 같은거보고 한번해봤는데
잘안되는데 어떻게 해야지 3씩증가하게 바꿀수있을까요?
write되는부분 follow하면 쉬운데 튜토리얼은 다했음?
아뇨 그냥 mov,jmp,add,inc,sub 등등 이런게 어떤역활을하는지만 보고 해봤는데 안되네요
뭘 생성한거지? 어셈블리 코드를 한줄 더 넣은건가
ㄴㄴ inc [eax+00000148] 이걸 add [eax+00000148],3 으로 바꾸려고 더블클릭한뒤 저렇게 입력한뒤 오케이누르니 저런오류가나옴
inc와 add의 byte길이가 달라서 그런거아님? 그래서 nop로 바꿀거냐고 물어보는데 니가 yes햇네 - 주니엘 갤러리
그리고 보니께 add는 3개써야되는거 아닌감?
No를 눌러봐도 똑같이 안됨.. 프로그램꺼져버림..
ADD 명령은 두 개의 정수를 더할 때 사용된다.add eax, 4 ; eax = eax + 4
저거보고 내가한번해보자! 하고 프로그램만든뒤 해봣더니 안대네..
inc는 하나 증가라서 저거 주소 하나만 써줘도 상관없는데 add는 add [], [], [] 이렇게 세개
음? 강좌엔 두개의 인자만 받던데... 그럼 마지막인자엔 뭐써야되 3개면?
add r,3이면 r=r+3되지않음? - 주니엘 갤러리
ㅇㅇ 제말이그말임 1씩이아닌 3씩올리고싶어서 그렇게햇더니에러..
add는 두개써도 되넹
대체 어떻게해야 성공적으로 바꿀수가있을까요? No 를눌러도 버튼누르면 프로그램이 꺼져버리니원..
add랑 inc의 길이가 다를수도있나
후 그냥 내일이나 모레에 책 주문한거오면 책으로 공부해야겟음
어떤 프로그램인지는 모르겠는데 기존에 있는거에 opcode를 바꾸면 안될꺼 같은데, 차라리 add [], 2 이걸 add [], 4로 바꾸는거 테스트 해보심도 괜찮을듯 아니면 sub을 add로 바꾸거나 inc는 필요개수가 1개이고 add는 두개라서 어떻게 변역될지 모르겠넴
애초에 저거 올리는 코드가 a++ 로 올리는거라 inc 일수밖에없음 그래서 add는 없어서 inc를 add 로 바꿀수밖에없음..
기본으로 만든 프로그램에 a++ 이거 말고 b = a + 4 이런식으로 해서 테스트해보삼여
add랑 inc의 오피코드 성향이 달라서 안될수가잇을듯
아하 ㅇㅋㅇㅋ 알겟심
ㅇㅇ//역활->역할 (역할 (役割)[명사] : 자기가 마땅히 하여야 할 맡은 바 직책이나 임무.) [리듬 맞춤법 봇♬]
음 그렇게하니 되긴하넹..