Is there anything working on Mac? I just don't want to use a parallel or to set Bootcamp..
There was something in the past, but has been closed or removed.
Any help?
Is there anything working on Mac? I just don't want to use a parallel or to set Bootcamp..
There was something in the past, but has been closed or removed.
Any help?
this doesn't want to be a repost of other precedent topics.. just didn't found a clear answer yet.
ProbablyEngine is LUA based and runs within wow itself, so it works on OSx. The tricky part is unlocking protected LUA on OSx but it's very doable.
ty so much.. i'll do some tries and reply
There was a thread that was just deleted over the last week or so... Kind of really pisses me off since there were two scripts within the thread. One that would do a generic LUA unlock that worked perfectly. And a second script that would help you identify the current offsets needed to configure the LUA script based on the version/build of the game client... Why did the admins of the group delete the thread... I do not have the script to get the offset and now my LUA unlocker does not work. What's the deal? Anyone have the offset information... and if they do not want to post it publicly could you PM it to me... or give me some instructions of what you do to get the new offset info?
Here is the old thread that was removed. http://www.ownedcore.com/forums/worl...-cata-mop.html
I have the previous unlocking script but not the new offsets, if someone can help us find out how to get the offsets, it's easy to change the old script.
Here is the old unlock that doesn't work anymore. Just need new offsets
Code:echo -e "process attach -p `ps ax|grep MacOS/[W]orld|awk '{print $1}'`\nmemory write 0x100A1936A 0xeb\nprocess detach\nquit" > /tmp/luaunlock && lldb -s /tmp/luaunlock
This is what I had for the old version as well...
# For build 6.0.3 64-bit client
LUAOFFSET=0x100a1936a
VALID=0x77
PATCHED=0xeb
LUAOFFSET32=80a232
I have the old script but need the new offsets. I don't have the script to find the offsets
#!/bin/bash
# Find the patch address for WoW. This is the address of the first ja instruction in the
# CanPerformFunction procedure which is called by many other Lua functions.
LANG=C
wowapp=$1
wowbin="${wowapp}/Contents/MacOS/$(echo "$wowapp" | sed -n -E "/.*\/([^\/]*).app/s//\1/p")"
if [ ! -f "$wowbin" ]; then
Echo "# Error: \"$wowbin\" does not exist."
exit 1
fi
echo "# Getting segmments and sections from \"${wowbin}\"..."
otool -l "${wowbin}" > /tmp/wowheader.otool
is64=0
grep -q LC_SEGMENT_64 /tmp/wowheader.otool && is64=1
if [ $is64 -eq 1 ]; then
name=wow64
else
name=wow32
fi
cat /tmp/wowheader.otool > ${name}header.otool
echo "# Disassembling..."
otool -tvqj "${wowbin}" > ${name}.otool
sectionlist=$(
sed -n -E '
/^Section$/,/^ reserved2/{
/^ sectname/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;h;}
/^ segname/,/^ offset/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;H;}
/^ align/{g;y/\n/,/;p;}
}' ${name}header.otool
)
segmentlist=$(
sed -n -E '
/^ cmd LC_SEGMENT/,/^ flags/{
/^ segname/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;h;}
/^ vmaddr/,/^ filesize/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;H;}
/^ maxprot/{g;y/\n/,/;p;}
}' ${name}header.otool
)
ExtractSection () { # $1:segment name $2:section name $3:filename $4:type
thesection=$(echo "$sectionlist" | sed -n -E "/^$2,$1,(.*)/{s//\1/p;q;}")
theaddr=$(expr "$thesection" : '\([0-9a-fx]*\)')
thesize=$(expr "$thesection" : '[0-9a-fx]*,\([0-9a-fx]*\)')
offset=$(expr "$thesection" : '[0-9a-fx]*,[0-9a-fx]*,\([0-9]*\)')
if [ "$4" == "1" ]; then # convert nulls to newlines (useful for cstring section)
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | tr '\0' '\n' > "$3"
elif [ "$4" == "2" ]; then # output as list of hexadecimal integers
if [ $is64 -eq 1 ]; then
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | xxd -g 8 -c 8 -p | sed -E "/(..)(..)(..)(..)(..)(..)(..)(..)/s//\8\7\6\5\4\3\2\1/" > "$3"
else
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | xxd -g 4 -c 4 -p | sed -E "/(..)(..)(..)(..)/s//\4\3\2\1/" > "$3"
fi
else # output as raw binary
dd if="${wowbin}" of="$3" bs=1 skip=$offset count=$thesize 2> /dev/null
fi
echo $theaddr
}
echo "# Extracting section __TEXT __cstring..."
addrTEXTcstring=$(ExtractSection '__TEXT' '__cstring' ${name}cstring.txt 1)
echo "# Extracting section __DATA __const..."
addrDATAconst=$(ExtractSection '__DATA' '__const' ${name}dataconst.txt 2)
GetLuaFunction () { # $1:luaFunc
addrLuaString=$(printf "%0$((($is64+1)*)x" $(( $(expr "$(grep -m 1 -o -a -b -E -e "^${1}$" ${name}cstring.txt)" : '\([0-9]*\):') + $addrTEXTcstring )) )
echo $(sed -n -E "/^$addrLuaString$/{n;p;q;}" ${name}dataconst.txt)
}
echo "# Finding LUA Function StopMacro..."
addrStopMacro=$(GetLuaFunction "StopMacro")
echo "# Finding CanPerformFunction..."
addrCanPerformFunction=$(sed -n -E "/^$addrStopMacro"$'\t/,/\tcalll\t/{/.*\tcall.\t0x([0-9a-f]+)/'"{s//0000000000000000\1/;s/.*(.{$((($is64+1)*)})/\1/p;q;};}" ${name}.otool)
echo $addrCanPerformFunction
echo "# Finding patch address..."
patchinstruction=$(sed -n -E "/^$addrCanPerformFunction"$'\t/,/\tja\t/{/\tja\t.*/{p;q;};}' ${name}.otool)
echo $patchinstruction
echo "# Done"
Do you have instructions on how to use that script?
I haven't had a chance to try it yet, but the new offsets appear to be
LUAOFFSET=0x100a19b13
VALID=0x77
PATCHED=0xeb
Run this command through the terminal after you have opened the game and you have a working lua unlock
Tested on EU servers about 10 minutes ago.
Code:echo -e "process attach -p `ps ax|grep MacOS/[W]orld|awk '{print $1}'`\nmemory write 0x100A19A93 0xeb\nprocess detach\nquit" > /tmp/luaunlock && lldb -s /tmp/luaunlock