بلاگ

  • Why Data Principal Rights Management Is the Heart of Modern Privacy Compliance|Seqrite

    Why Data Principal Rights Management Is the Heart of Modern Privacy Compliance|Seqrite


    As data privacy laws evolve globally—from the GDPR to India’s Digital Personal Data Protection Act (DPDPA)—one common theme emerges: empowering individuals with control over their data. This shift places data principal rights at the center of privacy compliance.

    Respecting these rights isn’t just a legal obligation for organizations; it’s a business imperative. Efficiently operationalizing and fulfilling data principal rights is now a cornerstone of modern privacy programs.

    Understanding Data Principal Rights

    Data principal rights refer to the entitlements granted to individuals regarding their data. Under laws like the DPDPA and GDPR, these typically include:

    • Right to Access: Individuals can request a copy of the personal data held about them.
    • Right to Correction: They can demand corrections to inaccurate or outdated data.
    • Right to Erasure (Right to Be Forgotten): They can request deletion of their data under specific circumstances.
    • Right to Data Portability: They can request their data in a machine-readable format.
    • Right to Withdraw Consent: They can withdraw previously given consent for data processing.
    • Right to Grievance Redressal: They can lodge complaints if their rights are not respected.

    While these rights sound straightforward, fulfilling them at scale is anything but simple, especially when data is scattered across cloud platforms, internal systems, and third-party applications.

    Why Data Principal Rights Management is Critical

    1. Regulatory Compliance and Avoidance of Penalties

    Non-compliance can result in substantial fines, regulatory scrutiny, and reputational harm. For instance, DPDPA empowers the Data Protection Board of India to impose heavy penalties for failure to honor data principal rights on time.

    1. Customer Trust and Transparency

    Respecting user rights builds transparency and demonstrates that your organization values privacy. This can increase customer loyalty and strengthen brand reputation in privacy-conscious markets.

    1. Operational Readiness and Risk Reduction

    Organizations risk delays, errors, and missed deadlines when rights requests are handled manually. An automated and structured rights management process reduces legal risk and improves operational agility.

    1. Auditability and Accountability

    Every action taken to fulfill a rights request must be logged and documented. This is essential for proving compliance during audits or investigations.

    The Role of Data Discovery in Rights Fulfilment

    To respond to any data principal request, you must first know where the relevant personal data resides. This is where Data Discovery plays a crucial supporting role.

    A robust data discovery framework enables organizations to:

    • Identify all systems and repositories that store personal data.
    • Correlate data to specific individuals or identifiers.
    • Retrieve, correct, delete, or port data accurately and quickly.

    Without comprehensive data visibility, any data principal rights management program will fail, resulting in delays, partial responses, or non-compliance.

    Key Challenges in Rights Management

    Despite its importance, many organizations struggle with implementing effective data principal rights management due to:

    • Fragmented data environments: Personal data is often stored in silos, making it challenging to aggregate and act upon.
    • Manual workflows: Fulfilling rights requests often involves slow, error-prone manual processes.
    • Authentication complexities: Verifying the identity of the data principal securely is essential to prevent abuse of rights.
    • Lack of audit trails: Without automated tracking, it’s hard to demonstrate compliance.

    Building a Scalable Data Principal Rights Management Framework

    To overcome these challenges, organizations must invest in technologies and workflows that automate and streamline the lifecycle of rights requests. A mature data principal rights management framework should include:

    • Centralized request intake: A portal or dashboard where individuals can easily submit rights requests.
    • Automated data mapping: Leveraging data discovery tools to locate relevant personal data quickly.
    • Workflow automation: Routing requests to appropriate teams with built-in deadlines and escalation paths.
    • Verification and consent tracking: Only verified individuals can initiate requests and track their consent history.
    • Comprehensive logging: Maintaining a tamper-proof audit trail of all actions to fulfill requests.

    The Future of Privacy Lies in Empowerment

    As data privacy regulations mature, the focus shifts from mere protection to empowerment. Data principles are no longer passive subjects but active stakeholders in handling their data. Organizations that embed data principal rights management into their core data governance strategy will stay compliant and gain a competitive edge in building customer trust.

    Empower Your Privacy Program with Seqrite

    Seqrite’s Data Privacy Suite is purpose-built to help enterprises manage data principal rights confidently. From automated request intake and identity verification to real-time data discovery and audit-ready logs, Seqrite empowers you to comply faster, smarter, and at scale.



    Source link

  • Singtel is now a Browserling customer!

    Singtel is now a Browserling customer!


    Success! Singapore Telecommunications (Singtel) is now a Browserling customer!

    It’s another small step for a ling but one giant leap for ling kind.

    What Is Browserling?

    Browserling is a cross-browser testing service that lets users test websites and web applications in different browsers to ensure they work correctly. It also works as a browser sandbox, allowing users to safely check suspicious links and web pages without affecting their own devices. Developers, testers, and regular users can use it to see how websites look and behave across different browsers. IT security professionals find it useful for safely analyzing links and identifying potential vulnerabilities in a secure environment.

    Who Uses Browserling?

    Browserling has now become the cross-browser testing service of choice and it’s used by hundreds of thousands of users around the world every month. Browserling’s customers include governments, states, cities, banks, stock exchanges, universities, newspapers, and Fortune 100 companies.

    See you next time!



    Source link

  • Modeling the World in 280 Characters

    Modeling the World in 280 Characters


    Hi, I’m Xor. As a graphics programmer, my job is essentially to make pixels prettier using math formulas. I work on
    video effects like lighting, reflections, post-processing, and more for games and animated backgrounds in software.

    For fun, I like to unwind by writing compact little shader programs that fit in a “tweet” (280 characters or less).
    You may have seen some of these posted on X/Twitter. The process of shrinking code while maintaining its functionality
    is called “code golfing.”

    Here’s an animated galaxy I wrote in just 197 characters of GLSL code:

    This little piece of code runs in real time for every pixel on the screen and generates a unique output color using
    some fancy math and logic. I build these demos using a tool called
    Twigl.app
    , an online shader editor designed for sharing mini-shaders. It makes exporting videos super easy, and in its
    “geekiest” mode, it also takes care of the generic header code and shortens built-in variable names.

    I even managed to fit a voxel DDA raytracer with edge detection into just 190 characters:

    Today, I’d like to explain why I make these, share my creation process, and show you how you can try it yourself if
    you’re interested. Let’s start with the “why.”

    Motivation

    Why do I write these? Well, there are several factors. Since I like lists, I’ll go ahead and present them in order of
    relevance:

    • Curiosity and Passion
      : Sometimes I get struck by a new idea and just want to play around with it. I like Twigl because it helps lower my
      expectations and lets me start doodling. There’s less room for overplanning, and it’s super easy to jump in.
    • Learning and Discovery
      : Working within constraints forces me to think through problems differently. By optimizing for code size, I often
      find ways to simplify or approximate. It doesn’t always lead to more performant code (but often it does) and I’ve
      learned how to squeeze the most out of every byte. Having very little code makes it easier to experiment with
      formulas and variations without getting overwhelmed.
    • Challenge
      : Writing tiny code is both challenging and stimulating. It keeps my brain sharp, and I’m constantly developing new
      skills. It’s basically become a game for me. I’ve accidentally learned a ton of math while trying to solve these
      technical problems.
    • Community
      : I’ve connected with so many interesting people through this process—artists, designers, math folks, game devs,
      engineers, tech enthusiasts, and more. Sharing my work has led to some exciting encounters. (More on some notable
      people later!)

    So, in short, it’s fun, thought-provoking, and engaging, and it’s a great way to spark interest in graphics
    programming. Now, what even is a shader?

    Shader Introduction

    In case you haven’t heard of shaders before, they are programs that run on the GPU (Graphics Processing Unit) instead
    of the CPU (Central Processing Unit). CPUs excel at complicated or branching operations, which are computed
    sequentially, one at a time (I’m simplifying here). GPUs are designed to process billions or trillions of predictable
    operations per second in parallel. This sounds like a lot, but a 4K screen at 60 frames per second outputs nearly 500M
    pixels per second. Each pixel could have 100s or 1,000s of operations, not to mention anything else the GPU might be
    used for.

    There are several different types of shaders: vertex shaders, fragment shaders, compute shaders, and more, but these
    tweet shaders are specifically fragment shaders, also known as “pixel shaders,” because they run on every pixel. In
    essence, fragment shaders take the input fragment coordinates and output a color and opacity (or alpha). Fragment
    coordinates give you the position of the center of each pixel on screen, so (0.5, 0.5) is the bottom-left (or
    top-left). One pixel to the right is (1.5, 0.5), and so on to (width – 0.5, height – 0.5). The coordinates variable is
    called “FC” in Twigl. The output color, “o”, has 4 RGBA components: red, green, blue, and alpha, each ranging from 0.0
    to 1.0.

    (1.0, 1.0, 1.0, 1.0)
    is pure white,
    (0.0, 0.0, 0.0, 1.0)
    is opaque black, and
    (1.0, 0.0, 0.0, 1.0)
    is pure red in the RGBA color format. From here, you can already make simple color gradients:

    o = vec4(0.0, FC.y/100.0, 0.0, 1.0)
    ;

    Remember, this is run on every pixel, so each pixel will have a unique Fragment Coordinate. That formula makes a
    simple gradient that starts black at the bottom of the screen (FC.y = 0.0), and the green output value reaches 1.0
    when FC.y reaches 100.0.

    So you have an output color “o”, the input fragment coordinates “FC”, and four “uniform” inputs which are shared among
    all pixels: “r” is the shader screen resolution in pixels, “t” is the time in seconds, and also the less commonly used
    mouse position “m” and the backbuffer texture “b”. And that’s the core of it! From there, it’s a lot of math and logic
    to control the output colors and generate cool images.

    I’m going to skip ahead a bit, but if you’re interested in learning more, try
    starting here
    !

    My Process

    People often ask me whether I write my shaders in a compact form from the start or if I write them expanded and then
    reduce the code afterward. The answer is the former. I’ve practiced code golfing so much that I find it easier to
    prototype ideas in compact form, and I tend not to get lost in tiny shaders. Code golfing shaders requires finding the
    right balance between code size, render performance, artistic appeal, design, and mathematical function. It’s a
    delicate balance that definitely challenges both sides of my brain. I’ve learned a ton about math, art, and design
    through writing these!

    To start one, you need an idea. When writing the “Milky” stars shader, I knew I wanted to create some kind of galaxy, so that was my initial spark.

    My shaders typically start with centering and scaling so that they look good at various resolutions and aspect ratios. For the stars, I looped through 100 point lights revolving around the center. I love glowing effects, and they are pretty easy to create. You just need to know the distance from the current pixel to the light source and use the inverse for the pixel brightness (close pixels are brighter, far pixels are darker).

    I played around with the positions of the particles using some trigonometry and gave the disk a slight skew. For the coloring, I love to use some sine waves with a phase shift for the RGB channels. Sine waves are also useful for picking pseudo-random numbers, so that’s how I select the colors for each star. Using the sine formula, you can get palettes like these:

    I ended up with a slight alteration of the one second from the left. It has a nice range of temperatures and brightness. I also added some variation to the star brightness, which made the image much more interesting to look at.

    Next, I applied some tonemapping with the hyperbolic tangent function for size. Tonemapping prevents the harsh overexposure and hue shifts that happen when a color channel hits its maximum brightness value (left is original, right is with tonemapping):

    Any good shader that has High Dynamic Range lighting should apply some tonemapping, and tweet shaders are no
    exception! Finally, I played with animation. It could have revolved or twisted, but in the end, I liked the
    contraction effect most. I also created a loop so that new stars faded in when the old stars reached the center. You
    can read about my design process in
    more detail here
    !

    Code Golfing

    As you can imagine, there are hundreds of little techniques that I have developed (and continue to discover) in the
    process of shrinking the code down, but I can give you the abridged version! My generalized code-golfing process can
    be listed like so:

    • Reduce names:
      It may be challenging initially, but you can get used to single-letter variables and function names. You may
      sometimes forget what variables are for, but this is actually helpful for code golfing. It forces you to reread your
      code, and you’ll often find better ways to write it when doing so. Like anything else, your memory will improve with
      practice, and over time you will establish some standards (for me: p = position, c = color, O = frag output, I =
      input, etc.).
    • Reduce numbers:
      This is pretty self-explanatory.
      1.0 == 1.
      ,
      1000.0 == 1e3
      . Don’t forget that with vector constructors, you can use any data type as an input, and it gets converted (“cast”)
      to the new type:
      vec4(1.0, 1.0, 1.0, 1.0) == vec4(1)
      . If you’re multiplying by
      10.0
      , you could instead divide by
      .1
      .
    • Minimize initializations:
      If you have two floats, “x” and “y”, try to initialize them together like so:
      float x = 0., y = 1.;
      Look for opportunities to share data types. If you have a color vec3 and a vec4, make them both vec4s. Avoid
      float/int conversions.
    • Avoid ifs:
      If statements in GLSL take up a bit of space, especially if you need an
      else if
      . Try using a ternary instead. For example:
      if (x>y) O = vec4(1,0,0,1); else O = vec4(0,1,0,1);
      becomes
      O = x>y ? vec4(1,0,0,1) : vec4(0,1,0,1);
      . Much shorter, and there’s a lot you can do with it. You can even set multiple variables between
      ?
      and
      :
      .
    • for(;;) > while():
      for
      and
      while
      use the same number of characters, but
      for
      has a spot for initializing (before the first semicolon) and a spot for the final step after each iteration (after
      the last semicolon). These are free slots that can be used for lines that would otherwise have to end with a
      semicolon. Also, avoid using
      break
      , and use the condition spot instead! You can also remove the brackets if each line ends with a comma (so it doesn’t
      work with nested
      for
      -loops).

    Beyond that, I use some function substitutions to reduce the code further. More on that
    over here
    !

    I’ve put together a
    ShaderToy demo
    with some additional variables, formatting, and comments for clarity. Every shader is different and requires using
    different techniques, approximations, and concepts, but that is precisely what makes it so fun for me! I’m still
    learning new stuff nearly every day!

    Questions and Answers

    Here are some questions I was asked on X.

    Do you have a favorite “trick” or “technique”? If so, what is it?

    I go through phases. I loved
    Bokeh DoF
    , then
    volumetric shadows and fractals
    , but currently, my favorite has to be ”
    turbulence
    .” It can be used for some awesome
    magic effects
    ,
    clouds
    , or
    fire
    .

    How did you develop the intuition for related maths?

    It takes lots of time and patience. I had to push through many times when I thought a topic was over my head. If you
    take it in small pieces, take breaks, and sleep on it, you can learn a lot! I wrote about some of the
    conceptualization techniques
    that I’ve picked up over the years. That might save you some time!

    Do you start writing the shader in code-golfing mode, or is it a process until you reach the most optimized code? Which is the best editor for normal shaders and for code-golfing shaders?

    Yes, I write in code-golfing mode because I’ve developed an intuition for it, and it feels faster to prototype at this
    point. I still have to refine the code when I find a look that I like, though. I’m a big fan of Twigl.app, but
    ShaderToy is great too. ShaderToy is best for its community and wealth of knowledge. I try to use it when explaining
    my tweet shaders.

    How did you start writing cool shaders, and what did you use to learn it?

    Well, I’ll explain more about my background later, but it started with an interest in game development. Shaders have
    tons of applications in video game graphics—that’s what sparked my curiosity to learn.

    Do you have regrets related to sacrificing readability?

    Nope. I’m more concerned with size optimizations that lead to slower code, but I don’t mind the unreadable code. To
    me, that’s part of the magic of it.

    What’s your background that got you to the point where you could effectively learn the material?

    It’s story time…

    My Story

    Growing up, I was interested in video games, especially those with “fancy” 3D graphics. When I was around 10, my friend showed me a tool called GameMaker. I tinkered around with it and learned some of the basics of drag ‘n’ drop programming, variables, and conditionals.

    Over time, I started experimenting with 3D graphics in GM, even though it was (and still is) primarily a 2D game engine. It was enough to learn the basics of how 3D rendering works and the render pipeline. Later, GameMaker introduced this thing called “shaders,” which allowed developers to create more advanced effects. At the time, there weren’t many resources available, so it took a while for me to pick it up. I started posting my shaders on the GameMaker forums and got some helpful feedback from the community (shoutout to “xygthop3” for his helpful examples)!

    Game development was a great place to learn about shaders because you have performance constraints (you don’t want a game to stutter), and you learn a lot about the entire rendering process in that context. In 2014, I started posting my earliest shader tutorials, sharing techniques as I learned them. The early tutorials weren’t great, but I’m glad I wrote them. In 2015, I started exploring ShaderToy, and that’s where my skills really developed.

    There were so many great examples to learn from, and it was a good place to get feedback on my ideas. In 2021, I launched a new introductory tutorial series for GameMaker with GLSL 1.00. Now I post more generalized tutorials on all kinds of graphics topics, ranging from math to art to design to code and more. This is definitely my best series yet, and they continue to get better. If you are interested in video games and graphics, I highly recommend starting with GameMaker or Godot. They are relatively easy to learn while still powerful enough to teach you the ropes. If software or web dev is more your thing, you can’t go wrong with ShaderToy or compute.toys.

    Here are some of the great people who have helped me, directly or indirectly, along the way:

    xygthop3 – This guy’s free shader examples were probably the greatest help along the way. His examples were a pivotal point in my understanding of a variety of graphics techniques, so thanks, Michael!

    Inigo Quilez – Inigo is the author of ShaderToy and the king of raymarching. His Signed Distance Field functions are still foundational to this day. An absolute legend!

    Fabrice Neyret – Fabrice is probably the best shader code golfer there is, and many shaders are inspired by his work. He has taught me so many techniques over the years.

    Yonatan “zozuar” – Another major inspiration for me. Yonatan’s work convinced me to try code golfing for real on Twitter, and his brain is amazing.

    Yohei Nishitsuji – This guy is a legend when it comes to tiny fractals. Love his work. Yohei also wrote Rendering the Simulation Theory: Exploring Fractals, GLSL, and the Nature of Reality here on Codrops.

    I’m sure there are many others whose names are eluding me at the moment, but I want to thank the entire shader
    community for their feedback and encouragement.

    Arsenal

    I’ll wrap this up with a few of my favorite tweet shaders so far:

    If you want to see more, you can find hundreds on my personal website, my X , Bluesky, or Instagram. To learn more about shaders, try my tutorials , and if you want to hire me for custom work, go here.

    Thank you for reading! Have a great day!

    -Xor





    Source link

  • Spreading via .VBE, Hiding in Registry – A Deep Dive

    Spreading via .VBE, Hiding in Registry – A Deep Dive


    During our recent investigation at Seqrite Labs, we identified a sophisticated variant of Masslogger credential stealer malware spreading through .VBE (VBScript Encoded) files. Initially, the variant appeared to be a typical script-based threat, but upon deeper analysis it turned out to be a multi-stage fileless malware that heavily relies on Windows Registry to store and execute its malicious payload.

    In this blog post, we analyzed the internal flow of VBScript code, the obfuscation mechanism used, and how it manipulates system to remain fileless. Also, we have explained about the Stagers and the capabilities of the final Masslogger payload.

    Initial Infection Vector:

    The infection begins with .VBE file, likely distributed via spam email or drive-by downloads. .VBE file is a VBScript encoded with Microsoft’s built-in encoding scheme to detect casual inspection. Once decoded, the script reveals multiple layers of obfuscation, modular routines and true functionality.

    Analysis of Decoded .VBS – [VBScript] File:

    Initially, .VBS file prepares and writes multiple registry values under a specific key used by the malware. It sets up the execution environment for storing a fileless payload.

    Registry Key and Value names are hard-coded and straightforward. However, few of the critical value data are kept encoded and are decoded during file execution.

    -Registry Setup for Commands and Stager Configuration:

    Subroutine AKAAU() is used to prepare keys and values before they are written to the registry.   Value names and Value Data are stored as a separate array – “QORXG” and “ZBZLV” respectively. Both arrays are written to registry by using “RegWrite”.

     

    Fig-1 : .VBS file prepares and writes multiple Windows Registries

    Once system is infected, we can find these malicious registry entries in Registry Editor:

    Fig-2: Malicious  Registry entries, values and their probable Meaning

    Here is the summary of Registry Entries written to the system at registry path “HKCU\Software\”:

    Value Name Value Data Summary
    cn Stop-Process -Name conhost -Force Forcefully kill conhost.exe process.
    i “AddInProcess32.exe” Target process for code injection.
    in “0” Control flag, checking if PowerShell command already run or not.
    instant LPICU Obfuscated PowerShell commands. Deobfuscate and loads Stager-1 in memory.
    Path esBbIgyFlZcXjUl Name of the registry key path. It is appended to “HKCU\Software\”.
    r WAJLA .Net assembly, stored in reversed string format. Stager-2.
    s RKFYI(DGSLP) Hex Decoded String. .Net assembly stored in reversed, Base64 format. Stager-1.
    v HIKGO() Obfuscated Commands for PowerShell. Deobfuscate and loads Stager-1 in memory. Specifically used as user input simulation.

    Table-1: Summary of added registry entries

    Before writing these registries, malware calls a subroutine “ZGYHW()” that checks if the file “C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe” is present at location.

    Depending upon the presence, malware deploys different versions of Stagers. Specifically, Stager-2 in this scenario:

    Fig-3: Check for MSBuild.exe file presence

    – Registry Setup for Final Payload Deployment:

    After above registries are configured and written, there is a call to another subroutine “XSSAY()”. This function is responsible for reading another larger string data (which is an actual Masslogger payload, kept encoded). This data is then split into 25,000-character chunks and writes them in another registry values in segmented form.

    Fig-4: Malware splitting another large string data to chunks and writing it to registries

    Each chunk is written to the registry at these paths:

    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment1
    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment2
    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment*
    Fig-5: New registries added as a chunks of string data

    -Task scheduler:

    Malware establishes persistence via a Windows scheduled task, ensuring that malware keeps running in the system. Trigger for the task starts on the date of infection (20xx-xx–xxT00:00:00) and repeats every 1 minute (PT1M). Task is scheduled to run ignoring the battery-related restrictions.

    Fig-6: Task Scheduling

    Task uses the same name as a created registry key i.e. esBbIgyFlZcXjUl and is triggered to run a .VBS file. This .VBS acts as a persistent execution loop that checks for a created registries indicating whether a payload should be executed.

    -Task Scheduler Script – Capable of Simulating User Input:

    As we can see in the image below:

    • It runs for around 10000 times, sleeping for 10 seconds between each cycle.
    • It reads registry value “i” to get the name of process and confirm if it is running or not.
    • Then it checks for registry value “in” set to 1,
      • if yes, it silently executes malicious command stored in registry “instant”.
    • When value in “in” is not set to 1.
      • It launches PowerShell in visible window mode and uses “.SendKeys” methods to input values of “v” and “cn” registries followed by “{ENTER}”.
      • This technique is like simulating user inputs to PowerShell.
    Fig-7: esBbIgyFlZcXjUl.VBS file with user input simulation

    As we saw in summary table,

    “cn” registry is used to forcefully stop the running instance of conhost.exe process.

    “instant” and “v” registries are used as a PowerShell to de-obfuscate, prepare and load Stager .Net assembly in memory, without touching the disk.

    Check for System Protection Status:

    Malware checks the protection status of the target system and possibly remain undetected during execution. It does so by querying some important registries. Below are a few of the registries where AV / Security products usually register their presence:

    • “HKLM\SOFTWARE\Microsoft\Security Center\Provider\Av”,
    • “HKLM\SOFTWARE\Microsoft\Security Center\Monitoring”,
    • “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Security and Maintenance\Providers”,
    • “HKLM\SOFTWARE\Microsoft\Windows Defender\Security Center\Providers”

    These registries are defined in the script in encoded format. Malware tries to enumerate through the subkeys of above keys and attempts to read “DisplayName” value. DisplayName holds the name of the installed AV / Security tool. If multiple security products are found to be installed on target system, malware halts its execution.

     

    Fig-8: Check the presence of installed security tools

    -Trigger for Stager:

    The subroutine SQSKP() in .VBE file is a critical part of malware execution chain. It dynamically constructs and runs a PowerShell command that performs in-memory execution of a .NET stager retrieved from the Windows Registry.

    Fig-9: Trigger for stager

    Here, the decoded text is a de-obfuscated PowerShell commands, after replacing |path| with RVOYN.

    Fig-10: Deobfuscated PowerShell command

    As we can see in Fig-10 –

    1. This PowerShell command is formed and assigned to variable “LPICU”.
    2. The contents of variable are then written to registry value “\instant”, which is created inside registry key “Computer\HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl”.
    3. Function runs the constructed PowerShell command silently, where “0” – hides PowerShell window.
    4. The PowerShell then reads registry key “HKCU\Software\esBbIgyFlZcXjUl\s” – This registry key contains the Stager-1, kept in revered Base64- encoded format.
    Fig-11: Forming stager-1 by reversing and Base64 decoding

    We have seen malware authors implementing this encoding combo in many of the recent credential stealers, including VIPKeylogger, Remcos, AsyncRAT etc.

    1. The PowerShell command reverse the string, joining them, decodes base64 strings and load it as a .Net assembly using “[AppDomain]::CurrentDomain.Load ()” function in memory. This approach allows malware to:
    • Avoid writing actual malware files to disk (Evasive capability).
    • Dynamically construct and load payload at runtime.
    1. Invokes entry method “[v.v]::v(‘esBbIgyFlZcXjUl’)”, that refers to the registry path.

    We took the dump of deobfuscated stager-1 payload for further analysis. Our observations are as follows:

    Analysis of Stager-1:

    Stager-1 is a small executable kept encoded at registry “HKCU\Software\esBbIgyFlZcXjUl\s”. It is compiled in .Net and size is around ~14KB.

    Analyzing its code, we found that the file is trying to read contents from another registry key with name “r” – [HKCU\Software\esBbIgyFlZcXjUl\r].

    Those contents are reversed and another .Net compiled binary is formed – the stager-2.

    This binary is then loaded in memory using “Assembly.Load()”. Stager-1 tries to locate method r() inside the class r inside the Stager-2 assembly. It is the entry point for the execution of stager-2.

    Fig-12: Stager-1 trying to load Stager-2 and locate Method “r” in it

     Analysis of Stager-2:

    After Stager-1 completes its setup, malware proceeds to its Stager-2 loader. This stage of infection is focused on extracting actual Masslogger payload from registry and injecting it into target process.

    Stager-2 initially constructs potential file paths to launch process and performing code injection.

    It checks if a file (whose name is retrieved from the registry value “i”) exists in any of these paths.

    In our case, we found the target file/process path is:

    “%WINDIR%\Microsoft.NET\Framework\v4.0.30319\AddInProcess32.exe”

    Fig-13: Constructing file/process path for code injection.

    Further, malware extracts actual Masslogger payload which was previously written (by subroutine “XSSAY()”) in multiple registry subkeys under below registries, that we saw earlier “.

    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment1
    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment2
    • HKEY_CURRENT_USER\SOFTWARE\esBbIgyFlZcXjUl\donn\segment*

    The BBX() function of class ‘r’ is responsible for collecting all value entries, concatenate them, reverses the combined string, and then decodes it from hexadecimal into raw bytes.  This technique allows malware authors to hide a full PE binary across multiple registry keys. The decoded payload is then used for process hollowing. Process hollowing is performed using function .XGP()

    It’s a clever way to keep everything stored in the registry and only use memory for execution.

    Fig-14:Function performing payload deobfuscation and process hollowing

    -France Specific Payload Delivery:

    Geo-targeted payload delivery is now common in advanced malware to alter behavior based on the victim’s location. Stager-2 of this infection checks if current system’s input language is set to French “Fr” and whether locale contains “France”.

    Fig-15: France specific payload delivery

    If conditions are met, it tries to download specially crafted additional payload from hardcoded URL – hxxps://144.91.92.251/MoDi.txt. At the time of analysis, the URL was not accessible.

    -Terminating Traces and Exiting:

    At the end of its execution, the malware forcibly terminates running instances of conhost.exe and PowerShell.exe processes.

    Fig-16: Process killing to hide traces

    By killing these processes, malware likely aims to hide its activity traces. Finally, it exits application using ProjectData.EndApp(), completing stager-2 lifecycle.

     Analysis of Masslogger Final Payload:

    After successful deobfuscation of final payload from registry, Masslogger is injected to into target process – “AddInProcess32.exe”. We can see the marker of this malware in memory dump of the injected process as below:

    Fig-17: Marker of Masslogger in memory

    We took a memory dump of this payload representing the final stage in malware chain. It is responsible for executing the main credential – info stealing functionalities.

    -Data Harvesting:

    Just like many infostealer malware’s, this malware is also targeting multiple Web browsers and few email clients for stealing sensitive information, like saved Username, Passwords, autofill data, etc. Below are list of Web Browsers and few email clients Masslogger is trying to target.

    Fig-18: Targeted browsers and email client for credential Harvesting

    Let’s see one of the modules in detail where malware is trying to harvest saved login credentials from the Chrome browser.

    Fig-19: Chrome browser specific module for credential harvesting

    It locates the user’s login data by accessing its “Login Data” SQLite database. It extracts website URLs along with corresponding usernames and passwords and collects them for further use. If valid credentials are found, they are stored in a structured format like the website, username, and password.

    Apart from targeting browsers and email clients for info stealing, Masslogger also possesses capabilities of:

    • Keylogger activity.
    • Take and clear snapshot files.
    • Retrieve clipboard data.
    • Try monitoring user activity by calling GetForegroundWindow, GetWindowText etc.
    • Read system details, like IP address and Country.
    • Uploading multiple files to server.

    -Data Exfilteration:

    The SpeedOffPWExport() method in final payload enables data exfiltration by sending collected credentials and system information to remote locations via multiple channels, like FTP, SMTP or Telegram.

    If FTP is enabled, the method uploads the stolen data as a .txt file to a remote FTP server using hard-coded credentials.

    Fig-20: Data exfilteration via FTP

    For SMTP, it constructs an email containing the data in either the message body or as an attached text file and sends it using the specified mail server.

    Fig-21: Data exfilteration via SMTP

    If Telegram exfiltration is enabled, it sends the data as a document using the Telegram Bot API, including a caption with the victim’s username and IP.

    Fig-22: Data exfilteration via Telegram

    Conclusion:

    The Masslogger fileless variant shows the evolving trend of info-stealing malware. Delivered via a .VBE script, it abuses Windows Registry to store actual executable payload and loads that payload directly in memory without touching the disk. It possesses capability to harvest stored credentials from multiple browsers and email clients and using multiple channels [FTP, SMTP, Telegram Bot] for data exfiltration.

    This variant shows the shift of credential stealer malware towards fileless and operation in multiple stages (Stager-1, Stager-2). This challenges traditional AV and signature-based detection methods. To overcome this, security defenders must employ advanced detection mechanisms like behavioral detection, monitor registry anomalies etc.

    Indicators of Compromise (IoC’s):

    File MD5:

    .VBE: 29DBD06402D208E5EBAE1FB7BA78AD7A

    .VBS: F30F07EBD35B4C53B7DB1F936F72BE93

    Stager-1: 2F1E771264FC0A782B8AB63EF3E74623

    Stager-2: 37F0EB34C8086282752AF5E70F57D34C

    MassLogger Payload: 1E11B72218448EF5F3FCA3C5312D70DB

    URL:

    hxxps://144.91.92.251/MoDi.txt

    Seqrite Detection:

    Script.trojan.49618.GC

    Trojan.MSIL

    Trojan.YakbeexMSIL.ZZ4

     

    MITRE ATT&CK

    Tactic Technique ID Technique Name Sub-technique ID Sub-Technique Name
    Initial Access T1566 Phishing T1566.001 Spear phishing Attachment
    Execution T1059 Command and Scripting Interpreter T1059.005 Visual Basic
    Execution T1059 Command and Scripting Interpreter T1059.001 PowerShell
    Persistence T1053 Scheduled Task/Job T1053.005 Scheduled Task
    Defense Evasion T1140 De-obfuscate/Decode Files or Information
    Defense Evasion T1112 Modify Registry
    Defense Evasion T1055 Process Injection T1055.012 Process Hollowing
    Defense Evasion T1562 Impair Defenses T1562.001 Disable or Modify Tools
    Defense Evasion T1059 Command and Scripting Interpreter T1059.001 PowerShell
    Discovery T1518 Software Discovery T1518.001 Security Software Discovery
    Discovery T1082 System Information Discovery
    Discovery T1012 Query Registry
    Credential Access T1555 Credentials from Password Stores T1555.003 Credentials from Web Browsers
    Credential Access T1056 Input Capture T1056.001 Keylogging
    Collection T1113 Screen Capture
    Collection T1115 Clipboard Data
    Collection T1056 Input Capture T1056.001 Keylogging
    Collection T1083 File and Directory Discovery
    Command and Control T1071 Application Layer Protocol T1071.001 Web Protocols
    Command and Control T1071 Application Layer Protocol T1071.002 File Transfer Protocols
    Command and Control T1071 Application Layer Protocol T1071.003 Mail Protocols
    Command and Control T1105 Ingress Tool Transfer
    Exfiltration T1041 Exfiltration Over C2 Channel
    Exfiltration T1567 Exfiltration Over Web Service T1567.002 Exfiltration to Cloud Storage
    Exfiltration T1567 Exfiltration Over Web Service T1567.001 Exfiltration to Code Repository



    Source link

  • Designer Spotlight: Bimo Tri | Codrops

    Designer Spotlight: Bimo Tri | Codrops


    I’m Bimo Tri, a multidisciplinary designer and creative developer based in Indonesia. I run a small independent studio called Studio•Bämo.J®, working between Jakarta and Bali — or pretty much anywhere I can find a fast internet connection.

    My focus is on building expressive digital experiences, mostly portfolio sites and brand platforms for creatives, studios, and design-forward brands. With roots in both design and development, I enjoy blending visual precision with motion and interactivity to create work that feels both thoughtful and visceral. I care deeply about craft, story, and making things that resonate beyond just visuals.

    Showcase

    SAISEI

    Saisei is a visionary architecture firm based in Tokyo, Japan, focused on sustainability, culture, and timeless design. I designed and developed the site to reflect their philosophy merging traditional Japanese aesthetics with clean, contemporary digital design.

    Achievements

    This project was a major milestone in my career. It brought home my first Awwwards Site of the Day and earned recognition from several other platforms. The positive feedback from the design community affirmed my approach to cultural storytelling through digital mediums.

    Personal notes

    Saisei remains one of my favorite works. I’ve always been drawn to the tension between heritage and modernity, and this project gave me the space to explore that deeply. The recognition it received made the process even more meaningful.

    Live Site Link: https://saisei-sbj.webflow.io/

    NĀGARA

    Nagara is a concept project developed in collaboration with my buddy Felixander Yuan, created as part of the #DareToShare24 design challenge by @bentenwordring.

    It reimagines a luxury watch brand that fuses the precision of Swiss watchmaking with the cultural depth of the Majapahit Empire. Each timepiece acts as a tribute not just to technical craftsmanship, but to historical richness and aesthetic symbolism rooted in Indonesian heritage.

    Challenges

    One of the biggest hurdles was exploring AI-generated imagery and motion assets. Using tools like Midjourney and Kling, it took numerous iterations to dial in a visual direction that felt both on-brand and high-end. Getting the product visuals — especially the watches — to look authentic and aligned with the brand’s narrative was far more challenging than anticipated.

    Achievements

    The final result was a fully animated concept site that we were genuinely proud of. Yuan did an amazing job bringing the dev and motion to life. Beyond that, the project ended up winning the monthly challenge, earning recognition and some cool prizes — a nice bonus on top of the creative satisfaction.

    Personal notes

    This one felt personal. The month’s theme was “Luxury” — a space I naturally gravitate toward — and we were allowed to team up for the final challenge. I chose to work with Yuan, someone I’ve respected and known for a while. The entire process felt like a return to roots — storytelling, culture, and collaboration — wrapped inside a luxury narrative.

    Live Site Link: https://nagara-daretoshare.webflow.io/

    HorizonStudio

    Horizon Studio is a conceptual architecture firm based in Los Angeles, created to explore the intersection of art, design, and technology. Inspired by my love for architecture and interior design, the site showcases sleek, avant-garde visuals with a focus on sustainability. I used Midjourney for the visual assets and GPT to shape the narrative, crafting an experience that feels modern and immersive.

    Achievements

    The site received an Honorable Mention from Awwwards — a validating moment for me as it was one of my earliest forays into the architecture space. The feedback highlighted the strength of the design direction and the site’s overall atmosphere.

    Personal notes

    This was the first project where I went all in with generative AI — every asset was made using prompts, and honestly, it was pretty sloppy at first. But through experimentation, I managed to create a cohesive visual style that looked like it came from one photographer. It reminded me how fun it is to dive into the unknown and just explore.

    Live Site Link: https://horizonstudioarchitecture.webflow.io/

    REZN-8

    REZN-8 is a typographic and layout exploration rooted in Swiss design principles. It started as a poster experiment and evolved into a full website — my first time building a motion-heavy site entirely with code. It was all about translating static design into something dynamic, expressive, and functional in a digital format.

    Challenges

    Turning the poster into a functional site was already a challenge, but learning JavaScript on the fly to bring motion into the experience pushed me even further.

    The biggest challenge, though, was researching and presenting accurate information about the legendary designers featured. Some had very little online presence, so I had to dive deep into design history to get the details right.

    Personal notes

    REZN-8 holds a special place in my heart. It completely changed how I see layout, grids, and type — it was the project that shifted my design brain forever. Shoutout to Chris Do and TheFutur’s Typography 01 course, which sparked the whole thing.

    Live Site Link: https://rezn8.webflow.io/

    Notable Explorations & Projects

    Blacksmith Collective

    (Webflow Template) Shameless plug 🫠

    Live Site Link: https://blacksmith-sbj.webflow.io/

    Velthari

    Live Site Link: https://velthari.webflow.io/

    Velvet Blues

    Background

    I didn’t start out as a designer, at least not in the traditional sense. My early work was in a marketing agency where I handled everything from FB ad graphics to SEO landing pages and WordPress articles. It wasn’t glamorous, but it gave me a foundation in how digital systems work.

    Then I stumbled across Webflow — and everything changed. I got completely hooked on web design, especially sites with rich motion and interaction.

    That moment pushed me to quit the agency world and start my own studio. Since then, I’ve been building expressive, story-driven websites for creatives and design-forward brands, blending design, motion, and development into something that feels personal and intentional.

    Design Philosophy

    I’ve always leaned toward minimal design paired with bold, heavy type. To me, you don’t need a lot to make something striking, just the right balance of restraint and intention. If the typography is solid and the layout is thoughtful, even the simplest design can carry emotional weight. I focus on clarity, rhythm, and a strong visual pulse — letting motion, space, and type do the heavy lifting.

    Tools and Techniques

    • Figma for most of the design work
    • Webflow for front-end development and CMS integration
    • GSAP for all things motion and interaction
    • Cursor for dev support (because I wouldn’t call myself a “real dev,” but I make it work)

    Inspiration

    I pull inspiration from a lot of places — music, films, anime — especially the ones that are crafted with insane attention to detail. I’ve always admired how much intention goes into those worlds. There’s so much to steal from them — not just visually, but conceptually and emotionally. I’m also inspired by work that feels personal, raw, and beautifully uncompromising.

    Future Goals

    My main goal is to keep attracting work that aligns with the way I see and do things. I’m not chasing volume — I just want to keep collaborating with people who value design, story, and craft as much as I do. I’m also interested in exploring more personal projects, maybe even merging design with philosophy, fitness, or writing — things that feel more like extensions of who I am, not just what I do.

    Final Thoughts

    Learn from the past, embrace the present moment, and look into the future. You only live once, do what makes you happy and what feels right for you.

    Contact Info

    I’m mostly active on LinkedIn, X (Twitter), and occasionally Instagram.

    Instagram: @bamojk

    LinkedIn: https://www.linkedin.com/in/bamoj/

    X (Twitter): https://x.com/bamojk

    Website: bamoj.com





    Source link

  • Siemens Energy is now a Browserling customer!

    Siemens Energy is now a Browserling customer!


    Success! Siemens Energy, a global leader in energy technology, is now a Browserling customer!

    It’s another small step for a ling but one giant leap for ling kind.

    What Is Browserling?

    Browserling is a cross-browser testing service that lets users test websites and web applications in different browsers to ensure they work correctly. It also works as a browser sandbox, allowing users to safely check suspicious links and web pages without affecting their own devices. Developers, testers, and regular users can use it to see how websites look and behave across different browsers. IT security professionals find it useful for safely analyzing links and identifying potential vulnerabilities in a secure environment.

    Who Uses Browserling?

    Browserling has now become the cross-browser testing service of choice and it’s used by hundreds of thousands of users around the world every month. Browserling’s customers include governments, states, cities, banks, stock exchanges, universities, newspapers, and Fortune 100 companies.

    See you next time!



    Source link

  • Top 10 Cloud Security Challenges in 2025 And How to Solve Them with Seqrite

    Top 10 Cloud Security Challenges in 2025 And How to Solve Them with Seqrite


    In today’s world, organizations are rapidly embracing cloud security to safeguard their data and operations. However, as cloud adoption grows, so do the risks. In this post, we highlight the top cloud security challenges and show how Seqrite can help you tackle them with ease.

    1.    Misconfigurations

    One of the simplest yet most dangerous mistakes is misconfiguring cloud workloads think storage buckets left public, weak IAM settings, or missing encryption. Cybercriminals actively scan for these mistakes. A small misconfiguration can lead to significant data leakage or worst-case, ransomware deployment. Seqrite Endpoint Protection Cloud ensure your cloud environment adheres to best-practice security settings before threats even strike.

    2.    Shared Responsibility Confusion

    The cloud model operates on shared responsibility: providers secure infrastructure, you manage your data and configurations. Too many teams skip this second part. Inadequate control over access, authentication, and setup drives serious risks. With Seqrite’s unified dashboard for access control, IAM, and policy enforcement, you stay firmly in control without getting overwhelmed.

    3.    Expanded Attack Surface

    More cloud services, more code, more APIs, more opportunities for attacks. Whether it’s serverless functions or public API endpoints, the number of access points grows quickly. Seqrite tackles this with integrated API scanning, vulnerability assessment, and real-time threat detection. Every service, even ephemeral ones is continuously monitored.

    4.    Unauthorized Access & Account Hijacking

    Attackers often gain entry via stolen credentials, especially in shared or multi-cloud environments. Once inside, they move laterally and hijack more resources. Seqrite’s multi-factor authentication, adaptive risk scoring, and real-time anomaly detection lock out illicit access and alert you instantly.

    5.    Insufficient Data Encryption

    Unencrypted data whether at rest or in transit is a gold mine for attackers. Industries with sensitive or regulated information, like healthcare or finance, simply can’t afford this. Seqrite ensures enterprise-grade encryption everywhere you store or transmit data and handles key management so that it’s secure and hassle-free.

    6.    Poor Visibility and Monitoring

    Without centralized visibility, security teams rely on manual cloud consoles and piecemeal logs. That slows response and leaves gaps. Seqrite solves this with a unified monitoring layer that aggregates logs and events across all your cloud environments. You get complete oversight and lightning-fast detection.

    7.     Regulatory Compliance Pressures

    Compliance with GDPR, HIPAA, PCI-DSS, DPDPA and other regulations is mandatory—but complex in multi-cloud environments. Seqrite Data Privacy simplifies compliance with continuous audits, policy enforcement, and detailed reports, helping you reduce audit stress and regulatory risk.

    8.    Staffing & Skills Gap

    Hiring cloud-native, security-savvy experts is tough. Many teams lack the expertise to monitor and secure dynamic cloud environments. Seqrite’s intuitive interface, automation, and policy templates remove much of the manual work, allowing lean IT teams to punch above their weight.

    9.    Multi-cloud Management Challenges

    Working across AWS, Azure, Google Cloud and maybe even private clouds? Each has its own models and configurations. This fragmentation creates blind spots and policy drift. Seqrite consolidates everything into one seamless dashboard, ensuring consistent cloud security policies across all environments.

    10.  Compliance in Hybrid & Multi-cloud Setups

    Hybrid cloud setups introduce additional risks, cross-environment data flows, networking complexities, and inconsistent controls. Seqrite supports consistent security policy application across on-premises, private clouds, and public clouds, no matter where a workload lives.

    Bring in Seqrite to secure your cloud journey, safe, compliant, and hassle-free.

     



    Source link

  • What is MDM and Why Your Business Can’t Ignore It Anymore

    What is MDM and Why Your Business Can’t Ignore It Anymore


    In today’s always-connected, mobile-first world, employees are working on the go—from airports, cafes, living rooms, and everywhere in between. That’s great for flexibility and productivity—but what about security? How do you protect sensitive business data when it’s spread across dozens or hundreds of mobile devices?  This is where Mobile Device Management (MDM) steps in. Let’s see what is MDM.

     

    What is MDM?

    MDM, short for Mobile Device Management, is a system that allows IT teams to monitor, manage, and secure employees’ mobile devices—whether company-issued or BYOD (Bring Your Own Device).

    It’s like a smart control panel for your organization’s phones and tablets. From pushing software updates and managing apps to enforcing security policies and wiping lost devices—MDM gives you full visibility and control, all from a central dashboard.

    MDM helps ensure that only secure, compliant, and authorized devices can access your company’s network and data.

     

    Why is MDM Important?

    As the modern workforce becomes more mobile, data security risks also rise. Devices can be lost, stolen, or compromised. Employees may install risky apps or access corporate files from unsecured networks. Without MDM, IT teams are essentially blind to these risks.

    A few common use cases of MDM:

    • A lost smartphone with access to business emails.
    • An employee downloading malware-infected apps.
    • Data breaches due to unsecured Wi-Fi use on personal devices.
    • Non-compliance with industry regulations due to lack of control.

    MDM helps mitigate all these risks while still enabling flexibility.

     

    Key Benefits of MDM Solution

    Enhanced Security

    Remotely lock, wipe, or locate lost devices. Prevent unauthorized access, enforce passcodes, and control which apps are installed.

    Centralized Management

    Manage all mobile devices, iOS and Android from a single dashboard. Push updates, install apps, and apply policies in bulk.

    Improved Productivity

    Set devices in kiosk mode for focused app usage. Push documents, apps, and files on the go. No downtime, no waiting.

    Compliance & Monitoring

    Track usage, enforce encryption, and maintain audit trails. Ensure your devices meet industry compliance standards at all times. 

     

    Choosing the Right MDM Solution

    There are many MDM solutions out there, but the right one should go beyond basic management. It should make your life easier, offer deep control, and scale with your organization’s needs—without compromising user experience.

    Why Seqrite MDM is Built for Today’s Mobile Workforce

     Seqrite Enterprise Mobility Management (EMM) is a comprehensive MDM solution tailored for businesses that demand both security and simplicity. Here’s what sets it apart:

    1. Unified Management Console: Manage all enrolled mobile devices in one place—track location, group devices, apply custom policies, and more.
    1. AI-Driven Security: Built-in antivirus, anti-theft features, phishing protection, and real-time web monitoring powered by artificial intelligence.
    1. Virtual Fencing: Set geo, Wi-Fi, and time-based restrictions to control device access and usage great for field teams and remote employees.
    1. App & Kiosk Mode Management: Push apps, lock devices into single- or multi-app kiosk mode, and publish custom apps to your enterprise app store.
    1. Remote File Transfer & Troubleshooting: Send files to one or multiple devices instantly and troubleshoot issues remotely to reduce device downtime.
    1. Automation & Reporting: Get visual dashboards, schedule regular exports, and access real-time logs and audit reports to stay ahead of compliance.

     

     Final Thoughts

    As work continues to shift beyond the boundaries of the office, MDM is no longer a luxury, it’s a necessity. Whether you’re a growing startup or a large enterprise, protecting your mobile workforce is key to maintaining both productivity and security.

    With solutions like Seqrite Enterprise Mobility Management, businesses get the best of both worlds powerful control and seamless management, all wrapped in a user-friendly experience.



    Source link

  • Designing TrueKind: A Skincare Brand’s Journey Through Moodboards, Motion, and Meaning

    Designing TrueKind: A Skincare Brand’s Journey Through Moodboards, Motion, and Meaning


    Project Backstory

    TrueKind approached us with a clear but ambitious goal: they wanted a skincare website that stood out—not just in the Indian skincare space, but globally.

    The challenge? Most skincare websites (especially local ones) lean heavily commercial. They emphasize offers, discounts, and aggressive product pushes. But TrueKind wanted something gentler, more thoughtful, and centered on one message: honest skincare.

    From the very first conversation, I knew this would require a delicate balance. We wanted to create a site that was visually fresh and a little unconventional, but not so experimental that it alienated everyday customers.

    We set aside around 1–2 months for the design phase, allowing time for multiple iterations and careful refinement. One of the best parts of this project was the incredibly trusting, supportive client team—working with people who are genuinely open to creativity makes all the difference.

    Crafting the Visual Direction

    Every project I work on begins with listening. Before touching any design tools, I immersed myself in the client’s vision, mood, and tone.

    I created a moodboard to align with their aesthetic, making sure the images I pulled weren’t just random “nice” visuals. This is something I see many younger designers overlook: it’s not just about curating pretty pictures; it’s about curating pictures that match the brand’s energy, saturation, color language, and atmosphere.

    🌟 When building moodboards, don’t be afraid to tweak image properties. Adjust exposure, warmth, contrast, and saturation until they feel cohesive. You’re not just grabbing references—you’re crafting a controlled atmosphere.

    For the typefaces, I leaned on my go-to foundry, Pangram Pangram. Their fonts are beautifully made and (for personal projects) wonderfully accessible. For TrueKind, we selected PP Mori (for a modern, clean backbone) and Editorial Neue (to bring in an elegant, editorial touch).

    Even though the client wanted something unconventional, I knew we had to keep the animation and interaction design balanced. Too much movement can be overwhelming. So, we built the visual experience primarily around typography—letting type choices and layouts carry the creative weight.

    On Working Before AI Image Tools

    This project dates back to around 2021, before the surge of AI image generation tools. So when it came to placeholders and visual exploration, I often turned to Behance or similar platforms to source reference imagery that fit the vibe.

    Of course, for the final launch, we didn’t want any copyright issues—so we conducted a professional photoshoot in Worli, Mumbai, capturing clean, fresh product imagery. For the Awwwards showcase, we’ve swapped in AI-generated images purely for display purposes.

    Iteration and Evolution

    Here’s a personal moment of honesty: The first version I designed? I wasn’t thrilled with it.

    It lacked the polish, elegance, and depth I knew the brand deserved. But instead of settling, I went back, refined, iterated, and kept pushing. That’s something I’d tell any designer reading this:

    🌟 Don’t be afraid to walk away from your early drafts. You can feel when something’s not hitting the mark—trust that instinct, and give yourself room to improve.

    Animation & Interaction Design

    I’m a sucker for scroll-based animations. Smooth scrolling, layered reveals, subtle movement—these elements can elevate a static design a hundredfold if used thoughtfully.

    For TrueKind, I didn’t want unnecessary flash. The scroll interactions enhance the content flow without overpowering it. The text reveals, section transitions, and layered elements were designed to add just enough dynamism to keep the user engaged while still respecting the calm, honest tone of the brand.

    Bringing in Reksa: Development Insights

    At a certain point, I knew I needed help to fully do justice to the design. That’s when I reached out to Reksa—a developer I deeply admire, not just for his technical skill but for his meticulous creative eye.

    Handing over a design like this isn’t always easy. But with Reksa, it felt seamless. He understood the nuances, respected the design intention, and delivered 1000%.

    In the dev section below, Reksa will walk you through the stack, architecture, key challenges, and how he brought the design to life with care and precision.

    Tech Stack & Challenges

    Nuxt.js 3 for the frontend: This project was built with Nuxt.js 3 as the frontend framework. It’s my main tech stack and a powerful choice, especially for creative websites. I find Nuxt.js offers far more flexibility than other frameworks.

    SCSS for styling: While many developers prefer CSS frameworks, I lean toward vanilla CSS as my primary approach. SCSS is used here mainly for class scoping and maintainability, but the overall syntax remains vanilla. Writing custom CSS makes the most sense for my needs—especially in creative development, where unique layouts and their connection to animation/motion often demand full styling control.

    Vercel for hosting: It provides a simple, plug-and-play experience for hosting Nuxt.js 3 projects.

    Prismic as CMS: I use Prismic as the headless CMS. It’s my go-to for most projects—straightforward and well-suited to this project’s needs.

    GSAP for animations: For smooth motion experiences, GSAP is unmatched. Its exceptional plugins—like SplitText and DrawSVG—allow me to craft fantastic animations that elevate the design.

    Lenis for smooth scrolling: To enhance the motion and animation quality, implementing smooth scroll is a must. It ensures that animations flow beautifully in sync with the scroll timeline.

    The key challenges for this project were implementing the “floating” layout and ensuring it remained responsive across all screen sizes. Abhishek’s design was beautifully unique, though that uniqueness also posed its own set of difficulties. To bring it to life, I had to carefully apply techniques like position: absolute in CSS to achieve the right structure and layering.

    My favorite part of developing this project was the page transitions and micro-interactions.

    The page transition to the product view uses a solid color from the product background, expands it to full screen, and then switches the page seamlessly. Meanwhile, micro-interactions—like SVG draw motions, button hovers, and click animations—add small but impactful details. These make the site feel more alive and engaging for users.

    Awards & Recognition

    We’re incredibly happy that the project received such a positive response. Some of the awards and recognitions include:

    • Awwwards – Site of the Day & Developer Award
    • Awwwards – E-commerce Honors (Nominee)
    • FWA – FWA of the Day
    • CSSDA – Website of the Day
    • GSAP – Site of the Day
    • Muz.li – Picks Honor
    • Made With GSAP – Showcase Feature

    Reflections

    This project was a joy. Not just because of the outcome, but because of the process: working with thoughtful clients, collaborating with talented partners, and building something that felt true to its mission.

    There was, however, an interesting twist. While the final site looked and felt fresh and unconventional, over time, the client gradually shifted toward simpler, more familiar designs—closer to what everyday users are used to.

    And here’s a reflection for all creatives:

    🌟 Creative websites are a feast for the eyes, but they don’t always convert perfectly. As designers, we thrive on bold, experimental ideas. But businesses often need to balance creativity with practicality. And that’s okay.

    This project left a lasting impression—not just on the client, but on us as creators. It reminded me why we do this work: not just to make things look good, but to tell stories, evoke feelings, and bring meaningful ideas into the world.

    Final Thoughts

    If you’re a young creative reading this: Keep learning, keep experimenting, and keep collaborating. It’s not about chasing perfection—it’s about chasing truth in your work.

    And when you find a team that shares that vision? That’s where the magic happens.

    Thank you for reading.



    Source link

  • Understanding void(0) in JavaScript: What It Is, Why It’s Used, and How to Fix It



    Understanding void(0) in JavaScript: What It Is, Why It’s Used, and How to Fix It



    Source link