PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   CE腳本問題 (組合語言) (https://www.pcdvd.com.tw/showthread.php?t=1166045)

wkm 2019-09-05 01:30 PM

CE腳本問題 (組合語言)
 
這是外國人寫的腳本,無敵+一即必殺代碼
大方向算是看得懂,但有些不明白用意,請看得懂的網友解答

ai部分,看來是要把EAX 的XOR加密結果為0
我一看代碼以為寫錯了,遊戲會崩潰....但是執行是正確的沒問題
為什麼是pop eax 之後又是push eax
看底下的原始代碼,先前並沒有push動作卻pop,之後也push也無pop動作
為何這樣寫? 沒有崩潰?








define(address,"Chaosbane.exe"+3F32A5)
define(bytes,89 83 30 02 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"Chaosbane.exe"+3F32A5)

label(code)
label(return)
label(ai)
label(player)


newmem:
cmp rdx,00002DA5
je player
cmp rdx,00002DA5
jne ai
jmp code

code:
mov [rbx+00000230],eax
jmp return

player:
mov eax,[rbx+00000228]
mov [rbx+00000230],eax
jmp return

ai:
pop eax
mov eax,BABEEBAB
push eax
mov [rbx+00000230],eax
jmp return




address:
jmp newmem
nop
return:

[DISABLE]

address:
db bytes
// mov [rbx+00000230],eax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Chaosbane.exe"+3F32A5

"Chaosbane.exe"+3F3276: 8B 44 24 50 - mov eax,[rsp+50]
"Chaosbane.exe"+3F327A: 0F 2F 44 24 58 - comiss xmm0,[rsp+58]
"Chaosbane.exe"+3F327F: 0F 47 C1 - cmova eax,ecx
"Chaosbane.exe"+3F3282: 89 44 24 50 - mov [rsp+50],eax
"Chaosbane.exe"+3F3286: 89 4C 24 58 - mov [rsp+58],ecx
"Chaosbane.exe"+3F328A: F3 0F 10 44 24 58 - movss xmm0,[rsp+58]
"Chaosbane.exe"+3F3290: F3 0F 5C 44 24 50 - subss xmm0,[rsp+50]
"Chaosbane.exe"+3F3296: F3 0F 11 44 24 58 - movss [rsp+58],xmm0
"Chaosbane.exe"+3F329C: 8B 44 24 58 - mov eax,[rsp+58]
"Chaosbane.exe"+3F32A0: 35 AB EB BE BA - xor eax,BABEEBAB
// ---------- INJECTING HERE ----------
"Chaosbane.exe"+3F32A5: 89 83 30 02 00 00 - mov [rbx+00000230],eax
// ---------- DONE INJECTING ----------
"Chaosbane.exe"+3F32AB: 35 AB EB BE BA - xor eax,BABEEBAB
"Chaosbane.exe"+3F32B0: 89 44 24 58 - mov [rsp+58],eax
"Chaosbane.exe"+3F32B4: F3 0F 10 44 24 58 - movss xmm0,[rsp+58]
"Chaosbane.exe"+3F32BA: 0F 2E C6 - ucomiss xmm0,xmm6
"Chaosbane.exe"+3F32BD: 7A 10 - jp Chaosbane.exe+3F32CF
"Chaosbane.exe"+3F32BF: 75 0E - jne Chaosbane.exe+3F32CF
"Chaosbane.exe"+3F32C1: 48 8D 55 B0 - lea rdx,[rbp-50]
"Chaosbane.exe"+3F32C5: 48 8B CB - mov rcx,rbx
"Chaosbane.exe"+3F32C8: E8 83 F1 FF FF - call Chaosbane.exe+3F2450
"Chaosbane.exe"+3F32CD: EB 17 - jmp Chaosbane.exe+3F32E6

stanleywang 2019-09-05 07:55 PM

先 pop 再 push 其實就是偷改原始程式的資料,
因為 ret 後,原來的程式會把改過的值 pop 出來,
這樣就達到外掛的目的。

冰的啦魔王大人 2019-09-06 12:54 AM

去CE討論板問原作者比較快!
搞不好還可以包到一些小工程.

wkm 2019-11-15 09:06 PM

又碰到問題不知何處可問....
國外的英文很吃力
對岸也不知道有哪可問

非模塊地址,要使用aobscan尋找
要改第一行轉跳,可是只有3個bytes會打亂下行代碼
原本不是問題,但0000015CA8C8C8E0 是會變動的
這要如何寫腳本?


15CDBD10CB5 - 89 48 18 - mov [rax+18],ecx
15CDBD10CB8 - 48 B8 E0C8C8A85C010000 - mov rax,0000015CA8C8C8E0 { (15CB5E27B00) }



看別人寫的腳本有:
je @f

@@:

這邊的@f 是什麼意思? 是假指令嗎? 我並沒有看到跳轉@f:的部分

credopcdd 2019-11-15 09:18 PM

組合語言帥呀
一堆00 ff 看到眼睛都花了
原來ce 要碰組語


所有的時間均為GMT +8。 現在的時間是06:38 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。