Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 20.05.2015 во всех областях

  1. В данной теме будут ответы на вопросы по извлечению информации из дизассемблера при помощи Lua Engine в Cheat Engine 6.4
    2 балла
  2. На CE Lua можно рисовать. Пример1. Рисование графика (без шкалы) Chart.CT function CEButton1Click(sender) ClBlack = 0x000000 ClRed = 0x0000FF ClGreen = 0x008000 ClWhite = 0xFFFFFF local CEImage1 = frmChartTool.CEImage1 local canvas = CEImage1.Canvas local pen = canvas.Pen local brush = canvas.Brush local x1 = -10.0 -- Начало оси Ox local x2 = 10.0 -- Конец оси Ox local m = 50.0 -- Масштаб графика -- Центры осей Ox и Oy local x0 = 0 local y0 = 0 -- Координаты, по которым отрисовывается график local x = 0.0 local y = 0.0 canvas.clear() x0 = CEImage1.Width / 2.0 -- x0 = центр Image1 по оси Ox y0 = CEImage1.Height / 2.0 -- y0 = центр Image1 по оси Oy pen.Color = ClGreen -- Цвет пера зеленый pen.Width = 1 -- Ширина пера = 1 canvas.setPenPosition(0, y0) -- Положение курсора = (0,y0) canvas.lineTo(CEImage1.Width, y0) -- Линия от (0,y0) до (width,y0) - линия оси Ox canvas.setPenPosition(x0, 0) -- Положение курсора = (x0,0) canvas.lineTo(x0, CEImage1.Height) -- Линия от (x0,0) до (x0,height) - линия оси Oy pen.Color = ClRed -- Цвет пера = красный pen.Width = 2 -- Ширина пера = 2 x = x1 -- Начальное положение курсора по оси Ox y = math.sin(x) -- Начальное положение курсора по оси Oy canvas.setPenPosition(x0+math.floor(x*m), math.floor(y0-y*m)) -- Переносим курсор на заданные while x < x2 do -- координаты относительно центра осей координат и масштаба x = x + 0.01 y = math.sin(x) canvas.lineTo(x0+math.floor(x*m), math.floor(y0-y*m)) endendfunction Draw() r = math.random(x0) y = y0-r u = u + 1 pen.Color = math.random(0xffffff) x = x0 + math.floor(r * math.sin(u * math.pi/180)) y = y0 - math.floor(r * math.cos(u * math.pi/180)) canvas.line(x0, y0, x, y) if(u > 360) then u = 0 endendif(UDF1 == nil) then UDF1 = createForm(true) UDF1.width = 800 UDF1.height = 800 UDF1.centerScreen() canvas = UDF1.getCanvas() pen = canvas.Pen x0 = UDF1.ClientWidth / 2 y0 = UDF1.ClientHeight / 2 u = 0 r = y0 - 20 x = x0 myTimer = createTimer(UDF1, true) myTimer.Interval = 10 myTimer.OnTimer = DrawendCanvas Class : (Inheritance: CustomCanvas->Object)properties Brush: Brush - The brush object Pen: Pen - The pen object Font: Font - The font object Width: integer - Width of the canvas Height: integer - Height of the canvasmethods getBrush(): Returns the brush object of this canvas getPen(): Returns the pen object of this canvas getFont(): Returns the font object of this canvas getWidth() getHeight() getPenPosition() setPenPosition(x,y) clear() - Clears the canvas line(sourcex, sourcey, destinationx, destinationy) lineTo(destinationx, destinationy) rect(x1,y1,x2,y2) fillRect(x1,y1,x2,y2) textOut(x,y, text) getTextWidth(text) getTextHeight(text) getPixel(x,y) setPixel(x,y,color) floodFill(x,y) ellipse(x1,y1,x2,y2) gradientFill(x1,y1,x2,y2, startcolor, stopcolor, direction) : Gradient fills a rectangle. Direction can be 0 or 1. 0=Vertical 1=Horizontal copyRect(dest_x1,dest_y1,dest_x2,dest_y2, sourceCanvas, source_x1,source_y1,source_x2,source_y2) : Draws an image from one source to another. Usefull in cases of doublebuffering draw(x,y, graphic) : Draw the image of a specific Graphic class getClipRect() : Returns a table containing the fields Left, Top, Right and Bottom, which define the invalidated region of the graphical object. Use this to only render what needs to be rendered in the onPaint event of objectsPen Class : (Inheritance: CustomPen->CanvasHelper->Object)properties Color: Integer - The color of the pen Width: integer - Thickness of the penmethods getColor() setColor(color) getWidth() setWidth(width)</Some><Some>Brush Class : (Inheritance: CustomBrush->CanvasHelper->Object)properties Color : Integermethods getColor() setColor()Font Class : (Inheritance: CustomFont->CanvasHelper->Object)createFont(): Returns a font object (default initialized based on the main ce window)properties Name: string Size: integer Color: integermethods getName(): Gets the fontname of the font setName(string): Sets the fontname of the font getSize(): Gets the size of the font setSize(integer): Sets the size of the font getColor(): Gets the color of the font setColor(integer): Sets the color of the font assign(font): Copies the contents of the font given as parameter to this font</Some>Graphic Class : (Inheritance: Object) : Abstract classproperties Width: integer Height: integer Transparent: booleanmethods getWidth(graphic): Gets the current width in pixels of this graphics object setWidth(graphic, width): Sets thw width in pixels getHeight(graphic) setHeight(graphic, height)</Some>RasterImage class: (Inheritance: Graphic->Object) : Base class for some graphical controlsproperties Canvas: Canvas PixelFormat: PixelFormat - the pixelformat for this image. Will clear the current image if it had one. Supported pixelformats: pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit (recommended) TransparentColor: integermethods getCanvas(): Returns the Canvas object for this image getPixelFormat(): Returns the current pixelformat getPixelFormat(pixelformat): Sets the pixelformat for this image. Will clear the current image if it had one. Supported pixelformats: pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit (recommended) setTransparentColor(integer): Sets the color that will be rendered as transparent when drawn getTransparentColor(): Returns the color set to be transparentBitmap class: (Inheritance: CustomBitmap->RasterImage->Graphic->Object) : Bitmap based Graphic objectcreateBitmap(width, height) - Returns a Bitmap object
    1 балл
  3. Здесь цвет меняется по таймеру с интервалом 100 мс от черного до красного на величину 0x10. Как сделать смену прозрачности я не знаю. Похоже нужно вызывать Windows API потоком чтобы делать прозрачность. У Дельфи или у Лазаря сложности с прозрачным текстом и эти сложности переходят в CE Lua. speedInterval = 100function Draw() font.Color = colorRed canvas.TextOut(10, 10, 'Gamehacklab[RU]') if(bForwardPathIncrement) then colorRed = colorRed - 0x10 else colorRed = colorRed + 0x10 end if(colorRed > 0xFF) then bForwardPathIncrement = true colorRed = 0xF0 end if(colorRed < 0x10) then bForwardPathIncrement = false colorRed = 0x10 endendif(myTimer == nil) then UDF1 = createForm(true) UDF1.width = 400 UDF1.height = 200 UDF1.centerScreen() canvas = UDF1.getCanvas() font = canvas.Font font.Size = 25 canvas.Brush.Style = 1 colorRed = 0x10 bForwardPathIncrement = false myTimer = createTimer(UDF1, true) myTimer.Interval = speedInterval myTimer.OnTimer = Drawend
    1 балл
  4. Добавлен 14 пункт "Как работать с классом Disassembler?" 1) Можем узнать является ли инструкция: прыжком, условным прыжком, вызовом, ret-ом 2) Можем узнать opcode, например "mov" 3) Можем узнать parameters, например "edx,[ebp-04]" 2) Можем узнать modrmValueType (dvtNone=0, dvtAddress=1, dvtValue=2) 3) Можем узнать parameterValueType (dvtNone=0, dvtAddress=1, dvtValue=2) 4) Можем узнать значение modrmValue 5) Можем узнать значение parameterValue Другие функции класса Disassembler не рассмотрены
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.