Reverse Engineering and Malware Analysis Training

Technical instruction for Threat Experts University covering x86 reverse engineering, script analysis, and practical malware cleanup activities.

Original work: During Trend Micro tenure, November 2017–April 2021

Teaching context

As an Associate Technical Trainer at Trend Micro’s Threat Experts University, I delivered technical lectures and hands-on activities for analyst trainees. This work took place during my November 2017–April 2021 Trend Micro tenure; the archive does not assign individual session dates.

An analyst learning sequencePublic teaching model based on the documented subjects, not a reproduced internal syllabus.
  1. Observe

    Identify artifacts and record what is directly visible.

  2. Trace

    Connect values and branches to the behavior under review.

  3. Predict

    State an expected result for a changed input or boundary case.

  4. Verify and explain

    Compare the result with evidence and revise the explanation if needed.

Curriculum and practical work

My documented teaching responsibilities included:

  • Reverse engineering using x86 assembly.
  • Script analysis and interpretation of program behavior.
  • Manual malware cleanup.
  • Automated cleanup using DCT workflows.

I also developed malware-analysis training curriculum and established an IoT lab for learning Linux/IoT internals and associated threats as part of my related research work.

From analysis to explanation

Training requires turning an investigation into a sequence another analyst can follow: identifying evidence, interpreting execution, and explaining the basis for a cleanup decision. That connection between technical analysis and clear communication continues through the methodology notes on this site.

For a public learning example, explore the reverse-engineering Lab. It is a separate benign demonstration, not a reproduction of internal training material.

Technical context: teaching evidence-driven reasoning

The following learning structure explains the subjects in my documented teaching role. It is an archive explanation, not a reproduction of an internal syllabus or a claim about individual trainee outcomes.

In reverse engineering, recognizing an instruction is only a starting point. A learner needs to connect the instruction with the value it operates on, the branch it influences, and the behavior that follows. In script analysis, the same reasoning applies to strings, objects, function calls, and dynamically constructed values.

A useful progression moves from observation to explanation. First identify an artifact, then trace the relevant behavior, then state a conclusion with its supporting evidence. If an interpretation changes, the record should make clear which new observation changed it.

A public learning exercise

The site’s benign binary fixture provides a separate example of that progression:

  1. Identify the input layout and the checks that reject invalid data.
  2. Trace how the reading is assembled from bytes.
  3. Recover the enabling condition and strict threshold comparison.
  4. Predict the result at a boundary, then compare it with the fixture’s expected behavior.
  5. Explain why an invalid checksum is a validation failure rather than an ordinary classification.

This example can reveal whether someone understands the decision or has only memorized the expected output. Changing a flag or testing an exact boundary makes the reasoning visible.

From findings to cleanup decisions

Cleanup requires a different but related explanation: what changed, which changes are attributable to the unwanted program, and which legitimate functions depend on the affected resources? A suspicious filename alone is not sufficient grounds for removing a shared component.

The distinction between manual and automated cleanup also creates a reproducibility question. An automated procedure needs explicit matching conditions and a clear account of what it changes. Verification should check both that the unwanted behavior is addressed and that required behavior remains intact.

These principles explain why hands-on work and written analysis belong together. A useful training artifact records the evidence, interpretation, proposed action, and verification result so that another analyst can evaluate the reasoning.

Make the explanation falsifiable

A useful exercise asks the learner to predict both a normal case and a counterexample before inspecting the output. This benign helper captures the practice without reproducing internal course code:

# A deliberately simple decision for a reasoning exercise.
def permit_action(identity_verified, action_allowed):
    return identity_verified and action_allowed

cases = [(True, True, True), (True, False, False),
         (False, True, False), (False, False, False)]
for verified, allowed, expected in cases:
    assert permit_action(verified, allowed) == expected

The four cases distinguish authentication from authorization. In an actual analysis, the next question is where these inputs originate and whether another path bypasses the checks. Passing this exercise demonstrates the helper’s truth table, not a trainee’s overall malware-analysis proficiency.

Archive record

The role and curriculum are documented in my professional history. This entry describes my teaching scope; internal course files and confidential training packages are not reproduced.