Baby Calc - WannaGame2022


main

แป hร m nร y
myExprฤฦฐแปฃc cแบฅp phรกt 0x20 bytes
strฤฦฐแปฃc ฤแปc 0x80 bytes vร lฦฐu trรชn stack trong khi bร i nร y chแป cung cแบฅp cho str
setup_data


Nhรฌn dรฒng 5-10: Hร m nร y copy tแปซ cรกi
strnhแบญp ban ฤแบงu vร omyExprtheo thแปฉ tแปฑ sau:แป dรฒng 9, nแบฟu size cแปงa bแบกn lร 0x10 --> malloc sแบฝ cแบฅp phรกt 0x80 bytes
ฤแป test hร m trรชn, bแบกn cรณ thแป chแบกy hร m sau:


Tแบกi dรฒng 47, sau khi gรกn myExpr->func thรฌ chฦฐฦกng trรฌnh sแบฝ gแปi thแบณng tแปi LABEL 15: nฦกi ta ฤฦฐแปฃc phรฉp nhแบญp vแปi kรญch thฦฐแปc tรนy รฝ.
Tแบกi ฤรขy xuแบฅt hiแปn lแปi Heap OverFlow
save_result


แป hร m nร y cรกc biแปu thแปฉc sแบฝ ฤฦฐแปฃc lฦฐu trong
str, sau ฤรณ ฤฦฐแปฃc lฦฐu vร o 1single linked listvแปi head
view_result

แป hร m nร y nรณ chแป in
obj->expressionra mร n hรฌnh thรดi, khรดng cรณ gรฌ cแบฃ
cleanup_data

Hร m nร y sแบฝ free thแบฑng buf vแปi kรญch thฦฐแปc 0x80 nhรฌn แป hร m setup_data
Memory management
Memory sau mแปi lแบงn lแบทp:

Overview
Nhรฌn แบฃnh trรชn, cรณ thแป thแบฅy myExpr->buf sau khi ฤฦฐแปฃc free thรฌ nรณ sแบฝ ฤฦฐแปฃc ฤแบฉy vร o tcachebins. Gแปi lแบกi 1 lแบงn lแบทp nแปฏa vแปi kรญch thฦฐแปc tฦฐฦกng tแปฑ ฤแป tรกi sแปญ dแปฅng chunk nร y.


myExpr (loop1)
myExpr -> buf (loop2) <--- Heap OverFlow here
str (loop1)
obj (loop1)
myExpr (loop2)
str (loop2)
obj (loop2)
Overwrite tแปซ 2 ฤแบฟn 4 ฤแป leak ฤฦฐแปฃc ฤแปa chแป heap.

Last updated