- UID
- 84499
- 帖子
- 985
- 主題
- 48
- 精華
- 0
- 積分
- 1050
- 楓幣
- 4380
- 威望
- 1017
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 0
- 閱讀權限
- 100
- 性別
- 保密
- 在線時間
- 668 小時
- 註冊時間
- 2014-11-21
- 最後登入
- 2022-4-24
|
本帖最後由 anderson101866 於 2015-2-9 01:27 編輯
如標題,
最近把加速檢物喝水的pointer安上去,用攻擊不停的這種模式去鎖定
不過造成楓谷的使用率高很多XDD
想說她明明有Sleep為什麼還是這麼高
去查才弄懂原來原始的攻擊不停其實是Sleep(0)
東找找西找找論壇上的不停數據都要$$,所以GOOGLE了一個XD,先參考一下- //http://toby.logdown.com/posts/237384/beibei-173-3-scripts "蓓蓓173.3 數據"
- //TwMs v173.3_ICS_攻擊不停
- //Update:s99471379
- [Enable]
- Alloc(FuckingTubi, 256)
- CreateThread(FuckingTubi)
- FuckingTubi:
- Push 00 //#1
- Call Sleep //#2 <-----------here
- mov eax,[015F84A4] //#3
- Test Eax, Eax
- Je FuckingTubi
- And [Eax+0000A8A4], 00 //#4
- And [Eax+0000A8B4], 00 //#5
- Jmp FuckingTubi
- [Disable]
複製代碼 數據在做的事情就是:
在楓谷開一條線程
然後#3把015F84A4指向的地址載入,加上2種offset以後,
把這兩個位址分別在#4與#5使用,並把那兩個位址所在的變數歸零
最後
簡言之就是用一個近乎spinning的迴路去鎖定兩個變數的值,把他們歸0這樣
當然如果數據允許的話,是不用鎖定那麼快就是了
也就是說現在的數據像是這樣- while(1){
- sleep(0);
- do something
- }
複製代碼 稍微查了一下,Sleep()這個API在參數=0的時候
深入分析Sleep(0)与Sleep(1)的区别
Sleep(0),如果线程调度器的可运行队列中有大于或等于当前线程优先级的就绪线程存在,操作系统会将当前线程从处理器上移除,调度其他优先级高的就 绪线程运行;如果可运行队列中的没有就绪线程或所有就绪线程的优先级均低于当前线程优先级,那么当前线程会继续执行,就像没有调用 Sleep(0)一 样。
因此如果數據允許的話Sleep 的參數也許可以高一點 不需要用0(鎖0鎖太勤勞XD)
那麼Sleep()在組語裡頭要怎麼給予參數呢,其實數據裡面有講了XD
比如這樣這樣就會變成Sleep(50)了 //0x32=50
那麼有人會說怎麼很奇怪,為什麼PUSH就好,我們究竟需不需要處理pop這件事
於是我又去查了,於下文中
Calling windows functions in ASM (push/pop question)
Virtually all Win32 API functions use the __stdcall calling convention, where the called function is responsible for popping the argument(s) off the stack. So in the case of Sleep(), you don't have to do anything else than what you've shown.
小翻譯一下,就是說Win32中的API,預設都是使用__stdcall這種calling的方法,而這種方法呼叫的函數,被呼叫者有義務把參數從stack中pop出來,而你只需要把參數push進去。
所以囉,覺得加了某某不停以後,確定數據又是pointer鎖定類型的,那就看看Sleep有沒有辦法睡久一點吧XD (#1, #2處)
|
-
總評分: GP + 2
查看全部評分
|