# Feather.exe ###### tags: `Feather Cracking` Path: I:/Others/Feather_Newest/feather.exe Edition: Latest (@ 2017) Version: 1.3.0.10.14 `6A4EF4` -> set to 0 to support CHT IME # sf.ini Setting | Name | Addr | Value | Type (Opt.) | Found At (Opt.) | |:---|:---|:---|:---|:---| | Logging (Packet to File) | 008C8C4C<br>006A7D1C<br>008C8F78<br> | 1<br>1<br>0 | bool | IsRecordWrite | 008C8C4C | | bool | * @ \_WinMain@16<br>setting: LOGIN->IsRecordWrite | Enable Recording | 006A7D1C | [Record=1] | bool | 4BB3E1 @ sub_4BB3D0<br>4B740A @ \_WinMain@16<br>setting: LOGIN->Record | Do Show FPS<br> FPS counter | 008C8C48<br>008C8FD8 | T/F<br>* | bool<br>Byte | 4B5DE3 @ sub_4B5030 | Write To Log.txt | 006A7D38 | | bool | 4B506E @ sub_4B5030 | Cht WordSet | 008C94FC | | bool | 4B766F @ \_WinMain@16<br>setting: LOGIN->NewQiangZhe | Read DB using CHS / CHT | \<?> | | bool | setting: LOGIN->Read_Datebase_Language_Type | | # Static Variables | Name | Addr | Value | Type (Opt.) | Found At (Opt.) | |:---|:---|:---|:---|:---| | Do Show FPS<br> FPS counter | 008C8C48<br>008C8FD8 | T/F<br>* | bool<br>Byte | 4B5DE3 @ sub_4B5030 | Write To Log.txt | 006A7D38 | | bool | 4B506E @ sub_4B5030 | Break Flag (Recv) | 006B04E0 | | bool | 5EF5BA @ sub_5EF560 | isConnectionAvailable | 0091078C | | bool | 5EEB3E @ sub_5EEB10 | szTotalRecvSinceGameStart | 00910794 | | int | 5EFB59 @ sub_5EF560 (Listener) | Input Text (Chat) Static | \<?> | | char[256] | @ sub_43D0A0 (Chat Input Handler) | isPrintWalkMessage | 008C8EF8 | | bool | 46DC1B @ sub_46D7B0 | unk | 008C4214 | | TextPtr | @ 4018E7 | unk | 008C4218 | | TextPtr | @ 401907 | unk | 008C41F8 | | TextPtr | @ ? | unk | 008C4208 | | TextPtr | @ 40134A | unk | 008C516C | | Int | Format String ID @ 40166F # Special Things ## Fake-Teleport Command Setting ```shell= # core func for GM: sub_43DBD0 008C8C48 = 1 # fpsToggle (maybe is "im a gm yo"?) ``` # Function ## WinSocket / Login / Connection Related Function | Name | Func | Desc | |:---- |:---- | :--- | | Raise Sock Error | int __cdecl sub_5F04E0(int mainObj, signed int errorCode) | Crash after call | Release Socket | void __thiscall sub_5EEB10(int *mainObj) | mainObj[0xFE9E] = real socket ptr | ? | genRSAkey_sub_641FE0 | Create Threads | int __thiscall sub_5EFE20(int *mainObj_1, const char *a2) | Create Sender & Listener Threads | Chat Input Handler | char __cdecl sub_43D0A0(char *Source) | Calls when enter pressed ## Mixed Function | Name | Func | Desc | |:---- |:---- | :--- | | GM Command Handler | char __stdcall sub_43DBD0(char *inp) | # Pointers ## Main GUI Obj \- 008C8F1C | Name | Ptr | Desc | |:---- |:--- | :--- | | | | Base | 008C8F1C | | | ... | | ## Unk \- 008C8F20 | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F20 | | +  | => | ## MainObj Static \- 008C8F28 | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F28 | | + SocketPtr | =>3FA78 | | + RSA struct ptr | =>3FA80 | |  + Callee Addr | =>3FA80\:8:10 | The func that will be called. (in hex addr, RSA method) | + ? | =>3FA88 | | + ? | =>3FC88 | | + Crypto Key Ptr | =>3FE88 | encryptAndSend_sub_5F0070@5F015D | | | + ? | =>400A0 | Bool, Unk Bool | + ? | =>400A2 | 1 Byte, | + Next Step | =>400A4 | 1 Byte, next step on switch case @ ListenerSub | | | + ? | =>400AC | Must be equal to =>400B4 before send | + ? | =>400B4 | Must be equal to =>400AC before send | | | + Star Ptr | =>B4E698 | |  + Btn | =>? | |   + Btn Func | =>FC | ```*(guiObj_2[0x16] + 0xFC)``` | + BackPack Ptr | =>B4E850 | ## Unk \- 008C8F2C | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F2C | | +  | => | ## Player Static \- 008C8F30 | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F30 | | + Timer | =>B4E4C8 | + Inp Static | =>B4E654 | |  + Inp Text | =>24 | Input (RealTime) | + Chat Static | =>B4E658 | @ 43DD32 | + ?? | =>B4E680 | | + VIP Status | =>B4E754 | _**TBC**_ | + Text Color Static | =>B51EE0 | VIP Chat Text Color, DataType: Char[1] | + Walk Rnd | =>B51FC4 | 4BE1A4@sub_4BE120 (Time Diff Maybe?) ## Unk \- 008C8F34 | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F34 | | +  | => | ## GUI Static \- 008C8F38 | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 008C8F38 | | +  | =>E | @ 4A8B24 ## RSA Method Pointer | Name | Ptr | Desc | |:---- |:--- | :--- | | Base | 00910BA4 | @ 64081D | | | # Command Lists (GM cmd included) | Pre-Write | Cmd | Desc | Func Addr | |:---|:---|:---|:---| | 008C8F60 = 1 | open \<mapName> | Teleport urself to this map (?)<br>!! Skill Bar will be unavailable until pre-write is 0 !! | @43DF44 | | debug_framecount | | | setframecount= \<num> | | trans \<...> | 5 six use =w= | | go \<x>,\<y> | | | savefile | write your chat to the file "test.txt" | # Reverse Engineering //src: https://blog.csdn.net/weixin_30856965/article/details/98707605 ida: "eh vector constructor/destructor iterator" -> self define class with constructor & destructor cause: ```cpp T* tt = new T[100]; delete[] tt; ``` when creating array in C++, the first 4-bytes saves the array size, followed by actual array data. n | o | sub_4F1680 | sub_5E7C00 | farm pet
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up