Skip to content

Commit

Permalink
Merge pull request wechaty#160 from choogoo/main
Browse files Browse the repository at this point in the history
v1.12.6
  • Loading branch information
atorber authored Nov 30, 2022
2 parents f9239b7 + c975717 commit cc63e1b
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 72 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "wechaty-puppet-xp",
"version": "1.12.5",
"version": "1.12.6",
"description": "Puppet XP for Wechaty",
"type": "module",
"exports": {
Expand Down
140 changes: 69 additions & 71 deletions src/init-agent-script.js
Original file line number Diff line number Diff line change
Expand Up @@ -1014,80 +1014,78 @@ const recvMsgNativeCallback = (() => {
addr = this.context.eax//0xc30-0x08
msgType = addr.add(0x38).readU32()
isMyMsg = addr.add(0x3C).readU32()//add isMyMsg
if (msgType > 0) {
const talkerIdPtr = addr.add(0x48).readPointer()
//console.log('txt msg',talkerIdPtr.readUtf16String())
const talkerIdLen = addr.add(0x48 + 0x04).readU32() * 2 + 2

const myTalkerIdPtr = Memory.alloc(talkerIdLen)
Memory.copy(myTalkerIdPtr, talkerIdPtr, talkerIdLen)


let contentPtr = null
let contentLen = 0
let myContentPtr = null
if (msgType == 3) {// pic path
let thumbPtr = addr.add(0x198).readPointer();
let hdPtr = addr.add(0x1ac).readPointer();
let thumbPath = thumbPtr.readUtf16String();
let hdPath = hdPtr.readUtf16String();
let picData = [
thumbPath,// PUPPET.types.Image.Unknown
thumbPath,// PUPPET.types.Image.Thumbnail
hdPath,// PUPPET.types.Image.HD
hdPath// PUPPET.types.Image.Artwork
]
let content = JSON.stringify(picData);
myContentPtr = Memory.allocUtf16String(content);
} else {
contentPtr = addr.add(0x70).readPointer()
contentLen = addr.add(0x70 + 0x04).readU32() * 2 + 2
myContentPtr = Memory.alloc(contentLen)
Memory.copy(myContentPtr, contentPtr, contentLen)
}

// console.log('----------------------------------------')
// console.log(msgType)
// console.log(contentPtr.readUtf16String())
// console.log('----------------------------------------')
const groupMsgAddr = addr.add(0x170).readU32() //* 2 + 2
let myGroupMsgSenderIdPtr = null
if (groupMsgAddr == 0) {//weChatPublic is zero,type is 49

myGroupMsgSenderIdPtr = Memory.alloc(0x10)
myGroupMsgSenderIdPtr.writeUtf16String("null")

} else {

const groupMsgSenderIdPtr = addr.add(0x170).readPointer()
const groupMsgSenderIdLen = addr.add(0x170 + 0x04).readU32() * 2 + 2
myGroupMsgSenderIdPtr = Memory.alloc(groupMsgSenderIdLen)
Memory.copy(myGroupMsgSenderIdPtr, groupMsgSenderIdPtr, groupMsgSenderIdLen)

}

const xmlNullPtr = addr.add(0x1ec).readU32()
let myXmlContentPtr = null
if (xmlNullPtr == 0) {

myXmlContentPtr = Memory.alloc(0x10)
myXmlContentPtr.writeUtf16String("null")

} else {
const xmlContentPtr = addr.add(0x1ec).readPointer()

const xmlContentLen = addr.add(0x1ec + 0x04).readU32() * 2 + 2
myXmlContentPtr = Memory.alloc(xmlContentLen)
Memory.copy(myXmlContentPtr, xmlContentPtr, xmlContentLen)
}

setImmediate(() => nativeativeFunction(msgType, myTalkerIdPtr, myContentPtr, myGroupMsgSenderIdPtr, myXmlContentPtr, isMyMsg))
}
} catch (err) {
console.error(curTime,'recvMsgNativeCallback at onEnter err:', err)
}

if (msgType > 0) {

const talkerIdPtr = addr.add(0x48).readPointer()
//console.log('txt msg',talkerIdPtr.readUtf16String())
const talkerIdLen = addr.add(0x48 + 0x04).readU32() * 2 + 2

const myTalkerIdPtr = Memory.alloc(talkerIdLen)
Memory.copy(myTalkerIdPtr, talkerIdPtr, talkerIdLen)


let contentPtr = null
let contentLen = 0
let myContentPtr = null
if (msgType == 3) {// pic path
let thumbPtr = addr.add(0x198).readPointer();
let hdPtr = addr.add(0x1ac).readPointer();
let thumbPath = thumbPtr.readUtf16String();
let hdPath = hdPtr.readUtf16String();
let picData = [
thumbPath,// PUPPET.types.Image.Unknown
thumbPath,// PUPPET.types.Image.Thumbnail
hdPath,// PUPPET.types.Image.HD
hdPath// PUPPET.types.Image.Artwork
]
let content = JSON.stringify(picData);
myContentPtr = Memory.allocUtf16String(content);
} else {
contentPtr = addr.add(0x70).readPointer()
contentLen = addr.add(0x70 + 0x04).readU32() * 2 + 2
myContentPtr = Memory.alloc(contentLen)
Memory.copy(myContentPtr, contentPtr, contentLen)
}

// console.log('----------------------------------------')
// console.log(msgType)
// console.log(contentPtr.readUtf16String())
// console.log('----------------------------------------')
const groupMsgAddr = addr.add(0x170).readU32() //* 2 + 2
let myGroupMsgSenderIdPtr = null
if (groupMsgAddr == 0) {//weChatPublic is zero,type is 49

myGroupMsgSenderIdPtr = Memory.alloc(0x10)
myGroupMsgSenderIdPtr.writeUtf16String("null")

} else {

const groupMsgSenderIdPtr = addr.add(0x170).readPointer()
const groupMsgSenderIdLen = addr.add(0x170 + 0x04).readU32() * 2 + 2
myGroupMsgSenderIdPtr = Memory.alloc(groupMsgSenderIdLen)
Memory.copy(myGroupMsgSenderIdPtr, groupMsgSenderIdPtr, groupMsgSenderIdLen)

}

const xmlNullPtr = addr.add(0x1ec).readU32()
let myXmlContentPtr = null
if (xmlNullPtr == 0) {

myXmlContentPtr = Memory.alloc(0x10)
myXmlContentPtr.writeUtf16String("null")

} else {
const xmlContentPtr = addr.add(0x1ec).readPointer()

const xmlContentLen = addr.add(0x1ec + 0x04).readU32() * 2 + 2
myXmlContentPtr = Memory.alloc(xmlContentLen)
Memory.copy(myXmlContentPtr, xmlContentPtr, xmlContentLen)
}

setImmediate(() => nativeativeFunction(msgType, myTalkerIdPtr, myContentPtr, myGroupMsgSenderIdPtr, myXmlContentPtr, isMyMsg))
}
}
})
return nativeCallback
Expand Down

0 comments on commit cc63e1b

Please sign in to comment.