심심해서 진행한 아랄트랜스 ai 번역 플러그인 개발
아랄트랜스로 번역된 게임을 하다가 아 세상이 이렇게 발전했는데 방법이 없을까란 생각으로 시작함
간단한 방법으로 생각한게 기존 번역 플러그인 ezTransXP.dll를 현재 사용하는 채팅 모델에 이식하자고 생각을 했지!
자 처음 생각난 건 저 플러그인이 어떤 함수 이름/파라미터 형식으로 호출하는지 모른다는거야!
그래서 나는 Developer PowerShell for VS라는 cmd 프로그램을 썼어 (Visual Studio가 있으면 사용 가능함)
그래서 나온 결과는 이건데 중요한건 Translate 이야
ordinal hint RVA name
1 0 000076FF DllMain
4 1 00001A30 OnPluginClose
2 2 00001A00 OnPluginInit
3 3 00001A20 OnPluginOption
5 4 00001A40 Translate
이걸 가지고 Ghidra를 켰어 이건 간단하게 말하면 디컴파일러 도구야!
이제 이걸로 ezTransXP.dll의 를 열어볼거야!
우선 뇌를 열자마자 나는 Translate한테 달려 간다음 사진에는 없는 Decompiler 값을 보고 연결된 로직을 쭉쭉 찾아오면
드디어 거지 같은 함수를 찾았고! 거지 같은 번역 파이프라인을 발견 할 수 있었지!
그 정답은 진짜 번역 로직은 DLL에는 없다는 거였어 저장된 함수 포인터를 통해 호출하는거지!
그러면 이제 남은건!
아랄트랜스가 좋아하는 외부 인터페이스만 맞추면 번역 로직을 바꿀 수 있는거야!
그러면 이제 나온 인터페이스를 가지고 대체할 DLL을 만들면 되는거야
나는 여기에 API를 따로 연동해서 쓰고 싶지는 않았기 때문에 적절하게 로컬에서 작동하는
AI 모델을 받아 Translate() 내부에서 내가 다운 받은 모델을 호출하게 했어
CP949→UTF-8 변환 → AI 모델 → 결과 UTF-8→CP949 변환 → 메모리 버퍼에 쓰기!
이렇게 호출하게 변경했어 그 후 DEF 파일로 DLL과 동일한 고유번호를 가지게 만들었어 이제 남은건 DLL파일 만들기
아까 만든 호출 파일과 고유 번호 파일 두개를 Developer Command Prompt for VS로 DLL파일을 새롭게 만들고 원본 dll은 백업을 하고 덮어쓰면 끝!
그렇게 나온 결과물은 안타깝게도 프롬프트를 제대로 완성하지 못해 보여 줄 수는 없겠어.. 막 자기 마음대로 번역해서 마음이 아파
프롬프트를 제대로 완성하고 나면 결과물도 가져오도록 할게
s/somisoft
• 157,564 subscribers- 1. 게시물 규정 양식
업로드 시 링크 암호화 & 필수 정보를 기입할 것
- 2. 질문
국룰, 암호화 링크 등 기본사항 질문 금지, 탭 미준수시 차단 및 삭제
- 3. 요청
요청 기준 및 양식 미준수 & 댓글로만 자료 복구 요청 시 차단
- 4. 미성년자 / 근첩 / 페미 / 다중계정
조금이라도 의심되면 선 차단, 후 해명
- 5. 좆목 / 네임드화
닉언, 네임드화 등 친목질 금지
- 6. 분탕 및 어그로 / 혐짤 / 낚시 / 뇌절
해당 카테고리의 차단 기간 및 가중처벌은 처리자 재량으로 판단
- 7. 홍보 / 판촉 / 거래
허용되지 않은 모든 형태의 홍보, 거래, 교환, 조건부 공유 시 차단
- 8. 쌀먹 / 바이러스
조건부 공유 & 수익성 링크 & 고의적인 바이러스 유포 시 갱신차단
- 9. 자료 분류 / AI
미검수 시 표기 필수, 생성형 AI를 사용한 자료의 제목에 AI 미기입 시 차단
- 10. 실사 / 토들러
업로드시 갱신 차단
- 11. 기타 세부 규정은 서브 공지사항 참고