Ok, I've made it.
First, you have to modify the 0x3C packet as I posted above:
Code:
.text:0042242A or dword ptr [eax], 20000h <- just nop it
later, you have to put 0x01 instead of 0x00 in 0x3c at offset 4
Code:
.text:0042241C mov dword ptr [eax], 10000h <- change it to 10001h
It tells the client that server is Public, and if port is != 3784 then ventrilo client will mute us.
You're now probably able to talk, but server will stop answering (you can only recive some packets)after some seconds (60s~ of idle, or it is random I don't remember). You have to remove also "server-side" limit so:
Code:
.text:0040C11B cmp word ptr [esi+10h], 0F137h <- nop it
.text:0040C121 jz short loc_40C12A <- change it to jmp
Now you're able to change the port.