puppet-xp icon indicating copy to clipboard operation
puppet-xp copied to clipboard

运行时报错access violation accessing 0x38

Open jiangwu10057 opened this issue 2 years ago • 4 comments

报错信息如下:

15:28:17 SILL SidecarBody [SCRIPT_MESSAGRE_HANDLER_SYMBOL]({"type":"error","description":"Error: access violation accessing 0x38","stack":"Error: access violation accessing 0x38\n    at <anonymous> (frida/runtime/core.js:141)\n    at onEnter (/script1.js:1195)","fileName":"frida/runtime/core.js","lineNumber":141,"columnNumber":1}, null)
15:28:17 ERR SidecarBody [SCRIPT_MESSAGRE_HANDLER_SYMBOL]() MessageType.Error: Error: access violation accessing 0x38
    at <anonymous> (frida/runtime/core.js:141)
    at onEnter (/script1.js:1195)
file:///E:/xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:400
          const e = new Error(message.description)
                    ^
Error: Error: access violation accessing 0x38
    at WeChatSidecar.[scriptMessageHandler] (file:///E:/xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:400:21)
    at E:\xp\node_modules\frida\dist\script.js:95:21
----- Agent Script Internal -----
Error: access violation accessing 0x38
    at <anonymous> (frida/runtime/core.js:141)
    at onEnter (/script1.js:1195)

依赖版本信息

"dependencies": {
    "axios": "^1.2.0",
    "dotenv": "^16.0.3",
    "koa": "^2.13.4",
    "koa-body": "^6.0.1",
    "koa-bodyparser": "^4.3.0",
    "koa-router": "^12.0.0",
    "koa2-cors": "^2.0.6",
    "log4js": "^6.7.0",
    "node-schedule": "^2.1.0",
    "request": "^2.88.2",
    "request-promise-native": "^1.0.9",
    "sqlite3": "^5.1.2",
    "wechaty": "^1.20.2",
    "wechaty-puppet-xp": "^1.12.1",
    "xml2js": "^0.4.23"
  },
  "devDependencies": {
    "@chatie/tsconfig": "^4.6.3",
    "@types/lodash": "^4.14.190",
    "@types/node": "^18.11.9",
    "@types/xml2js": "^0.4.11",
    "cross-env": "^7.0.3",
    "ts-node": "^10.9.1"
  }

微信版本 image

系统版本 Windows 10 家庭中文版21H2,19044.2251

jiangwu10057 avatar Nov 25 '22 07:11 jiangwu10057

I am getting a very similar issue when trying to run my app. My error is the following ,

19:02:35 ERR SidecarBody [SCRIPT_MESSAGRE_HANDLER_SYMBOL]() MessageType.Error: Error: access violation accessing 0xfe5f6b10
    at <anonymous> (frida/runtime/core.js:141)
    at <eval> (/script1.js:252)
node:events:491
      throw er; // Unhandled 'error' event
      ^

Error: Error: access violation accessing 0xfe5f6b10
    at WeChatSidecar.[scriptMessageHandler] (file:///C:/Users/User/wechat/node_modules/sidecar/dist/esm/src/sidecar-body/sidecar-body.js:269:31)
    at C:\Users\User\wechat\node_modules\frida\dist\script.js:95:21
----- Agent Script Internal -----
Error: access violation accessing 0xfe5f6b10
    at <anonymous> (frida/runtime/core.js:141)
    at <eval> (/script1.js:252)
Emitted 'error' event on WeChatSidecar instance at:
    at WeChatSidecar.[scriptMessageHandler] (file:///C:/Users/User/wechat/node_modules/sidecar/dist/esm/src/sidecar-body/sidecar-body.js:275:26)
    at C:\Users\User\wechat\node_modules\frida\dist\script.js:95:21

shan501 avatar Nov 29 '22 00:11 shan501

My dependencies are the following

	"dependencies": {
		"wechaty": "^1.20.2",
		"wechaty-puppet-xp": "^1.12.4"
	}

shan501 avatar Nov 29 '22 00:11 shan501

Hello, 今天我也遇到了同样的问题。此报错是撤回消息引起的。如果使用

const { Message, WechatyBuilder, log, types } = require("wechaty")

//bot login and some other codes...

async function onMessage(message) {
    const text = message.text()
    const sender = message.talker()
    const room = message.room()
    const type = message.type()

    if (room) {
        const topic = await room.topic()
        if (type === types.Message.Emoticon) {
            console.log(`${sender} in ${topic}: [表情包]`)
        } else if (type === types.Message.Attachment) {
            console.log(`${sender} in ${topic}: [file]`)
        } else if (type === types.Message.Audio) {
            console.log(`${sender} in ${topic}: [音频]`)
        } else if (type === types.Message.Video) {
            console.log(`${sender} in ${topic}: [视频]`)
        } else if (type === types.Message.Text) {
            console.log(`${sender} in ${topic}:`, text)
        } else if (type === types.Message.Image) {
            console.log(`${sender} in ${topic}: [图片]`)
        } else if (type === types.Message.Recalled) {
            const recalled = await message.toRecalled()
            console.log(`${sender} in ${topic} recalled a message:`, recalled)
        }
    } else {
        if (type === types.Message.Emoticon) {
            console.log(`${sender}: [表情包]`)
        } else if (type === types.Message.Attachment) {
            console.log(`${sender}: [file]`)
        } else if (type === types.Message.Audio) {
            console.log(`${sender}: [语音]`)
        } else if (type === types.Message.Video) {
            console.log(`${sender}: [视频]`)
        } else if (type === types.Message.Text) {
            console.log(`${sender}:`, text)
        } else if (type === types.Message.Image) {
            console.log(`${sender}: [图片]`)
        } else if (type === types.Message.Recalled) {
            console.log(`${sender} recalled a message:`, text)
        }
    }
}

那么就说明了这一段:

else if (type === types.Message.Recalled) {
            console.log(`${sender} recalled a message:`, text)
}

并没有被运行。反而,

else if (type === types.Message.Text) {
           console.log(`${sender}:`, text)
}

被运行了。因此就有了这个报错码。希望 @atorber 可以重新审视这个问题

notedwin-dev avatar May 09 '23 08:05 notedwin-dev

Hello, 今天我也遇到了同样的问题。此报错是撤回消息引起的。如果使用

const { Message, WechatyBuilder, log, types } = require("wechaty")

//bot login and some other codes...

async function onMessage(message) {
    const text = message.text()
    const sender = message.talker()
    const room = message.room()
    const type = message.type()

    if (room) {
        const topic = await room.topic()
        if (type === types.Message.Emoticon) {
            console.log(`${sender} in ${topic}: [表情包]`)
        } else if (type === types.Message.Attachment) {
            console.log(`${sender} in ${topic}: [file]`)
        } else if (type === types.Message.Audio) {
            console.log(`${sender} in ${topic}: [语音]`)
        } else if (type === types.Message.Video) {
            console.log(`${sender} in ${topic}: [视频]`)
        } else if (type === types.Message.Text) {
            console.log(`${sender} in ${topic}:`, text)
        } else if (type === types.Message.Image) {
            console.log(`${sender} in ${topic}: [图片]`)
        } else if (type === types.Message.Recalled) {
            const recalled = await message.toRecalled()
            console.log(`${sender} in ${topic} recalled a message:`, recalled)
        }
    } else {
        if (type === types.Message.Emoticon) {
            console.log(`${sender}: [表情包]`)
        } else if (type === types.Message.Attachment) {
            console.log(`${sender}: [file]`)
        } else if (type === types.Message.Audio) {
            console.log(`${sender}: [音频]`)
        } else if (type === types.Message.Video) {
            console.log(`${sender}: [视频]`)
        } else if (type === types.Message.Text) {
            console.log(`${sender}:`, text)
        } else if (type === types.Message.Image) {
            console.log(`${sender}: [图片]`)
        } else if (type === types.Message.Recalled) {
            console.log(`${sender} recalled a message:`, text)
        }
    }
}

那么就说明了这一段:

else if (type === types.Message.Recalled) {
            console.log(`${sender} recalled a message:`, text)
}

并没有被运行。反而,

else if (type === types.Message.Text) {
           console.log(`${sender}:`, text)
}

被运行了。因此就有了这个报错码。希望 @atorber 可以重新审视这个问题

唯一不一样的是:代码没有被停止运行。反而可以继续收取群消息和私聊消息。

notedwin-dev avatar May 09 '23 08:05 notedwin-dev