글 수 87
2012.11.03 00:19:10
ATCode_lightA.dll << 요걸로 해보시길..
이름출력시에만 문제가 된다고 하셔서 간단하게 작업했습니다.
처음 2바이트가 0708 일때 널문자를 2F 로 변경하고 번역후에 처음 2바이트가 0708 일때 2F 를 널문자로 수정하게끔
아마도 루비문자일때도 널문자를 사용한다면 수정문이 좀 길어질듯싶군요...
번역후 나가는길은 덮어쓰기 방식일때만 지나가는 길입니다. 아마도 덮어쓰기겠죠 ^^:;
2012.11.03 03:06:54
제가 테스트했던것들은 모두 대사같은경우 모두 특정 메모리에 복사해서 쓰고 널문자로 공간확보후 다시 쓰는 식의 메모리 사용을 했던곳에 덮어쓰기 + 버퍼무시로 작업을 했었습니다.
수정형식은 읽어들인 메모리 처음2바이트를 검사해서 0708 최초에 발견되는 [널문자 > 2F] 로 치환후
번역기를 거치고 나오면 위 방식으로 [ 2F > 널문자 ] 로 치환하는 형식이라 위에서 보여지는 메모리맵구성이
나올수없다는 생각이 드는데요.
위에서 원래 포인터바꿔치기 형식으로 하셨다고하니 해당후킹지역이 제가 사용했던 곳이랑 틀리거나 구번저이라 근래 사용되는 방식과 틀릴수도 있겠군요.
우선 후킹메모리가 제대로 청소를 해서 후킹후 다음 대사가 넘어올때 대사 문자후에 깨끗한 형태인지 확인해주시구요. 그게 아니라면 아마도 덮어쓰기는 쓰면 안될것같으니 포인터바꿔치기 용으로 새로 수정해드리겠습니다
수정형식은 읽어들인 메모리 처음2바이트를 검사해서 0708 최초에 발견되는 [널문자 > 2F] 로 치환후
번역기를 거치고 나오면 위 방식으로 [ 2F > 널문자 ] 로 치환하는 형식이라 위에서 보여지는 메모리맵구성이
나올수없다는 생각이 드는데요.
위에서 원래 포인터바꿔치기 형식으로 하셨다고하니 해당후킹지역이 제가 사용했던 곳이랑 틀리거나 구번저이라 근래 사용되는 방식과 틀릴수도 있겠군요.
우선 후킹메모리가 제대로 청소를 해서 후킹후 다음 대사가 넘어올때 대사 문자후에 깨끗한 형태인지 확인해주시구요. 그게 아니라면 아마도 덮어쓰기는 쓰면 안될것같으니 포인터바꿔치기 용으로 새로 수정해드리겠습니다
2012.11.03 03:36:07
일단 여러가지로 실험해보고 있어요 ㅎㅎ
처음 한코드로는 바꿔치기용에 원본 쪽 주소라 그런지 찌꺼기가 많았고,
두번째로 찾은곳은 대사 복사 한번 한곳으로 해봤는데
덮어쓰기 메모리 확장 안하면 이상은 없는데 중간중간 짤리는곳 생기고
메모리 확장하면 또 중간중간 뒷문장이 사라질때가 있네요...
시간나시면 바꿔치기용으로 하나 해주시면
문제 없을것 같아요. 'ㅅ';;;
두병더더님 댓글 다시 읽어보시 복사 한번 한곳에 대한 내용같은데
위에 쓴것처럼 메모리 확장 덮어쓰기시 일부 문장 누락현상이 발생해요.
복사를 한번 더 하는곳이 (원본-복사-또복사) 있긴있던데 그쪽 주소는 잡기 힘들어서 -ㅂ-;;
또 왠지 백로그같은 느낌도 들고..
요거확인해주세요
대사창에 대사는 뜨는지 // 07 06 요놈이 번역기 통과되면서 안변한다면 널문자만 조정해주면될듯싶군요.