Doem 發表於 2016-6-15 22:36:53

[最後更新:2016-07-29]TWMS V1.91.1 TWMS IDB 補完計畫

本帖最後由 Doem 於 2016-7-29 14:12 編輯

由於許多未測試,所以就不留在Toby大的文了 (反正也不會有人看 OwO
之後打工之餘有空的話會持續在此篇文章更新, 如果有人要幫我做一下自動更新我感激不盡 <(_ _)>

P.s 前面有標是指在188.3版本時測試過確認該地址更新正確 (有些我覺得對卻沒測得還是有標,請見諒)

等量多一點我在分類 XD

2016-07-29:
-更新至V1.91.1
-新增以下8個函數
CMinionPool::FindHitMinionInRect
CSkillInfo::GetSkill
CMob::OnHit
SKILLENTRY::IsFastAttack
SKILLLEVELDATA::LoadLevelData
CUserLocal::TryDoingFallDown
CMob::TryDoingFallDown
CMobPool::FindHitMobInRect

2016-07-09:
-修正GetData系列5個函數 (我附的AOB不是在函數頭, 請看清楚 OwO)

2016-07-08:
-更新至TWMS V1.90.3
-新增以下16個函數
CVecCtrlUser::WorkUpdateActive
CVecCtrl::WorkUpdateActive
CMovePath::SetKeyPadState
CVecCtrl::SetInput
get_update_time()
CUserLocal::SetInGameForcedInput
CUserLocal::SetAttractMove
CUserLocal::Jump
IVecCtrlOwner::IsOnFoothold
//以下順序可能會 XD 反正就那幾個Case
CVecCtrlMob::CtrlUpdateActiveStop
CVecCtrlMob::CtrlUpdateActiveMove
CVecCtrlMob::CtrlUpdateActiveJump
CVecCtrlMob::FlyCtrlGuardingBefore
CVecCtrlMob::CtrlUpdateActiveFly
CVecCtrlMob::CtrlUpdateActiveEscort
CVecCtrlMob::CtrlUpdateActiveMoveForward

2016-06-25:
-新增CVecCtrl::IsFloating, CVecCtrl::IsSwimming, CVecCtrlUser::IsFloatSkyMap, CMob::FallDown 以及SetData和GetData系列函數
-修正TSecType<unsigned long>::GetData為正確地址

2016-06-24:
CMob::AddDamageInfo和CUserLocal::TryRegisterTelepor開頭都有稍微變動過, 函數關鍵的地方我就沒看了,
就...自行發掘吧~TWMS V1.91.1 TWMS IDB 補完計畫 By Doem 最後更新:2016-07-29

CVecCtrlSkillPet::CVecCtrlSkillPet(void) -> 011EF5A1 //** 8B ** E8 ** ** ** FF D9 EE 33 C0 DD 96 ** ** 00 00

CVecCtrl::raw_Move(CVecCtrl *this, int nX, int nY) -> 011E570F //56 8B ** 24 ** ** 8D 7E ** 33 D2

CDropPool::TryPickUpDrop(CDropPool *this, tagPOINT *pt) -> 00677084 //55 8B EC 83 EC ** ** ** 8B ** 33 DB ** 8B 3D ** ** ** 01 39 5E **

CDropPool::TryPickUpDropByPet(CDropPool *this, CPet *pPet, tagPOINT *ptPos, SECPOINT *ptPosCheck) -> 00677A43 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 8B 3D ** ** ** 01 6A 00 6A 1E

CSecurityClient::GetMemoryInfoForCRC32Code(CSecurityClient *this, int nIdx, int *nPos, int *nSize) -> 012F2A65 //8B ** 0C 8B 44 24 04 8B 14 C1

CSecurityClient::GetCrc32Code(CSecurityClient *this, const char *pData, unsigned int dwSize, unsigned int *dwCrc, unsigned int *dwPos) -> 012F2A84 //55 8B EC 51 53 8B ** 08 56 8B 75 ** 8B **

CDropPool::GetMoneyIconType(CDropPool *this, int nMoney) -> 0067612B //8B ** 24 04 83 ** 32 7D ** 33 C0

CItemInfo::GetItemCoolTime(CItemInfo *this, int nItemID, int *nLimitMin, int *nLimitSec) -> 00859054 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B 45 ** 99 BE ** ** ** 00 F7 FE FF 75 08

CUIItem::UpdateItemCoolTime(CUIItem *this) -> 00D2139C //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 8B 35 ** ** ** 01 8D 45 ** 50 8B ** 89 75 **

CMob::GetMaxHP(CMob *this) -> 0066D5AF //8B 81 ** ** 00 00 85 C0 74 ** 8B 40 04 C3

CUserLocal::SetDamaged(CUserLocal *this, int nDamage, int vx, int vy, int nIndex, unsigned int dwObstacleData, CMob *pMob, int nAttackIdx, int nDir, int bCheckHitRemain, int bSendPacket, int nDistributeCount) -> 01112BA5 //55 83 EC ** 68 ** 00 00 00 B8 ** ** ** 01 E8 ** ** ** 00 8B ** 89 75 ** 33 DB 89 5D ** 39 5D ** 74 ** 8D 8E

CUserLocal::CheckMissByGuardSkill(CUserLocal *this, MobAttackInfo *pInfo, unsigned int aDamageRandom, int *nSkillID, int *nDamage, int *bDamageMissed, int *bGuard) -> 010A8198 //55 8B EC 83 EC ** 53 56 8B 35 ** ** ** 01 57 8D 45 ** 8B ** 50 8B CE E8 ** ** **  

CMob::AddDamageInfo(CMob *this, unsigned int dwCharacterId, int nSkillID, int nSLV, int tDelayedProcess, int nHitAction, int bLeft, int nDamage, int bCriticalAttack, int nAttackIdx, int nMultipleBySkill, tagPOINT pt, Ztl_bstr_t sHitAni, int bChase, bool bLifting, int nMoveType, int nBulletCashItemID, int nMoveEndingPosX, int nMoveEndingPosY, int bMoveLeft, ECharacterSkill eRandSkill, bool bAssist, bool bDot, HitPartsProcessor *pHitPart, int nSummonAttackIdx, int nRandomHitOffset) -> 00960B69 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 89 ** ** 8B 35 ** ** ** 01 83 65 ** 00

CMob::IsBossMob(CMob *this) -> 004D47C8//56 8B ** 8B ** ** ** 00 00 E8 ** ** ** FF 85 C0 75 ** 39 ** ** ** 00 00

CVecCtrlMob::SetMobTeleport(CVecCtrlMob *this, tagPOINT ptMobTeleportDest) -> 0086CC3F //8B 44 24 04 89 81 ** ** 00 00 8B 44 24 08 C7 81 ** ** 00 00 01 00 00 00

CDraggableItem::PopItemInBag(CDraggableItem *this, CUIBag *pBag, int x, int y) -> 006610AA //55 8B EC 83 EC ** 83 3D ** ** ** 01 00 53 56 57 8B ** 0F 85 ** ** 00 00 83 7D ** 00

CDraggableItem::PopItemInBag(CDraggableItem *this, int nItemID) -> 0065F2B7 //55 8B EC 83 EC ** 83 3D ** ** ** 01 00 53 56 57 8B ** 0F 85 ** ** 00 00 8B 7E ** FF 76

CAESCipher::Encrypt(char *pDest, char *pSrc, int nLen, unsigned int *pdwKey, int bUseKey) -> 004B7B6C //55 8B EC 81 EC 3C 01 00 00 A1 ? ? ? ? 33 C5 89 45 FC

CAESCipher::Decrypt(char *pDest, char *pSrc, int nLen, unsigned int *pdwKey, int bUseKey) -> 004B7ACA //55 8B EC 81 EC 3C 01 00 00 A1 ? ? ? ? 33 C5 89 45 FC

CWvsContext::SendMapTransferRequest(CWvsContext *this, int nPacketType, unsigned int dwTargetField, int nItemType) -> 01297DB8 //In CUIMapTransfer::DeleteSelectedField Function

CUIMapTransfer::DeleteSelectedField(CUIMapTransfer *this) -> 00D816F2 //56 8D B1 ** 00 00 00 8B ** 85 C0 7C ** FF B1

CUserLocal::HandleUpKeyDown(CUserLocal *this) -> 010D8A1A //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 8B 0D ** ** ** 01 33 DB 3B ** 74 ** 39 59 ** 74 ** E8 ** ** ** FF

CPortalList::FindPortal(CPortalList *this, int x, int y, int nXrange) -> 00A29031 //55 8B ** 83 EC ** 8B 41 ** 89 4D ** 85 C0 74 ** 8B 40 ** 53 8D 58 ** 56 57 85 DB 7C ** 8B 41 ** 8B 74 ** ** 83 7E 08 00

CPortalList::FindPortalGroup(long) -> 00A2ADEF //6A ** B8 ** ** ** 01 E8 ** ** ** 00 33 C0 89 45 ** 8B 75 ** 89 46 ** 89 45 ** 56 8D 45 ** 50 83 C1 28 C7 45

CUserLocal::TryRegisterTeleport(CUserLocal *this, SKILLENTRY *pSkill, int nSLV, const char *sPortalName, const char *sTargetPortalName, int bForced, bool bAddAttackProc) -> 010CCCF8 //55 83 EC ** 68 ** ** 00 00 B8 ** ** ** 01 E8 ** ** ** 00 8B ** 89 7D ** 33 DB 89 5D ** 8B 75 **

COpenGatePool::TryEnterOpenGate(tagPOINT,tagPOINT &) -> 009F93A0 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 89 5D ** 8B 3D ** ** ** 01 8B 87 ** ** 00 00

CClientSocket::SendFullMemoryCheckResult(CClientSocket *this) -> 005D1629 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 6A ** 8D 4D ** C6

CVecCtrl::IsFloating(CVecCtrl *this) -> 011E0741 //56 8B ** 8B ** FF 50 ** 85 C0 75 ** 8B ** E8 ** ** ** FF 85 C0 75 **

CVecCtrl::IsSwimming(void) -> 004CA8BC //55 8B EC ** ** ** 8B ** E8 ** ** ** FF 85 C0 74 ** 33 C0 40

CVecCtrlUser::IsFloatSkyMap(CVecCtrlUser *this) -> 011F512E //8B 81 ** ** 00 00 85 C0 74 ** 8D ** ** E8 ** ** ** ** 85 C0 74 **

CMob::FallDown(CMob *this) -> 0093E0AD //55 8B ** 83 EC ** ** 8B ** E8 ** ** ** FF 85 C0 0F 84 ** ** 00 00 8B 0D ** ** ** 01

TSecType<unsigned long>::GetData(TSecType<unsigned long> *this) -> 004ACE94 //66 3B ** ** 75 ** 8A

TSecType<long>::GetData(TSecType<long> *this) -> 004B25DB //66 3B ** ** 75 ** 8A

TSecType<double>::GetData(TSecType<double> *this) -> 004CA0F6 //66 3B ** ** 75 ** 8A

TSecType<unsigned char>::GetData(TSecType<unsigned char> *this) -> 0058C02C //66 3B ** ** 75 ** 8A

TSecType<int>::GetData(TSecType<int> *this) -> 005D10FF //66 3B ** ** 75 ** 8A

TSecType<unsigned long>::SetData(TSecType<unsigned long> *this, const unsigned int data) -> 004AC94A //Before ret of TSecType<XXX>::GetData function, you can see call TSecType<XXX>::SetData function

TSecType<long>::SetData(TSecType<long> *this, const int data) -> 004B22D6

TSecType<double>::SetData(TSecType<double> *this, const long double data) -> 004C95B5

TSecType<unsigned char>::SetData(TSecType<unsigned char> *this, const char data) -> 005891FC

TSecType<int>::SetData(TSecType<int> *this, const int data) -> 005D0BA4

CVecCtrlUser::WorkUpdateActive(CVecCtrlUser *this, int tElapse) -> 011F6113 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 8B 3D ** ** ** 01 33 ** 89 7D ** 3B **

CVecCtrl::WorkUpdateActive(CVecCtrl *this, int tElapse) -> 011E4DBC //55 8B ** 83 EC ** ** ** 8B ** E8 ** ** ** FF 33 ** 85 C0 74 **

CMovePath::SetKeyPadState(CMovePath *this, int bLeftKeyPressed, int bRightKeyPressed, int bUpKeyPressed, int bDownKeyPressed) -> 009967FC //6A ** 83 C1 ** E8 ** ** ** FF 8A

CVecCtrl::SetInput(CVecCtrl *this, int nInputX, int nInputY, bool bResolveAction) -> 011DD330 //80 7C ** ** 00 8B 54 ** ** ** 8B 7C ** ** 8B ** 89 90 ** ** 00 00 89 B8 ** ** 00 00

get_update_time() -> 01196A43 //A1 ** ** ** 01 8B 40 ** C3

CUserLocal::SetInGameForcedInput(CUserLocal *this, int *nPos_X, int *nPos_Y) -> 010C84E2 //55 8B ** A1 ** ** ** 01 ** ** 33 ** 8B ** 39 B8 ** ** 00 00

CUserLocal::SetAttractMove(CUserLocal *this, int *nPos_X, int *nPos_Y) -> 010C7C37 //55 8B EC ** 8B ** 8B ** FF 50 ** 8B ** E8 ** ** ** FF

CUserLocal::Jump(CUserLocal *this, int bEnforced, int bEnforcedPrepareJump, int bUpkey) -> 010C48D9 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 8D BE ** ** ** 00 8B ** E8 ** ** ** FF 85 C0 74 ** 8B **

IVecCtrlOwner::IsOnFoothold(IVecCtrlOwner *this) -> 011DD8E8 //8B 01 FF 50 ** 8B C8 E8 ** ** ** FF F7 D8 1B C0 F7 D8 C3

CVecCtrlMob::CtrlUpdateActiveStop(CVecCtrlMob *this) -> 011EA6B1 //Case 0 , 8B 86 ** ** 00 00 2B ** 74 ** 48 74 ** 48 74 ** 48 74 ** 48

CVecCtrlMob::CtrlUpdateActiveMove(CVecCtrlMob *this) -> 011EA876 //Case 1

CVecCtrlMob::CtrlUpdateActiveJump(CVecCtrlMob *this) -> 011EAD27 //Case 2

CVecCtrlMob::FlyCtrlGuardingBefore(CVecCtrlMob *this) -> 011EB62E //Case 3

CVecCtrlMob::CtrlUpdateActiveFly(CVecCtrlMob *this) -> 011EDACB //Case 3

CVecCtrlMob::CtrlUpdateActiveEscort(CVecCtrlMob *this) -> 011EB193 //Case 4

CVecCtrlMob::CtrlUpdateActiveMoveForward(CVecCtrlMob *this) -> 011EAB09 //Case 5

CMinionPool::FindHitMinionInRect(CMinionPool *this, tagRECT *rc, CMinion **apMinion, int nMaxCount, CMinion *pExcept, bool bFindFromEnemy, int nWishMobID, int rPoison, unsigned int dwWishTemplateID, int nSkillID) -> 009244A4 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** FF 75 ** 8B 0D ** ** ** 01 33 FF 89 7D ** 89 7D **

CSkillInfo::GetSkill(CSkillInfo *this, int nSkillID) -> 00AFC921 //6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 83 ** ** 00 83 ** ** 00 8D ** ** 50 8D 45 ** 8D 7E **

CMob::OnHit(CMob *this, CMob::DAMAGEINFO *damageInfo, int bZigZagDamage) -> 00968002 //55 83 EC ** 6A ** B8 ** ** ** 01 E8 ** ** ** 00 8B ** 89 5D ** 83 ** ** 00 E8 ** ** ** FF

bool __thiscall SKILLENTRY::IsFastAttack(SKILLENTRY *this) -> 0101C0C5 //33 C0 83 B9 ** ** 00 00 FF 0F 95 C0

SKILLLEVELDATA::LoadLevelData(SKILLLEVELDATA *this, int nSkillID, _com_ptr_t<_com_IIID<IWzProperty,&_GUID_986515d9_0a0b_4929_8b4f_718682177b92> > pLevelData, SKILLLEVELDATACommon *pLevelCommon, int nLevel, _com_ptr_t<_com_IIID<IWzProperty,&_GUID_986515d9_0a0b_4929_8b4f_718682177b92> > pStrSR) -> 00AD69B0 //55 8D 6C ** ** 83 EC ** 6A ** 68 ** ** ** ** 64 A1 00 00 00 00 50 B8 ** ** 00 00 E8 ** ** ** 00 A1 ** ** ** 01 33 C5

CUserLocal::TryDoingFallDown(CUserLocal *this) -> 01094654 //8B ** 8D 88 ** ** ** 00 83 ** 00

CMob::TryDoingFallDown(CMob *this) -> 00930AEB //E8 ** ** ** FF 85 C0 74 ** 8B 81 ** ** 00 00 85 C0 74 ** 8D ** ** EB **

CMobPool::FindHitMobInRect(CMobPool *this, tagRECT *rc, CMob **apMob, int nMaxCount, CMob *pExcept, int nWishMobID, int rPoison, unsigned int dwWishTemplateID, int bIncludeDazzledMob, int bIncludeEscortMob, int nSelectRangeSkillID, int nSelectRangeX, int nCurUserX, int nSkillID, int bFindBoss) -> 0096DC0A //6A ** B8 ** ** ** 01 E8 ** ** ** 0 8B ** FF 75 ** 8B 0D ** ** ** 01 33 FF

乂Boyue乂 發表於 2016-6-16 00:17:42

雖然自動更新寫好了 但我還是完全看不懂就是了 哈哈哈 XD

MSD04T 發表於 2016-8-8 14:30:31

本帖最後由 MSD04T 於 2016-8-11 18:26 編輯

XxxGetProcAddress(void **Address, _XclioFid Fid) -> 012F2696

CSecurityClient::EncodeFullMemoryCheckResult(CSecurityClient *this, COutPacket *oPacket) -> 012F356C

CSecurityClient::OnFullMemoryCRCCheck(CSecurityClient *this, unsigned int *dwCrc, unsigned int *dwSimpleGuardPoint) -> 012F2C67

COutPacket::Encode4(COutPacket *this, unsigned int n)
Entry: 004AD32A
Main: 004AD2EC

CSecurityClient::InitCrc32Table(CSecurityClient *this) -> 012F365F

CCrc32::CopyCrc32Table(ZArray<unsigned long> *adwCrc32Table)
Entry: 012F34AA
Main: 0051C462

CSecurityClient::CSecurityClient(CSecurityClient *this) -> 012F366A

CSecurityClient::EncodeMemoryCheckResult(CSecurityClient *this, unsigned __int16 usSeq, COutPacket *oPacket) -> 012F34EC

CCrc32::GetCrc32(const char *pData, unsigned int dwSize, unsigned int dwInit, int bUseAddr, unsigned int *pdwSimpleGuardPoint, int bPosSave, int nItemID) -> 005F1857

COutPacket::Init(COutPacket *this, int nType)
Entry: 00A0559D

COutPacket::Encode1(COutPacket *this, char n)
Entry: 004B2FBF
Main: 0051C462

COutPacket::Encode4(COutPacket *this, unsigned int n)
Entry: 004AD32A
Main: 004AD2EC

CSecurityClient::OnCRCCheck(CSecurityClient *this, int nIdx, unsigned int *dwCrc, unsigned int *dwSimpleGuardPoint) -> 012F289B/*
        CLogo All Functions
        Credit to MapleStory Korea leaked files & Me XD
*/

CLogo::GetClassRTTI() -> Not Found/Doesn't Exist
CLogo::CanSkip(CLogo *this) -> 008D6D75
CLogo::CLogo(CLogo *this) -> 008D6E54
CLogo::OnSetFocus(CLogo *this, int bFocus) -> 008D6EA1
CLogo::GetRTTI(CLogo *this) -> 008D6EA7
:CLogo::`vector deleting destructor'`adjustor{12}' (unsigned int) -> 008D6EAD
CLogo::IsKindOf(CLogo *this, CRTTI *pRTTI) -> 008D6EB5
CLogo::~CLogo(CLogo *this) -> 008D6EBF
CLogo::`vector deleting destructor'(CLogo *this, unsigned int) -> 008D6F26
CLogo::LogoEnd(CLogo *this) -> 008D6F46
CLogo::UpdateVideo(CLogo *this) -> 008D6FC4
CLogo::InitWZLogo(CLogo *this) -> 008D70D9
CLogo::Init(CLogo *this, void *pParam) -> 008D79A5
CLogo::Close(CLogo *this) -> 008D7A5A
CLogo::DrawWZLogo(CLogo *this, int nFrame) -> 008D7A7C
CLogo::ForcedEnd(CLogo *this) -> 008D7FB5
CLogo::OnKey(CLogo *this, unsigned int wParam, unsigned int lParam) -> 008D7FE1
CLogo::OnMouseButton(CLogo *this, unsigned int msg, unsigned int wParam, int rx, int ry) -> 008D801A
CLogo::UpdateLogo(CLogo *this) -> 008D803E
CLogo::Update(CLogo *this) -> 008D80B7
VM VM VM VM VM VM VM VM...

nanco971323 發表於 2020-6-25 02:21:03

請問大大這些現在還有效嗎
我想找CAESCipher::Decrypt
CE搜55 8B EC 81 EC 3C 01 00 00 A1 ? ? ? ? 33 C5 89 45 FC找不到
頁: [1]
查看完整版本: [最後更新:2016-07-29]TWMS V1.91.1 TWMS IDB 補完計畫