冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 1083|回覆: 10
打印 上一主題 下一主題

[求助/徵求] 請問[ICS人物左右走]的數據這幾版是否有更動

[複製鏈接]

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

跳轉到指定樓層
1
發表於 2014-12-30 22:46:01 |只看該作者 |倒序瀏覽
本帖最後由 anderson101866 於 2014-12-30 23:01 編輯

如標題, 不好意思請問各位高手各位大大orz

我從下面這篇(172.1)ICS更新以後, 在175.1左右走功能運作不正常
https://bingfong.com/forum.php?mod ... 440&highlight=人物左右走

就是一Enable, 人物就會卡在原地不能移動, Disable後才恢復可以行動這樣, 可是不會左右走@@

想問一下是不是有更動 導致不能只更新那些Address了

弄了[座標左右走]跟[人物左右走]都一樣 不知怎麼回事orz

搞了一個晚上了XD 有人能夠指點小的迷津一下嗎>< 感激不盡!!....
  1. //TwMs_V175.1_ICS_人物左右走
  2. //Author: zengden
  3. //更新時間:2014-07-24
  4. [ENABLE]
  5. Alloc(AutoLRICSEntry, 64)
  6. Label(ICSReturn)
  7. RegisterSymbol(AutoLRMain)
  8. Alloc(AutoLRMain, 128)
  9. Label(GoLeft)
  10. Label(GoRight)
  11. RegisterSymbol(AutoLRRange)
  12. Alloc(AutoLRRange, 4)
  13. Alloc(AutoLRValue, 4)
  14. //-----------------------------------------------
  15. AutoLRRange:
  16. DD A        //距離 16進制 A=10
  17. //-----------------------------------------------
  18. AutoLRICSEntry:
  19. Cmp   [Esp], 00EB3E2D //[3/3]3B ?? 0F ?? ?? ?? ?? ?? 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 85
  20. Jne   ICSReturn
  21. Mov   [Esp], AutoLRMain
  22. ICSReturn:
  23. Jmp   GetFocus
  24. //-------------------
  25. AutoLRMain:
  26. Cmp   [AutoLRRange], 0
  27. Je    00EB3E2D
  28. Push  Eax
  29. Inc   [AutoLRValue]
  30. Mov   Eax, [AutoLRRange]
  31. Cmp   Eax, [AutoLRValue]
  32. Jge   GoLeft
  33. Add   Eax, [AutoLRRange]
  34. Cmp   Eax, [AutoLRValue]
  35. Jge   GoRight
  36. Mov   [AutoLRValue], 1
  37. Jmp   GoLeft

  38. GoLeft:
  39. Mov   [Ebp-04], FFFFFFFF
  40. Pop   Eax
  41. Jmp   00EB4280  //[3/3]0f 9c ?? ?? 33 ?? 39 ?? ?? 0f [Adr - 0x10]

  42. GoRight:
  43. Mov   [Ebp-04], 00000001
  44. Pop   Eax
  45. Jmp   00EB4280
  46. //-----------------------------------------------


  47. //AoB and the first 4 ?? is the target
  48. //FF 15 ?? ?? ?? ?? 3B 45 ?? 75 ?? 8B 0D ?? ?? ?? ?? E8
  49. 0165D7C8:
  50. DD AutoLRICSEntry
  51. [DISABLE]
  52. 0165D7C8:
  53. DD GetFocus

  54. Dealloc(AutoLRICSEntry)
  55. UnregisterSymbol(AutoLRMain)
  56. Dealloc(AutoLRMain)
  57. UnregisterSymbol(AutoLRRange)
  58. Dealloc(AutoLRRange)
  59. Dealloc(AutoLRValue)
複製代碼

點評

s99471379  Ebp-Offset 沒更到  發表於 2014-12-30 23:02
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

160

主題

3

好友

1765

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
47277
帖子
837
主題
160
精華
1
積分
1765
楓幣
5181
威望
1351
存款
0
贊助金額
1300
推廣
1
GP
447
閱讀權限
100
性別
在線時間
1380 小時
註冊時間
2014-2-17
最後登入
2024-12-2

積分勳章 高級客戶 論壇支持王 論壇粉絲 VIP會員 貢獻王 音樂勳章 性別(男) 熱心助人 私服達人 太陽勳章 幼兒勳章 神手勳章 懶人勳章 發帖達人 解說達人 除蟲大隊 版主勳章 核心勳章 管理者 長老勳章 精華帖 在線終極王 富豪勳章 2015年紀念勳章 性別(女) 富可敵國 Android勳章 2016年紀念勳章 Android勳章 Apple勳章

2
發表於 2014-12-30 23:01:30 |只看該作者
GoRight跟GoLeft地方沒更新到
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

3
發表於 2014-12-30 23:35:13 |只看該作者
s99471379 發表於 2014-12-30 23:01 [url=forum.php?mod=redirect&goto=findpost&pid=728267&ptid=55520][/url]
GoRight跟GoLeft地方沒更新到

這個地方我一直不懂... sorry

GoLeft:
Mov   [Ebp-04], FFFFFFFF

從以前到現在不懂那邊要怎麼更新 ([E#p - ##] 這種型式)

-04是說四個字節(Byte)之前嗎?

上次也有爬到你的回文,說要用"彙編代碼搜尋"的也是這個媽

因為上次就看不懂了 不好意思 能不能講的詳細一點,

或者有甚麼關鍵字適合的,我去google找看有沒有古文!

真的很感謝你的回答><
[發帖際遇]: anderson101866 去動物園看支那賤畜,購買動物園票劵 2 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

67

主題

6

好友

225

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
7067
帖子
2823
主題
67
精華
0
積分
225
楓幣
20085
威望
181
存款
19856
贊助金額
0
推廣
0
GP
1671
閱讀權限
100
性別
保密
在線時間
870 小時
註冊時間
2012-3-23
最後登入
2024-12-15
4
發表於 2014-12-30 23:59:07 |只看該作者
anderson101866 發表於 2014-12-30 23:35 [url=forum.php?mod=redirect&goto=findpost&pid=728316&ptid=55520][/url]
這個地方我一直不懂... sorry

GoLeft:

[EBP-xx] or [EBP+xx]

通常是指該層CALL所申請的臨時變數
會依據所申請的大小而受影響 (當然還有其他...)
要看Stack變化!

建議你試試看 [EBP-10]
[發帖際遇]: Doem 超爽der,在口袋撿到 14 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

67

主題

6

好友

225

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
7067
帖子
2823
主題
67
精華
0
積分
225
楓幣
20085
威望
181
存款
19856
贊助金額
0
推廣
0
GP
1671
閱讀權限
100
性別
保密
在線時間
870 小時
註冊時間
2012-3-23
最後登入
2024-12-15
5
發表於 2014-12-31 00:07:49 |只看該作者
本帖最後由 MS88088 於 2014-12-31 00:08 編輯
anderson101866 發表於 2014-12-30 23:35 [url=forum.php?mod=redirect&goto=findpost&pid=728316&ptid=55520][/url]
這個地方我一直不懂... sorry

GoLeft:

v1.71.2 ---> [EBP-04]
  1. 00E337C2 - 55                    - push ebp
  2. 00E337C3 - 8B EC                 - mov ebp,esp
  3. 00E337C5 - 83 EC 24              - sub esp,24
  4. 00E337C8 - 53                    - push ebx
  5. 00E337C9 - 56                    - push esi
  6. 00E337CA - 57                    - push edi
複製代碼
V1.75.1
  1. 00EB3C55 - 6A 28                 - push 28
  2. 00EB3C57 - B8 7B2A1601           - mov eax,01162A7B : [0824548B]
  3. 00EB3C5C - E8 5D990F00           - call 00FAD5BE
  4. 00EB3C61 - 8B D9                 - mov ebx,ecx
複製代碼
兩者差上4*3 = 12 BYTES = 0C (16進位)

所以你可以試試看 [EBP-(04+0C)] = [EBP-10] or [EBP-(04-0C)] = [EBP+08] (<--這個別學嘿 自己亂來的 非正式知識)

//------------------------------------------------------------------------------------------------------------------------------------------------------
當然你也可以直接跳下去下面看~

點評

anderson101866  是說要怎麼知道拿哪兩段code來比較阿@@ 比如v175 00EB3C55: 怎麼知道這是函數的開頭 , 要從原本數據裡面的00EB3E2D往上面翻 找到進入的地方嗎?  發表於 2014-12-31 00:24
anderson101866  XD 感謝 我還在回你就補充了!! 謝謝你 我等來看看, 這個問題困擾我好久了 我得悟懂一夏~"~ 我幾乎不懂組語怎麼運作的  發表於 2014-12-31 00:20
[發帖際遇]: Doem 被錢袋砸中進醫院,看病花了 4 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

6
發表於 2014-12-31 00:15:56 |只看該作者
MS88088 發表於 2014-12-30 23:59 [url=forum.php?mod=redirect&goto=findpost&pid=728345&ptid=55520][/url]
[EBP-xx] or [EBP+xx]

通常是指該層CALL所申請的臨時變數

可以了耶XD [Ebp-10]成功 所以這是經驗嗎..

不過為什麼你會猜-10呀@@

不是通常多個4Byte的變數比較常見嗎XD 就多-4這樣

還是有甚麼撇步, 或者你們是怎麼看就知道這[Ebp-xx]需要更新 而171~172的時候就不更新維持[Ebp-04] @@
回覆

使用道具 舉報

67

主題

6

好友

225

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
7067
帖子
2823
主題
67
精華
0
積分
225
楓幣
20085
威望
181
存款
19856
贊助金額
0
推廣
0
GP
1671
閱讀權限
100
性別
保密
在線時間
870 小時
註冊時間
2012-3-23
最後登入
2024-12-15
7
發表於 2014-12-31 00:30:05 |只看該作者
anderson101866 發表於 2014-12-31 00:15 [url=forum.php?mod=redirect&goto=findpost&pid=728371&ptid=55520][/url]
可以了耶XD [Ebp-10]成功 所以這是經驗嗎..

不過為什麼你會猜-10呀@@

CE就有功能可以反白整個函數(不一定每次都正確就是了…)

通常不會去算啦! 直接跳下去看下面就好了…

點評

anderson101866  跳下去下面看是甚麼意思@@ 囧.. 拍謝我都不懂XD  發表於 2014-12-31 00:34
[發帖際遇]: Doem 被甲甲肛,而賺到 2 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

8
發表於 2014-12-31 00:46:27 |只看該作者
本帖最後由 anderson101866 於 2014-12-31 00:51 編輯
MS88088 發表於 2014-12-31 00:30 [url=forum.php?mod=redirect&goto=findpost&pid=728384&ptid=55520][/url]
CE就有功能可以反白整個函數(不一定每次都正確就是了…)

通常不會去算啦! 直接跳下去看下面就好了… ...
未命名.png

有了 看到你前面說的函數了@@
[發帖際遇]: anderson101866 樂於助人,獎勵 2 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

9
發表於 2014-12-31 04:21:57 |只看該作者
本帖最後由 anderson101866 於 2014-12-31 04:25 編輯

感謝 我懂了XD

因為原本172.1的Function:
  1. 00E3B23F - 55                    - push ebp
  2. 00E3B240 - 8B EC                 - mov ebp,esp
  3. 00E3B242 - 83 EC 24              - sub esp,24
  4. ...
  5. 00E3B252 - 8B CF                 - mov ecx,edi               <<
  6. 00E3B254 - 89 7D EC              - mov [ebp-14],edi          <<=========
  7. 00E3B257 - FF 50 18              - call dword ptr [eax+18]   <<
  8. 00E3B25A - 8B CF                 - mov ecx,edi               <<
複製代碼
與175.1
  1. MapleStory.exe+AB3C55 - 6A 28                 - push 28
  2. MapleStory.exe+AB3C57 - B8 7B2A1601           - mov eax,MapleStory.exe+D62A7B
  3. MapleStory.exe+AB3C5C - E8 5D990F00           - call MapleStory.exe+BAD5BE
  4. MapleStory.exe+AB3C61 - 8B D9                 - mov ebx,ecx
  5. MapleStory.exe+AB3C63 - 8B 3D 68A16401        - mov edi,[MapleStory.exe+124A168]
  6. MapleStory.exe+AB3C69 - 8B 07                 - mov eax,[edi]
  7. MapleStory.exe+AB3C6B - 8B CF                 - mov ecx,edi            <<
  8. MapleStory.exe+AB3C6D - 89 7D E0              - mov [ebp-20],edi       <<===
  9. MapleStory.exe+AB3C70 - FF 50 20              - call dword ptr [eax+20]<<
  10. MapleStory.exe+AB3C73 - 8B CF                 - mov ecx,edi              <<
複製代碼
原本同一個區域變數[ebp-14] 變成[ebp-20], 所以多了(0x20-0x14)的offset
, 也就是猜想原本[ebp-04]的區域變數被往後挪到[ebp-(04+C)] 的位置了\"\"

不過你是怎麼直接看出他是4*3的呀XD 經驗嗎(?\"\")
我只看得懂172.1那個Function的Entry
175.1的Entry我看不懂XDD

172.1:
  1. 00E3B23F - 55                    - push ebp //推入caller的ebp
  2. 00E3B240 - 8B EC                 - mov ebp,esp   //此function的ebp指向esp
  3. 00E3B242 - 83 EC 24              - sub esp,24    //esp分配24的空間給local variable
複製代碼
175.1:
  1. MapleStory.exe+AB3C55 - 6A 28                 - push 28                        //傳入參數28
  2. MapleStory.exe+AB3C57 - B8 7B2A1601           - mov eax,MapleStory.exe+D62A7B     //?
  3. MapleStory.exe+AB3C5C - E8 5D990F00           - call MapleStory.exe+BAD5BE         //?
  4. MapleStory.exe+AB3C61 - 8B D9                 - mov ebx,ecx                           //?
  5. MapleStory.exe+AB3C63 - 8B 3D 68A16401        - mov edi,[MapleStory.exe+124A168]  //?
  6. ...
複製代碼
後面就都跨謀了哈哈, 只好用猜的\"\"

另外我有找到一個網站, 很清楚地講172.1的那個Entry是怎麼做的
說明esp, ebp還有local variable / function parameter / return address的相對位置
以後應該比較看得懂啦XD

推薦給大家, 有同樣問題的朋友可以看下面這網址, 再來看這篇, 會比較看得懂在做啥\"\"
[url=redirect/x89eQ]http://en.wikibooks.org/wiki/X86 ... ns_and_Stack_Frames

回覆

使用道具 舉報

67

主題

6

好友

225

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
7067
帖子
2823
主題
67
精華
0
積分
225
楓幣
20085
威望
181
存款
19856
贊助金額
0
推廣
0
GP
1671
閱讀權限
100
性別
保密
在線時間
870 小時
註冊時間
2012-3-23
最後登入
2024-12-15
10
發表於 2014-12-31 09:07:04 來自手機 |只看該作者
anderson101866 發表於 2014-12-31 04:21
感謝 我懂了XD

因為原本172.1的Function:與175.1原本同一個區域變數[ebp-14] 變成[ebp-20], 所以多了(0x2 ...

因為差3個PUSH的大小啊!

好難得有人查英文資料…我英文不怎麼好的說 xDD

點評

anderson101866  再讓我學一招XDD 我也想要用看的(?  發表於 2014-12-31 14:46
anderson101866  不太懂耶 因為我不懂上面175.1的那部分的code在幹嘛; 3個PUSH的大小是哪來的@@ 囧 是要跟著MapleStory.exe+AB3C5C那行 跳過去繼續看嗎?  發表於 2014-12-31 14:43
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4380
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2022-4-24

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

11
發表於 2015-1-1 16:48:56 |只看該作者
本帖最後由 anderson101866 於 2015-1-1 16:50 編輯
MS88088 發表於 2014-12-31 09:07 [url=forum.php?mod=redirect&goto=findpost&pid=728576&ptid=55520][/url]
因為差3個PUSH的大小啊!

好難得有人查英文資料…我英文不怎麼好的說 xDD ...

因為沒找到夠清楚的中文資料呀XDD

我看的也是半懂 不過他有圖解!

最清楚的是下面這張
    MyFunction2(10, 5, 2);
    可以看成
    push 2
    push 5
    push 10
    push eip + 2 ; return address is current address + size of two instructions
    jmp _MyFunction2

    即
    <Stack底部>
    :    :
    |  2 | [ebp + 16] (3rd function argument)
    |  5 | [ebp + 12] (2nd argument)
    | 10 | [ebp + 8]  (1st argument)
    | RA | [ebp + 4]  (return address)
    | FP | [ebp]      (old ebp value)
    |    | [ebp - 4]  (1st local variable)
    :    :
    <Stack頂部>

一目了然呀XDDD

回覆

使用道具 舉報

您需要登入後才可以回文 登入 | 立即註冊

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-16 00:49

回頂部