This was a small exercise in curiosity. I actually did this months ago, when I was first starting in the world of RE. I had no real use for reversing this file, it was more an effort to learn more about the tools used, specifically the hex editor. After using computers in a casual sense for so long, it felt very satisfying to take a peek under the hood and see how things were represented in a hex editor.

One of the first games I started messing around with was a free MMORPG for mobile phones and PC called Warspear Online. When you install this game there’s very few files in the game’s directory.

It seems as if most of the game’s files are stored inside one PAK file. Opening it up in a hex editor you can see some of the file names and types included in the PAK file.

So, obviously, the first file I was interested in was badwords.txt. I really needed to appease my curiosity and my childish sense of humor. I wanted to see what these bad words were.

When we separate the badwords.txt and its header we’re left with these bytes.

95 0A 1D 00 B2 0A 00 00 B8 2D 00 00 01 62 61 64 77 6F 72 64 73 2E 74 78 74

After briefly analyzing some of the patterns displayed in this PAK file I felt like I could make some safe assumptions about these bytes.

95 0A 1D 00                             - An offset or address maybe?
B2 0A 00 00                             - A size?
B8 2D 00 00                             - A size?
01                                      - A flag of some type?
62 61 64 77 6F 72 64 73 2E 74 78 74     - File name"badwords.txt"

I can’t go to the address of 0x950A1D00 because it doesn’t exist, my file isn’t that large. So I tried reversing the endianness and went to the offset of 0x1D0A95 instead.

I believe I’m in the right place now. I had just learned about magic numbers and I was honestly a bit shocked that I had never heard the term, nor even considered the concept, before. I knew magic numbers would be in play here and fortunately I got a clue right off the bat.

You can see how the address we’ve found begins with the hex bytes 42 54 68 or in ASCII BZh. After staring at this for a bit I noticed just above it, at the address 0x1D0981, we have the exact same hex bytes. Was this the magic number?

Next up I went to my most valuable tool, Google, and searched for “BZh magic number” with some very nice results. This is from the Wikipedia article on file signatures.

Now I know what compression method was used, I went back to Google to find out how can I decompress a .bz2 file.

Thankfully this is a popular compression method supported by most unpackers like WinZip. Now to get our bytes. I went ahead and tried my luck using the first group of hex bytes that I assumed might related to a size value.

At this point I’m feeling really good about my assumptions so far. The bytes selected end exactly at another BZh magic number. That would have me believe that is the beginning of another compressed file, which means we have the correct amount of bytes.

Next I copied the selected bytes, put them into their own file, and saved it with a .bz2 file extension. I opened the .bz2 file with 7-Zip and extracted it. I had to manually change the extension to a .txt but when I did I was greeted with some very bad words. I did it!

BadWords.txt
dick
cunt
fuck
nigg
bitch
slut
cock
vagina
whore
penis
fags
faggot
asshole

e6aль
eбaл
eбaть
eбyч
eбать
eбёт
eбла
xyёв
xyй
xyя
xуе
xуй
xую
блябу
бляд
блять
взъебка
взьебка
взьебывать
въеб
выбляд
выеб
выебать
выебен
выебнулся
выебон
выебываться
выпердеть
высраться
выссаться
вьебен
гавно
гавню
гамно
гандон
говн
гондон
доебываться
долбоеб
долбоёб
дрочелло
дрочена
дрочила
дрочилка
дрочистый
дрочить
дрочка
дрочун
е6ал
е6ут
ёбaн
ебaть
ебyч
ебал
ебало
ебальник
ебан
ебарь
ебат
ёбат
ебатория
ебать
ебать-копать
ебаться
ебашить
ебёна
ебет
ебёт
ебец
ебик
ебин
ебись
ебическая
ебки
ебла
еблан
ебливый
еблище
ебло
еблысть
ебля
ёбн
ебнуть
ебнуться
ебня
ебошить
ебская
ебский
ебтвоюмать
ебуче
ебучее
ебучий
ебучим
ебущ
ебырь
елда
елдак
елдачить
жопа
жопу
заговнять
задрачивать
задристать
задрота
зае6
заё6
заеб
заёб
заеба
заебал
заебанец
заебастая
заебастый
заебать
заебаться
заебашить
заебист
заебись
заебошить
заебываться
залуп
замудохаться
запиздячить
засерать
засерун
засеря
засирать
засрун
захуячить
злоеб
изъебнуться
ипать
ипаться
ипаццо
курва
курвятник
лошар
лошок
лярва
малафья
мандавош
мандень
мандеть
мандища
мандюк
минетчик
минетчица
мокрощелка
мокрощёлка
мразь
мудak
мудaк
мудаг
мудак
мудель
мудеть
мудила
мудистый
мудня
мудоеб
мудозвон
мудоклюй
набздел
набздеть
наговнять
надристать
надрочить
наебать
наебнуть
наебывать
насрать
настопиздить
нахер
нахрен
нахуй
невротебучий
невъебенно
нехира
нехрен
нехуй
ниибацо
ниипацца
ниипаццо
ниипет
никуя
нихера
нихуя
обосрать
объебос
обьебать
обьебос
опездал
опизде
остоебенить
остопиздеть
отмудохать
отпиздить
отпиздячить
отпороть
отъебись
охуе
охуя
педерас
педик
педрил
пезд
пездят
пизд
пи3д
пиzд
пидор
пидар
пидр
пиздят
пиздячить
писькострадатель
подговнять
подонки
подонок
подъебнуть
подъебнуться
поебать
поебень
поёбывает
поскуда
посрать
потаскуха
потаскушка
похуй
похуи
похую
приебаться
пробзделся
проблядь
проеб
разхуячить
разъеб
распроеть
сволота
сговнять
сестроеб
срака
сраку
сраный
сранье
срать
срун
ссака
сука
суки
суходрочка
сучара
сучий
сучка
сучко
сучонок
сучье
сцание
сцать
сцука
сцуки
сцуконах
сцуль
сцыха
сцышь
съебаться
сыкун
трахае6
трахаеб
трахаёб
трахатель
ублюдок
уеб
уёб
хyё
хyй
хyйня
хер
херня
херовато
херовина
херовый
хитровыебанный
хитрожопый
хуе
хуи
хуй
хуище
хуля
хую
хуюл
хуя
хуяк
хуяра
хуясе
хуячить
целка
чмо
чмошник
чмырь
шалава
шалавой
шлюха
шлюхой
шлюшка
suka
pidor
zaebal
eblan
huy
huj
hooy
xуй

e6al’
ebal
ebych
ebjot
ebla
xyjov
xyj
xyja
xue
xuj
xuju
bljabu
bljad
bljat’
vz#ebka
vz’ebka
vz’ebyvat’
v#eb
vybljad
vyeb
vyebat’
vyeben
vyebnulsja
vyebon
vyebyvat’sja
vyperdet’
vysrat’sja
vyssat’sja
v’eben
gavno
gavnju
gamno
gandon
govn
gondon
doebyvat’sja
dolboeb
dolbojob
drochello
drochena
drochila
drochilka
drochistyj
drochit’
drochka
drochun
e6al
e6ut
joban
ebych
ebal
ebalo
ebal’nik
ebar’
jobat
ebatorija
ebat’-kopat’
ebat’sja
ebashit’
ebjona
ebet
ebjot
ebik
ebin
ebis’
ebicheskaja
eblivyj
eblishhe
eblo
eblyst’
eblja
jobn
ebnut’
ebnut’sja
eboshit’
ebskaja
ebskij
ebtvojumat’
ebuche
ebuchee
ebuchij
ebuchim
ebushh
ebyr’
elda
eldak
eldachit’
zhopa
zhopu
zagovnjat’
zadrachivat’
zadristat’
zadrota
zae6
zajo6
zaeb
zajob
zaeba
zaebal
zaebanec
zaebastaja
zaebastyj
zaebat’
zaebat’sja
zaebashit’
zaebist
zaebis’
zaeboshit’
zaebyvat’sja
zalup
zamudohat’sja
zapizdjachit’
zaserat’
zaserun
zaserja
zasirat’
zasrun
zahujachit’
zloeb
iz#ebnut’sja
ipat’
ipat’sja
ipacco
koncha
kurva
kurvjatnik
loshar
loshok
ljarva
malaf’ja
mandavosh
mandej
manden’
mandet’
mandishha
mandoj
mandu
mandjuk
minetchik
minetchica
mokroshhelka
mokroshhjolka
mraz’
mudak
mudak
mudag
mudak
mudel’
mudet’
mudila
mudistyj
mudnja
mudoeb
mudozvon
mudokljuj
nabzdel
nabzdet’
nagovnjat’
nadristat’
nadrochit’
naebat’
naebnut’
naebyvat’
nasrat’
nastopizdit’
naher
nahren
nahuj
nevrotebuchij
nev#ebenno
nehira
nehren
nehuj
niibaco
niipacca
niipacco
niipet
nikuja
nihera
nihuja
obosrat’
ob#ebos
ob’ebat’
ob’ebos
opezdal
opizde
ostoebenit’
ostopizdet’
otmudohat’
otpizdit’
otpizdjachit’
otporot’
ot#ebis’
ohue
ohuja
pederas
pedik
pedril
pezd
pezdjat
pizd
pi3d
pizd
pidor
pidar
pidr
pizdjat
pizdjachit’
pis’kostradatel’
podgovnjat’
podonki
podonok
poebat’
poeben’
pojobyvaaet
poskuda
posrat’
potaskuha
potaskushka
pohuj
pohui
pohuju
priebat’sja
probzdelsja
probljad’
razhujachit’
raz#eb
rasproet’
svolota
sgovnjat’
sestroeb
sraka
sraku
sranyj
sran’e
srat’
srun
ssaka
suka
suki
suhodrochka
suchara
suchij
suchka
suchko
suchonok
such’e
scanie
scat’
scuka
scuki
scukonah
scul’
scyha
scysh’
s#ebat’sja
sykun
trahae6
trahaeb
trahajob
trahatel’
ubljudok
ujob
hyjo
hyj
hyjnja
hernja
herovato
herovina
herovyj
hitrovyebannyj
hitrozhopyj

hui
huj
huishhe
hulja
huju
hujul
huja
hujak
hujara
hujase
hujachit’
celka
chmo
chmoshnik
chmyr’
shalava
shalavoj
sharajobit’sja
shljuha
shljuhoj
shljushka
xuj
xep

puta
vagabunda
fuder
foder
buceta
boceta
busseta
chota
xoxota
vagina
xereca
piroca
pênis
macaco
bicha
boiola
viado
sapatão
sapatao

快枪侠
鸡鸡
雞雞
小弟弟
阴茎




桃花園
淫蟲
妓女
二奶
小三
咪咪
福寿
奶奶
太平公主
菊花
后庭
打手枪
玩老二
吹箫
肏/操

warspearonline.hol.es
hol.es
wsp_bank
warspear-vzlom.my1.ru
warspear-vzlom
my1.ru
my1
warspear-hack.my1.ru
warspear-hack
warspear-hack.at.ua
at.ua
warspear-online.adr.com.ua
adr.com.ua
com.ua
gamerusher.com
gamebuynow.com

The file is filled with exactly what you might guess, bad words. The game is made by Russian developers, so of course the majority of bad words are in Russian. My favorite part was at the bottom though.

They’ve added all the known websites of gold sellers and exploiters to their filter list in an attempt to prevent these people from
advertising their services in-game.

Last modified: June 1, 2019