AylinCE Grandmaster Cheater Supreme
Reputation: 36
Joined: 16 Feb 2017 Posts: 1499
|
Posted: Sat Jan 25, 2025 2:27 pm Post subject: CE Unique Aobs Generator |
|
|
A unique aob code creation tool that reads aobs (Hex) codes taken from addresses (or pasted into the Memo box) and places a wildcard "??" character in different bytes.
You can create a list in 3 ways;
1) From Foundlist addresses (with the Found List button)
2) From the Address List (with the Address List button)
3) Copy and paste your Aobs codes into the Memo box.
You can also write any length of bytes you want for options 1 and 2.
If the box is empty, the default length will be 40 bytes.
If you want this to be an add-on in the CE menu and can't, let me know in the comments.
Otherwise, it's just released as a code sample.
Code: | if aobFrm1 then aobFrm1.Destroy() aobFrm1=nil end
DP1=getScreenDPI()/96
aobFrm1=createForm()
aobFrm1.height=300*DP1 aobFrm1.width=700*DP1 aobFrm1.left=440*DP1 aobFrm1.top=109*DP1
aobFrm1.PopupMode=0 aobFrm1.caption="AylinCE Trainers (2025)"
aobFrm1.Position="poDesktopCenter" aobFrm1.ShowInTaskBar="stAlways"
aobFrm1.BorderStyle="bsNone"
aobFrm1.setLayeredAttributes(0x000100, 255, LWA_COLORKEY | LWA_ALPHA )
aobFrm1.Color=0x000100
-------------------------
local ftb = {}
----------------------- ftb.mnPnl1 -----
ftb.mnPnl1=createPanel(aobFrm1)
ftb.mnPnl1.AutoSize=false
ftb.mnPnl1.height=34*DP1 ftb.mnPnl1.width=690*DP1 ftb.mnPnl1.left=5*DP1 ftb.mnPnl1.top=5*DP1
ftb.mnPnl1.caption="Unique Aobs Generator"
ftb.mnPnl1.Color=8882055 ftb.mnPnl1.BevelWidth=4
ftb.mnPnl1.Font.Style="fsBold" ftb.mnPnl1.Font.Size=14*DP1
ftb.mnPnl1.OnMouseDown=function() aobFrm1.DragNow() end ftb.mnPnl1.Cursor = -22
-----------------------
----------------------- ftb.btPnl1 -----
ftb.btPnl1=createPanel(ftb.mnPnl1)
ftb.btPnl1.AutoSize=false
ftb.btPnl1.height=24*DP1 ftb.btPnl1.width=25*DP1 ftb.btPnl1.left=5*DP1 ftb.btPnl1.top=5*DP1
-----------------------
----------------------- ftb.btPnl2 -----
ftb.btPnl2=createPanel(ftb.mnPnl1)
ftb.btPnl2.AutoSize=false
ftb.btPnl2.height=24*DP1 ftb.btPnl2.width=25*DP1 ftb.btPnl2.left=660*DP1 ftb.btPnl2.top=5*DP1
-----------------------
----------------------- ftb.mnPnl2 -----
ftb.mnPnl2=createPanel(aobFrm1)
ftb.mnPnl2.AutoSize=false
ftb.mnPnl2.height=255*DP1 ftb.mnPnl2.width=690*DP1 ftb.mnPnl2.left=5*DP1 ftb.mnPnl2.top=40*DP1
ftb.mnPnl2.BevelWidth=4
ftb.mnPnl2.Color=8882055
-----------------------
----------------------- ftb.btPnl3 -----
ftb.btPnl3=createPanel(ftb.mnPnl2)
ftb.btPnl3.AutoSize=false
ftb.btPnl3.height=25*DP1 ftb.btPnl3.width=105*DP1 ftb.btPnl3.left=10*DP1 ftb.btPnl3.top=10*DP1
-----------------------
----------------------- ftb.btPnl4 -----
ftb.btPnl4=createPanel(ftb.mnPnl2)
ftb.btPnl4.AutoSize=false
ftb.btPnl4.height=25*DP1 ftb.btPnl4.width=110*DP1 ftb.btPnl4.left=125*DP1 ftb.btPnl4.top=10*DP1
-----------------------
----------------------- ftb.btPnl5 -----
ftb.btPnl5=createPanel(ftb.mnPnl2)
ftb.btPnl5.AutoSize=false
ftb.btPnl5.height=25*DP1 ftb.btPnl5.width=100*DP1 ftb.btPnl5.left=580*DP1 ftb.btPnl5.top=10*DP1
-----------------------
----------------------- ftb.btMm1 -----
ftb.btMm1=createMemo(ftb.mnPnl2)
ftb.btMm1.AutoSize=false
ftb.btMm1.height=150*DP1 ftb.btMm1.width=670*DP1 ftb.btMm1.left=10*DP1 ftb.btMm1.top=40*DP1
ftb.btMm1.Color=14737632
ftb.btMm1.Font.Style="fsBold" ftb.btMm1.Font.Size=0*DP1
ftb.btMm1.ScrollBars="ssAutoBoth" ftb.btMm1.wordWrap=false
-----------------------
----------------------- ftb.btEdt1 -----
ftb.btEdt1=createEdit(ftb.mnPnl2)
ftb.btEdt1.AutoSize=true
ftb.btEdt1.height=23*DP1 ftb.btEdt1.width=670*DP1 ftb.btEdt1.left=10*DP1 ftb.btEdt1.top=225*DP1
ftb.btEdt1.text=""
ftb.btEdt1.Color=14737632
ftb.btEdt1.Font.Style="fsBold" ftb.btEdt1.Font.Size=0*DP1
-----------------------
----------------------- ftb.btPnl6 -----
ftb.btPnl6=createPanel(ftb.mnPnl2)
ftb.btPnl6.AutoSize=false
ftb.btPnl6.height=25*DP1 ftb.btPnl6.width=110*DP1 ftb.btPnl6.left=290*DP1 ftb.btPnl6.top=196*DP1
-----------------------
----------------------- ftb.btLbl1 -----
ftb.btLbl1=createLabel(ftb.mnPnl2)
ftb.btLbl1.AutoSize=false
ftb.btLbl1.height=22*DP1 ftb.btLbl1.width=75*DP1 ftb.btLbl1.left=245*DP1 ftb.btLbl1.top=12*DP1
ftb.btLbl1.caption="Byte Leng: "
ftb.btLbl1.alignment="taLeftJustify"
ftb.btLbl1.Font.Style="fsBold" ftb.btLbl1.Font.Size=10*DP1
-----------------------
----------------------- ftb.btEdt2 -----
ftb.btEdt2=createEdit(ftb.mnPnl2)
ftb.btEdt2.AutoSize=false
ftb.btEdt2.height=22*DP1 ftb.btEdt2.width=30*DP1 ftb.btEdt2.left=315*DP1 ftb.btEdt2.top=10*DP1
ftb.btEdt2.text=""
ftb.btEdt2.Color=14737632
ftb.btEdt2.Font.Style="fsBold" ftb.btEdt2.Font.Size=0*DP1
-----------------------
--############################################################################--
--############################################################################--
function panelClickEffect(item2, fsize, text, thint)
--local item2 = item2
item2.Color=4342338
item2.BevelColor=clDefault
item2.Font.Size=fsize item2.BevelInner="bvRaised" item2.BevelWidth=3 item2.Font.Color="0x000000"
item2.Font.Style="fsBold" item2.Hint=thint item2.ShowHint=true item2.OptimalFill=true
item2.Font.Name="Georgia" item2.Cursor=-21 item2.Font.Color="0xffffff"
item2.caption = text
item2.OnMouseMove=function() item2.BevelColor=65280 end
item2.OnMouseLeave=function() item2.BevelColor=clDefault end
item2.OnMouseDown=function() item2.Color=10395294 end
item2.OnMouseUp=function() item2.Color=4342338 end
end
panelClickEffect(ftb.btPnl1, 16*DP1, "-", "")
panelClickEffect(ftb.btPnl2, 12*DP1, "X", "")
panelClickEffect(ftb.btPnl3, 10*DP1, "Found List", "")
panelClickEffect(ftb.btPnl4, 10*DP1, "Address List", "")
panelClickEffect(ftb.btPnl5, 10*DP1, "Clear List", "")
panelClickEffect(ftb.btPnl6, 10*DP1, "Format List", "")
--############################################################################--
--############################################################################--
ftb.btPnl1.OnClick=function() aobFrm1.WindowState = "wsMinimized" end
ftb.btPnl2.OnClick=function() aobFrm1.Close() end
--############################################################################--
--############################################################################--
function getByteString1(address, bytecount)
local bytes = readBytes(address, bytecount, true)
if bytes then
local result = ""
for i = 1, #bytes do
if #result > 0 then result = result .. " " end
result = result .. string.format("%02X", bytes[i]) end
return result end
end
ftb.btPnl3.OnClick=function()
local fnlst = MainForm.Foundlist3.Items
local leng1 = tonumber(ftb.btEdt2.Text)
if leng1==nil then leng1=40 end
if fnlst.Count~=0 then
for i=0, fnlst.Count -1 do
addr1 = fnlst[i].Caption
ftb.btMm1.Lines.Add(getByteString1(addr1, leng1))
end
end
end
ftb.btPnl4.OnClick=function()
local al = getAddressList()
local leng1 = tonumber(ftb.btEdt2.Text)
if leng1==nil then leng1=40 end
if al.Count~=0 then
for i=0, al.Count -1 do
if al[i].Type ~= vtAutoAssembler and al[i].getCurrentAddress() ~= 0
and al[i].Value ~= "??" then
addr1 = al[i].Address
ftb.btMm1.Lines.Add(getByteString1(addr1, leng1))
end
end
end
end
ftb.btPnl5.OnClick=function() ftb.btMm1.Clear() end
ftb.btEdt1.OnClick=function()
txt = ftb.btEdt1.Text
writeToClipboard(txt)
end
----------------------------------- Filters ------------------------------------
function compareHexCodes(hexTable)
local result = {}
local byteTables = {}
for _, hex in ipairs(hexTable) do
local bytes = {}
for byte in hex:gmatch("%S+") do
table.insert(bytes, byte)
end
table.insert(byteTables, bytes)
end
for i = 1, #byteTables[1] do
local byte = byteTables[1][i]
local allEqual = true
for j = 2, #byteTables do
if byteTables[j][i] ~= byte then
allEqual = false
break
end
end
if allEqual then
table.insert(result, byte)
else
table.insert(result, "??")
end
end
return table.concat(result, " ")
end
ftb.btPnl6.OnClick=function()
if ftb.btMm1.Lines.Text~="" then
local outTbl = {}
for i = 0, ftb.btMm1.Lines.Count - 1 do
local outs = ftb.btMm1.Lines[i]
table.insert(outTbl, outs)
end
local result = compareHexCodes(outTbl)
ftb.btEdt1.Text=result
end
end |
As always; Happy coding, until we meet on a different topic.
Here is a result image:
_________________
|
|