KH Easy Trainer 1.41
RE: KH Easy Trainer Creator Posted on: 03/12/2014 3:12am
Quote Post
The Laziest Man on KongHack
haenawolf Posted on: 03/11/2014 11:07pm

Actually, the generated cetrainer can be manually edit to input an assembler script,
for example, replacce
LuaCall(Aobswap({line1},{line2}))
with
Aobscan(_incdodge,...
_incdodge+4:
db ....



the problem with this is that it will only replace the first result in the list of the search instead of all of them. aobscan will also throw an error if there are no result whereas the aobSwap will not error.




RE: KH Easy Trainer Creator Posted on: 03/12/2014 3:15am
Quote Post
Never let a computer tell me shit.

if anyone wants it., here is for doing unity instead of flash

 -- ========================== VARIABLES ==================== title="The Gate" credits="                created by KolonelKadat                03/03/2014" blue="0x00F21200" red1="0x000000FF" red2="0x00000099" white="0x00FFFFFF" information1="Select browser. Make sure the game is loaded."  function setHack_Information()   t =   {  {'(quest mode)Instawin when enemies spawn', [[LuaCall(Aobswap("02 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 39 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 16 3D ?? ?? ?? ?? 02 16 28 ?? ?? ?? ?? 17 2A 17 0A 16 0B 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 07 6F ?? ?? ?? ?? 0C 08 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 08 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 43 ?? ?? ?? ?? 08 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 16 0A 38 ?? ?? ?? ?? 07 17 58 0B 07 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 3F ?? ?? ?? ?? 06 39 ?? ?? ?? ?? 02 17 28 ?? ?? ?? ?? 17 2A 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 18 40 ?? ?? ?? ?? 15 0D 16 13 ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 43 ?? ?? ?? ?? 11 ?? 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 09 15 40 ?? ?? ?? ?? 11 ?? 7B ?? ?? ?? ?? 0D 38 ?? ?? ?? ?? 09 11 ?? 7B ?? ?? ?? ?? 3B ?? ?? ?? ?? 15 0D 38 ?? ?? ?? ?? 11 ?? 17 58 13 ?? 11 ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 3F ?? ?? ?? ?? 09 15 3B ?? ?? ?? ?? 02 09 28 ?? ?? ?? ?? 17 2A 16 2A","02 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 39 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 16 3D 00 00 00 00 02 16 28 ?? ?? ?? ?? 17 2A 17 0A 16 0B 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 07 6F ?? ?? ?? ?? 0C 08 7B ?? ?? ?? ?? 3A ?? ?? ?? ?? 08 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 43 ?? ?? ?? ?? 08 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 16 0A 38 ?? ?? ?? ?? 07 17 58 0B 07 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 3F ?? ?? ?? ?? 06 39 ?? ?? ?? ?? 02 17 28 ?? ?? ?? ?? 17 2A 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 18 40 ?? ?? ?? ?? 15 0D 16 13 ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 43 ?? ?? ?? ?? 11 ?? 7B ?? ?? ?? ?? 17 3B ?? ?? ?? ?? 09 15 40 ?? ?? ?? ?? 11 ?? 7B ?? ?? ?? ?? 0D 38 ?? ?? ?? ?? 09 11 ?? 7B ?? ?? ?? ?? 3B ?? ?? ?? ?? 15 0D 38 ?? ?? ?? ?? 11 ?? 17 58 13 ?? 11 ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 3F ?? ?? ?? ?? 09 15 3B ?? ?? ?? ?? 02 09 28 ?? ?? ?? ?? 17 2A 16 2A "))]], [[when enemies spawn, you win only works in quest mode]]}, {'(captus game) extra time to match cards', [[LuaCall(Aobswap("02 03 7D ?? ?? ?? ?? 03 6F ?? ?? ?? ?? 0D 09 45 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 6F ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 22 ?? ?? ?? ?? 6F ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 16 0A 04 6F ?? ?? ?? ?? 0C 38 ?? ?? ?? ?? 08 6F ?? ?? ?? ?? A5 ?? ?? ?? ?? 0B 02 7B ?? ?? ?? ?? 06 07 6F ?? ?? ?? ?? 06 17 58 0A 08 6F ?? ?? ?? ?? 3A ?? ?? ?? ?? DD ?? ?? ?? ?? 08 75 ?? ?? ?? ?? 13 ?? 11 ?? 2D ?? DC 11 ?? 6F ?? ?? ?? ?? DC 02 28 ?? ?? ?? ?? 2A ","02 03 7D ?? ?? ?? ?? 03 6F ?? ?? ?? ?? 0D 09 45 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 22 00 C0 79 44 6F ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 22 00 C0 79 44 6F ?? ?? ?? ?? 38 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 6F ?? ?? ?? ?? 16 0A 04 6F ?? ?? ?? ?? 0C 38 ?? ?? ?? ?? 08 6F ?? ?? ?? ?? A5 ?? ?? ?? ?? 0B 02 7B ?? ?? ?? ?? 06 07 6F ?? ?? ?? ?? 06 17 58 0A 08 6F ?? ?? ?? ?? 3A ?? ?? ?? ?? DD ?? ?? ?? ?? 08 75 ?? ?? ?? ?? 13 ?? 11 ?? 2D ?? DC 11 ?? 6F ?? ?? ?? ?? DC 02 28 ?? ?? ?? ?? 2A  "))]], [[gives you more than 16  minutes to match the cards]]}   } end  -- ========================== MAIN GUI ==================== MainGUI     = {} MainGUI[1]  = createForm(false) MainGUI[2]  = createPanel(MainGUI[1]) MainGUI[4]  = createLabel(MainGUI[2]) MainGUI[5]  = createGroupBox(MainGUI[2]) MainGUI[6]  = createLabel(MainGUI[5]) MainGUI[7]  = createLabel(MainGUI[5]) MainGUI[8]  = createLabel(MainGUI[2]) MainGUI[9]  = createLabel(MainGUI[5]) MainGUI[10] = createComboBox(MainGUI[5]) MainGUI[11]  = createGroupBox(MainGUI[2]) MainGUI[12] = createButton(MainGUI[5]) MainGUI[13] = createLabel(MainGUI[2]) MainGUI[14]  = createLabel(MainGUI[11]) MainGUI[15] = createListBox(MainGUI[11]) MainGUI[16] = createButton(MainGUI[11]) MainGUI[17] = createButton(MainGUI[11]) MainGUI[18]  = createLabel(MainGUI[11]) MainGUI[19]  = createLabel(MainGUI[11]) -- =================== FONT PROPERTIES ================ setProperty(MainGUI[1] , "color", red2) setProperty(MainGUI[1] , "Position", "poScreenCenter") setProperty(MainGUI[1] , "BorderIcons", "[biSystemMenu]") setProperty(MainGUI[1] , "BiDiMode", "bdLeftToRight") setProperty(MainGUI[2] , "BiDiMode", "bdLeftToRight") setProperty(MainGUI[2] , "BiDiMode", "bdLeftToRight") setProperty(MainGUI[10] , "ReadOnly", "True") local FontHeight = getProperty(MainGUI[4] , "Font") setProperty(FontHeight , "Style", "[fsBold, fsitalic]") setProperty(FontHeight , "Height", "26") setProperty(FontHeight , "Color", white) local FontHeight = getProperty(MainGUI[5] , "Font") setProperty(FontHeight , "Height", "18") local FontHeight = getProperty(MainGUI[6] , "Font") setProperty(FontHeight , "Height", "18") setProperty(FontHeight , "Color", white) local FontHeight = getProperty(MainGUI[8] , "Font") setProperty(FontHeight , "Style", "[fsBold, fsitalic]") setProperty(FontHeight , "Height", "26") setProperty(FontHeight , "Color", white) local FontHeight = getProperty(MainGUI[9] , "Font") setProperty(FontHeight , "Height", "16") setProperty(FontHeight , "Color", white) setProperty(FontHeight , "Style", "[fsBold]") local FontHeight = getProperty(MainGUI[10] , "Font") setProperty(FontHeight , "Height", "18") local FontHeight = getProperty(MainGUI[12] , "Font") setProperty(FontHeight , "Height", "13") local FontHeight = getProperty(MainGUI[13] , "Font") setProperty(FontHeight , "Style", "[fsBold, fsitalic]") setProperty(FontHeight , "Height", "16") setProperty(FontHeight , "Color", white) setProperty(MainGUI[13], "Cursor", "-21") local FontHeight = getProperty(MainGUI[14] , "Font") setProperty(FontHeight , "Height", "18") setProperty(FontHeight , "Color", white) local FontHeight = getProperty(MainGUI[15] , "Font") setProperty(FontHeight , "Height", "18") local FontHeight = getProperty(MainGUI[18] , "Font") setProperty(FontHeight , "Style", "[fsBold]") setProperty(FontHeight , "Height", "18") setProperty(FontHeight , "Color", white) local FontHeight = getProperty(MainGUI[19] , "Font") setProperty(FontHeight , "Height", "18") setProperty(FontHeight , "Color", white)   -- =================== SIZE + POS ================ control_setSize(MainGUI[1], 425, 482) x,y = control_getSize(MainGUI[1]) control_setSize(MainGUI[2], x,y) control_setSize(MainGUI[5], 404, 129) control_setSize(MainGUI[10], 255, 21) control_setSize(MainGUI[11], 404, 249) control_setSize(MainGUI[12], 107, 28) control_setSize(MainGUI[15], 255, 76) control_setSize(MainGUI[16], 107, 30) control_setSize(MainGUI[17], 107, 30) control_setPosition(MainGUI[4], 15, 10) control_setPosition(MainGUI[5], 10, 35) control_setPosition(MainGUI[6], 10, 5) control_setPosition(MainGUI[8], 15, 175) control_setPosition(MainGUI[9], 10, 75) control_setPosition(MainGUI[10], 10, 35) control_setPosition(MainGUI[11], 10, 205) control_setPosition(MainGUI[12], 280, 35) control_setPosition(MainGUI[13], 12, 460) control_setPosition(MainGUI[14], 10, 5) control_setPosition(MainGUI[15], 10, 35) control_setPosition(MainGUI[16], 280, 35) control_setPosition(MainGUI[17], 280, 82) control_setPosition(MainGUI[18], 10, 125) control_setPosition(MainGUI[19], 11, 150) -- =================== Text ================ control_setCaption(MainGUI[1], title.." Trainer") control_setCaption(MainGUI[4], title.." Trainer") control_setCaption(MainGUI[6], information1) control_setCaption(MainGUI[8],  "Available hacks for this game") control_setCaption(MainGUI[9], "Attached to PID: waiting...") control_setCaption(MainGUI[12],"Select") control_setCaption(MainGUI[13], " KongHack.com " ..credits) control_setCaption(MainGUI[14],  "Enable before starting a new game.") control_setCaption(MainGUI[16], 'Enable selected') control_setCaption(MainGUI[17], 'Enable all') control_setCaption(MainGUI[18],"Description:") control_setCaption(MainGUI[19],"no hack selected") control_setEnabled(MainGUI[16], false) control_setEnabled(MainGUI[17], false) -- =================== PROGRSSBAR  ================ MainGUI[20] = createProgressBar(MainGUI[11]) control_setPosition(MainGUI[20], 11, 150) control_setSize(MainGUI[20], 255, 14) control_setVisible(MainGUI[20], false) MainGUI[21]  = createLabel(MainGUI[11]) local FontHeight = getProperty(MainGUI[21] , "Font") setProperty(FontHeight , "Style", "[fsBold]") setProperty(FontHeight , "Height", "18") setProperty(FontHeight , "Color", white) control_setPosition(MainGUI[21], 10, 125) control_setVisible(MainGUI[21], false) MainGUI[22]  = createLabel(MainGUI[11]) local FontHeight = getProperty(MainGUI[22] , "Font") setProperty(FontHeight , "Style", "[fsBold]") setProperty(FontHeight , "Height", "18") control_setPosition(MainGUI[22], 10, 175) control_setVisible(MainGUI[22], false) -- ========================== COMBOBOX CONTENT ==================== setHack_Information() al = combobox_getItems(MainGUI[10]) strings_clear(al) strings_add(al, 'Browser list...') strings_add(al, 'Firefox') strings_add(al, 'Google Chrome')  setProperty(MainGUI[10] , "ItemIndex", "0") all_enabled = 0 success = 1 TeL = listbox_getItems(MainGUI[15]) TempSave = {} strings_clear(TeL) check = 0 i = 0 searchname="" repeat if t[i+1]==nil then   check = 1 else   i = i+1   strings_add(TeL, t[i][1])   TempSave[i] = {}   TempSave[i][1] = t[i][1]   TempSave[i][2] = t[i][2]   TempSave[i][3] = t[i][3]   TempSave[i][4] = 2   TempSave[i][5] = 0   check = 0 end until check == 1  function checkProcessMajor()   reinitializeSymbolhandler()   if getAddress("webplayer_win.dll")~=0 then     return true   end   return false end  errorOnLookupFailure(false) alreadycheckedPIDS={} openNextProcTimer = createTimer(nil,false) timer_setInterval(openNextProcTimer, 1000) timer_onTimer(openNextProcTimer, function(sender)   local tempPIDtable = getPids()   if #tempPIDtable == 0 then return end   timer_setEnabled(sender,false)   openProcess(tempPIDtable[1]) end)  function getPids()   local SL=createStringlist()         getProcesslist(SL)   local tempPIDtable={}   for i=0,strings_getCount(SL)-1 do     local entry = strings_getString(SL,i)     local processname = entry:sub(10,255)     local PID = tonumber('0x'..entry:sub(1,8))     if processname == searchname then       if alreadycheckedPIDS[PID]~=true then         table.insert(tempPIDtable,PID)       end     end   end   object_destroy(SL)   return tempPIDtable end  function checkProcess(sender)   timer_setEnabled(sender,false)   alreadycheckedPIDS[getOpenedProcessID()]=true   if checkProcessMajor() then     timer_setEnabled(openNextProcTimer,false)     alreadycheckedPIDS={}     enableHacks()   else     timer_setEnabled(openNextProcTimer,true)   end end  checkProcessTimer = createTimer(nil,false) timer_setInterval(checkProcessTimer, 100) timer_onTimer(checkProcessTimer, checkProcess)  function onOpenProcess()    if success == 1 then return end    timer_setEnabled(checkProcessTimer,true) end  function BrowserScan()       AttachItems = combobox_getItems(MainGUI[10])       AttachIndex = combobox_getItemIndex(MainGUI[10])       setProperty(getProperty(MainGUI[9] , "Font"), "Color", white)       control_setCaption(MainGUI[9], "Attached to PID: " .. "Scanning Process...")       if AttachIndex == -1 then return end       if AttachIndex == 0 then         control_setCaption(MainGUI[9], "Attached to PID: " .. "no Browser selected.")         control_setEnabled(MainGUI[16], false)         control_setEnabled(MainGUI[17], false)         return      end       local check = strings_getString(AttachItems,AttachIndex)       if check == 'Google Chrome' then         success = 0         searchname="chrome.exe"         local test = openProcess("chrome.exe")         if test == nil then             setProperty(getProperty(MainGUI[9] , "Font") , "Color", red1)             control_setCaption(MainGUI[9], "Attached to PID: " .. "Unity Player not found.")             control_setEnabled(MainGUI[16], false)             control_setEnabled(MainGUI[17], false)             timer_setEnabled(openNextProcTimer,false)             return         end         strings_add(getAutoAttachList(),"chrome.exe")         timer_setEnabled(openNextProcTimer,true)         return       end               if check == 'Firefox' then         success = 0         searchname="plugin-container.exe"         local test = openProcess("plugin-container.exe")         if test == nil then             setProperty(getProperty(MainGUI[9] , "Font") , "Color", red1)             control_setCaption(MainGUI[9], "Attached to PID: " .. "Unity Player not found.(ffx)")             control_setEnabled(MainGUI[16], false)             control_setEnabled(MainGUI[17], false)             timer_setEnabled(openNextProcTimer,false)             return         end         strings_add(getAutoAttachList(),"plugin-container.exe")         timer_setEnabled(openNextProcTimer,true)         return       end       if check == 'Internet Explorer' then openProcess("FlashPlayerPlugin") end       errorOnLookupFailure(false)       reinitializeSymbolhandler()       err=getAddress("kernel32.dll")==0       if err==true then         setProperty(getProperty(MainGUI[9] , "Font") , "Color", red1)         control_setCaption(MainGUI[9], "Attached to PID: " .. "Unity Web player plugin not found")       else         local PID=getOpenedProcessID()          setProperty(getProperty(MainGUI[9] , "Font"), "Color", white)          control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - Unity Web player plugin")          control_setEnabled(MainGUI[16], true)          control_setEnabled(MainGUI[17], true)       end end  function enableHacks()     setProperty(getProperty(MainGUI[9] , "Font"), "Color", white)     local PID=getOpenedProcessID()     local check = strings_getString(AttachItems,AttachIndex)     if check == 'Firefox' or check == 'Internet Explorer' then         control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - Unity Web player plugin")     elseif check == 'Google Chrome' then         control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - chrome.exe")     end     success = 1     control_setEnabled(MainGUI[16], true)     control_setEnabled(MainGUI[17], true) end   function ExecuteHacks()     HLS = listbox_getItemIndex(MainGUI[15])     LIST = listbox_getItems(MainGUI[15])     if HLS == -1 then return end     i = HLS+1     font=getProperty(MainGUI[21], 'Font')     control_setVisible(MainGUI[18], false)     control_setVisible(MainGUI[19], false)     control_setVisible(MainGUI[20], false)     control_setVisible(MainGUI[21], true)     if t[i][2]==nil then          setProperty(font, 'Color', white)          control_setCaption(MainGUI[21], "You allready enabled this hack !")          return     end     control_setEnabled(MainGUI[16], false)     control_setEnabled(MainGUI[17], false)     control_setCaption(MainGUI[21], "Executing hack...")     control_setVisible(MainGUI[22], true)     control_setCaption(MainGUI[22], '')     control_setPosition(MainGUI[22], 10, 155)     strings_setString(LIST, HLS, t[i][1])     processMessages()     if TempSave[i][4] == 2 then       Asm = autoAssemble(t[i][2])       font=getProperty(MainGUI[22], 'Font')       control_setCaption(MainGUI[21], "Executing hack. Finished.")       if AobSwapCheck~=true then         TempText = t[i][1]..' - Failed'         TempSave[i][5] = t[i][1]..' - Failed'         strings_setString(LIST, HLS, TempText)         setProperty(font, 'Color', red1)         control_setCaption(MainGUI[22], 'Failed to enable !\nGame not loaded or game was updated.')       else         TempText = t[i][1]..' - Enabled'         TempSave[i][5] = t[i][1]..' - Enabled'         strings_setString(LIST, HLS, TempText)         setProperty(font, 'Color', white)         control_setCaption(MainGUI[22], 'Hack enabled. Enjoy it !')         t[i][2] = nil         TempSave[i][4] = 1       end     end     if TempSave[i][4] == 0 then TempSave[i][4] = 2 end     control_setEnabled(MainGUI[16], true)     control_setEnabled(MainGUI[17], true) end  function ExecuteAllHacks()      font=getProperty(MainGUI[21], 'Font')      if all_enabled == 1 then         control_setVisible(MainGUI[18], false)         control_setVisible(MainGUI[19], false)         control_setVisible(MainGUI[20], false)         control_setVisible(MainGUI[21], true)         control_setVisible(MainGUI[22], false)         setProperty(font, 'Color', white)         control_setCaption(MainGUI[21], "You allready enabled all hacks !")         return      end      lb = listbox_getItems(MainGUI[15])      LIST = listbox_getItems(MainGUI[15])      control_setEnabled(MainGUI[16], false)      control_setEnabled(MainGUI[17], false)      show_progressbar()      progressbar_setMax(MainGUI[20], strings_getCount(lb))      for i = 1, strings_getCount(lb) do          strings_setString(LIST, i-1, t[i][1])      end      processMessages()      count = 0      for i = 1, strings_getCount(lb) do           control_setCaption(MainGUI[21], "Executing hack "..i.."/"..strings_getCount(lb))           processMessages()           if TempSave[i][4] == 2 then                 Asm = autoAssemble(t[i][2])                 if AobSwapCheck~=true then                     TempSave[i][5] = t[i][1]..' - Failed'                     strings_setString(LIST, i-1, TempSave[i][5])                  else                     TempSave[i][5] = t[i][1]..' - Enabled'                     strings_setString(LIST, i-1, TempSave[i][5])                     t[i][2] = nil                     TempSave[i][4] = 1                     count = count + 1                  end            else                   count = count + 1                  TempSave[i][5] = t[i][1]..' - Enabled'                  strings_setString(LIST, i-1, TempSave[i][5])            end         if TempSave[i][4] == 0 then TempSave[i][4] = 2 end         progressbar_setPosition(MainGUI[20], i )         processMessages()     end     control_setEnabled(MainGUI[16], true)     control_setEnabled(MainGUI[17], true)     control_setCaption(MainGUI[21], "Executing hack "..strings_getCount(lb).."/"..strings_getCount(lb).. ". Finished.")     font=getProperty(MainGUI[22], 'Font')     if count == strings_getCount(lb) then         setProperty(font, 'Color', white)         control_setCaption(MainGUI[22], 'All hacks enabled. Enjoy it !')         all_enabled = 1     else         diff = strings_getCount(lb) - count         if diff == 1 then            text = "hack"         else            text = "hacks"         end         setProperty(font, 'Color', red1)         control_setCaption(MainGUI[22], 'Failed to enable ' .. diff .. ' ' .. text .. ' !')     end end  function show_progressbar()      control_setPosition(MainGUI[22], 10, 175)      control_setCaption(MainGUI[22], '')      control_setVisible(MainGUI[18], false)      control_setVisible(MainGUI[19], false)      control_setVisible(MainGUI[20], true)      control_setVisible(MainGUI[21], true)      control_setVisible(MainGUI[22], true)      progressbar_setPosition(MainGUI[20], 0) end function hide_progressbar()      control_setVisible(MainGUI[20], false)      control_setVisible(MainGUI[21], false)      control_setVisible(MainGUI[22], false)      control_setVisible(MainGUI[18], true)      control_setVisible(MainGUI[19], true) end   function DEC_HEX(IN)     local B,K,OUT,I,D=16,"0123456789ABCDEF","",0      if IN<1 then     OUT=0     return OUT   end   while IN>0 do     I=I+1     IN,D=math.floor(IN/B),math.mod(IN,B)+1     OUT=string.sub(K,D,D)..OUT     end     return OUT end  function Aobswap(search, change)      aobs = AOBScan(search, "+W")      if(aobs == nil) then AobSwapCheck=false else      j = stringlist_getCount(aobs)      for i = 1, j do      address=stringlist_getString(aobs,i-1)      for i = 1, string.len(change), 3 do      z = string.sub(change, i, i+2)      x, y = string.find(z, "%?+")       if (x == nil) then      script=[[      ]]..address.."+"..(DEC_HEX((i-1)/3))..[[:      db ]]..z..[[      ]]      autoAssemble(script)      end      end      end      object_destroy(aobs);      aobs=nil      AobSwapCheck=true     end end  function HackDescriptionsChange()     hide_progressbar()     HLS = listbox_getItemIndex(MainGUI[15])     if HLS == -1 then return end     i = HLS+1     if t[i][3]~='' and t[i][3]~=nil then       control_setCaption(MainGUI[19] ,t[i][3])     else       control_setCaption(MainGUI[19], "no description available.")     end end   function OpenKonghack()     shellExecute("http://konghack.com/") end  function CloseTrainer()   form_hide(MainGUI[1])   closeCE() end  -- ========================== ONCLICK EVENTS ==================== control_onClick(MainGUI[12], BrowserScan) control_onClick(MainGUI[13], OpenKonghack) control_onClick(MainGUI[16],  ExecuteHacks) control_onClick(MainGUI[17],ExecuteAllHacks) setMethodProperty(MainGUI[15], 'OnSelectionChange', HackDescriptionsChange) form_onClose(MainGUI[1], CloseTrainer) form_show(MainGUI[1])  


 




I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it.
"Obviously, windows are central to Windows. They are so important that they named the operating system after them. But what is a window?"

RE: KH Easy Trainer Creator Posted on: 03/12/2014 3:18am
Quote Post
kolonelkadat Posted on: 03/11/2014 11:15pm

if anyone wants it., here is for doing unity instead of flash

--snip--



May be it can be combining flash & unity into one trainer-creator?

 

thenewcomer Posted on: 03/11/2014 11:12pm
 

--snip--

the problem with this is that it will only replace the first result in the list of the search instead of all of them. aobscan will also throw an error if there are no result wheres the aobSwap will not error.



I think assembler script using CE default aobscan is intented to search 1st result. If multi match need, then use AobSwap.

I've test if aobscan throw error, and it just fail if search fail.
1st entry use aobswap,
2nd entry use aobscan.




No +karma or thanks post please,
we shall exchange appreciation via telepathy ;)
 

RE: KH Easy Trainer Creator Posted on: 03/12/2014 5:15am
Quote Post
protected !

thats alot input. thanks.

"webplayer_win.dll" is the target for unity games ? it's funny, i never play unity games, so dont know it. even dont have unity installed (shame).

tbh my "lua skills" are not best. i remember we started it in the "platform racing 2" thread. i wanted some tool which easily enables a bunch of AoBs, because its a pain if you have 5-10 Aobs for a game and enable them manually in CE.
so i went to CE forum and tried learning lua coding. some functions are written by me, and some functions are a taken from real CE gurus. and the result is this trainer tool.
i am sure, the whole lua code can be improved. (personally i dont like it, imo its a bit chaotic and can be "cleaner"). will work on it.




 

RE: KH Easy Trainer Creator Posted on: 03/12/2014 5:39am
Quote Post
Never let a computer tell me shit.
dudial Posted on: 03/12/2014 1:15am

thats alot input. thanks.

"webplayer_win.dll" is the target for unity games ?


no. not exactly. webplayer_win.dll is a submodule of the real target.

eg if you use Google Chrome, the target process is the chrome.exe process with submodule webplayer_win.dll.
If mozilla firefox, the target process is the plugincontainer.exe process with submodule webplayer_win.dll
 




I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it.
"Obviously, windows are central to Windows. They are so important that they named the operating system after them. But what is a window?"

RE: KH Easy Trainer Creator Posted on: 03/13/2014 10:06am
Quote Post
Aobscan(_pos,24 45)

I tried to clean and tweak the lua script.
Added plugin-container and reset all option.
Had some issues with the attaching to process but it working.

Here is how it looks.




Click here for the script.

Attached Files
Filename Filesize Downloads
konghackluatrainer.txt 19.74 KB 889



RE: KH Easy Trainer Creator Posted on: 03/14/2014 1:46pm
Quote Post
protected !

kolonel can you post a cetrainer (or text) file of your code ? when i copy & paste it i get one long, single line, hard to read.

about this offset:
Aobscan(_incdodge,66 ?? ?? ?? 25 ?? ?? a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0)
_incdodge+4:
db 24 00 02


same like this:
66 ?? ?? ?? 25 ?? ?? a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0
66 ?? ?? ?? 24 00 02 a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0


You are faster to copy/paste two simple array of bytes than generating asm/offsets first,  isn't it ?  What is the advantage ?
Default the trainer generates a string for each hack like that (function setHack_Information)

{'HACK TITLE',
[[LuaCall(Aobswap("66 ?? ?? ?? 25 ?? ?? a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0","66 ?? ?? ?? 24 00 02 a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0"))]],
[[HACK DESCRIPTION]]},


This string is later used in the function "execute_hack": Asm = autoAssemble(t[i][2]).
Have you tried like haena explained, e.g:

{'HACK TITLE',
[[Aobscan(_incdodge,66 ?? ?? ?? 25 ?? ?? a2 af 76 2a 63 ?? 12 ?? ?? ?? 60 ?? ?? ?? 46 ?? ?? ?? d0)
_incdodge+4:
db 24 00 02]],
[[HACK DESCRIPTION]]},


I am not sure, but it should work. Trainer would show "hack failed" as there would be no AobSwapCheck variable set.
But the hack should be enabled.

 

RE: KH Easy Trainer Creator Posted on: 03/14/2014 6:01pm
Quote Post
The Laziest Man on KongHack

hey dudial, i might have unintentionally found a bug. the auto-generated cetrainer file it made seems to have an error. but when i copy the generated code and stuff it into cheat engine, it works perfectly fine. im going to PM the file to you, along with the etc file so you can go nuts with testing.

protip, the most likely causes are probably going to be either cheat engine version, or the fact im on win7 64x.




RE: KH Easy Trainer Creator Posted on: 03/14/2014 7:03pm
Quote Post
protected !

yup i see it. just change the game title, without: & 

will add a check which blocks this 5 chars in game title/hack description.
(ehok once mailed we with same issue, he used: ")

edit: i added new version 1.4 (check first posting).
includes this "reset all button", trainer visibile in taskbar, special char checks, etc.

this offsets: my conclusion is to not add them. the "hack enabled/failed" message in trainer wont work with offsets, don't like that.
also Easy Trainer was made to enable a bunch of aobs with one click, and not to create offsets.  a user who creates offsets, doesnt need such tool imo ;)









 

RE: KH Easy Trainer 1.4 Posted on: 03/19/2014 5:30pm
Quote Post

Is it normal or a bug? When I type something like this:

NOTE: Doesn't work on POSEIDON's laser.

It turns to

NOTE_ Doesn_t work on POSEIDON_s laser.




Hating the Soviet Union since 1924.
RE: KH Easy Trainer 1.4 Posted on: 03/19/2014 5:42pm
Quote Post
protected !

yes its normal, i added this in latest version, because some special chars can break the code (that was TNC's issue)
i might remove double point (:) and apostrophe (') though. will check it now.

edit: you now can use both.
following chars will still be replaced: *|"|&|<|>

http://konghack.com/filemanager/get/1wYCR9x3668x53df6ae516c84




 

Attached Files
Filename Filesize Downloads
kh_easy_trainer.rar 468.75 KB 8,220
RE: KH Easy Trainer 1.4 Posted on: 03/20/2014 3:15pm
Quote Post

Dudial, not sure how to explain it but this picture will do;



As you can see, the description is not correct, it's misaligned or so.




Hating the Soviet Union since 1924.
RE: KH Easy Trainer 1.4 Posted on: 03/20/2014 5:24pm
Quote Post
protected !

the pic is not loading here (?)

but i think u mean the hack description ?
just press enter when typing the hack description. don't make an endless line :)





 

RE: KH Easy Trainer 1.4 Posted on: 03/21/2014 3:14pm
Quote Post

Seems like a workaround, it will do, but I prefer a "fix" if possible, guess it's not.




Hating the Soviet Union since 1924.
RE: KH Easy Trainer 1.4 Posted on: 03/23/2014 3:39pm
Quote Post
protected !

Never use enter ? you dont see what you type then ;)

Cheatengine lua is crap (so complicated just to autosize some label). Checked CE forum and did, what CE admin posted once :

"disable autosize on the label or put the label in a panel of a fixed width with no borderstyle and set align to alClient. When you then use setCaption it should be limited to the given height and width and use multilines when needed"
 
So i placed the description label on a panel, that way the description was centered automatically + mulitline.Ok nice.
The panel had style "BsNoborder". But: still the border was visible, and that looks shit.
 


edit:
As lua sucks, i "solved" the problem a bit different: if a user doesn't press enter and the hack description exceeds 60 chars,
Easy Trainer will automatically add a line break each 60 chars. Don't like that solution, but works.

download: http://konghack.com/filemanager/get/1wYCR9x3668x53df6ae516c84

changelog v1.41
 v1.41    - added warning when exit without saving hacks
             - (:) and (') can be used in title/description
             - too long description will be split automatically if user doesn't press enter
             - minor code improvements
 

Attached Files
Filename Filesize Downloads
kh_easy_trainer.rar 468.75 KB 8,220