2026年6月8日
摘要: ajj 这个程序并没有明显的确定按钮 根据这篇文章https://www.52pojie.cn/thread-613337-1-1.html 使用Dede反编译一下,在窗体窗口点击DFM Editor可以看到各种事件 注意到Panel1有两个关键事件,一个是单击事件,另一个是双击事件 这应该就是我们 阅读全文
posted @ 2026-06-08 22:14 %HuTao% 阅读(3) 评论(0) 推荐(0)
  2026年6月6日
摘要: AfKayAs CrackMe #2 弹窗去除 参考这篇文章 https://www.52pojie.cn/thread-612982-1-1.html 根据push指令,在内存窗口中转到 4067D4 再转到偏移4c处的地址 406868 根据原帖描述,这两处字节需要取反,如图所示 然后运行,得到 阅读全文
posted @ 2026-06-06 15:46 %HuTao% 阅读(5) 评论(0) 推荐(0)
  2026年6月4日
摘要: AfKayAs CrackMe #1 爆破 查找字符串,定位到YouGetWrong的反汇编,然后往上翻,找到je跳转 它决定了弹出哪种提示框 改成je 下一条指令的地址 然后提示You Get it ctrl+p选择修补文件就可以了 算法分析 在上边这些代码中看不出明显的加密逻辑,所以跳到函数头部 阅读全文
posted @ 2026-06-04 13:00 %HuTao% 阅读(4) 评论(0) 推荐(0)
摘要: 1 Acid burn.exe 打开程序,先看一下有哪些部分。左边的Serial/Name部分和右边的Serial部分 随便输几个数,其中左边的报错信息是 Try Again! Sorry, The serial is incorect! 右边的则是 Failed Try Again!! 知道了这些 阅读全文
posted @ 2026-06-04 10:37 %HuTao% 阅读(4) 评论(0) 推荐(0)
  2026年5月7日
摘要: IsDebuggerPresent 函数体 检测原理 TEB结构体 +0x000 NtTib : _NT_TIB +0x01c EnvironmentPointer : Ptr32 Void +0x020 ClientId : _CLIENT_ID +0x028 ActiveRpcHandle : 阅读全文
posted @ 2026-05-07 14:04 %HuTao% 阅读(5) 评论(0) 推荐(0)
摘要: #include <stdio.h> int main() { int a = 114514; int* p = &a; printf("p = %x\n",p); printf("&p = %x\n",&p); printf("*p = %d",*p); printf("a = %d\n",a); 阅读全文
posted @ 2026-05-07 13:45 %HuTao% 阅读(1) 评论(0) 推荐(0)
摘要: 为什么要转 一个PE文件,在磁盘中以0x200(512)字节对齐,其余以0填充,而在内存中以0x1000(4KB)对齐。当它被从硬盘中加载到内存中时,其大小就会发生改变。为了确定导入导出表的物理地址,需要把其在内存中的偏移地址(RVA)换算成其在文件中的偏移(FOA) 怎么转 分情况: RVA在文件 阅读全文
posted @ 2026-05-07 13:43 %HuTao% 阅读(6) 评论(0) 推荐(0)
摘要: 怎么开发一个虚拟机 参考 https://xz.aliyun.com/news/3483 在此之前需要先理解一下字节码和汇编的区别 字节码与汇编的区别 字节码由虚拟机解释执行,汇编由CPU执行 不同平台的汇编指令集不同,所以汇编无法跨平台;然而基于不同的汇编指令集,可以开发对应平台的虚拟机,再由虚拟 阅读全文
posted @ 2026-05-07 13:42 %HuTao% 阅读(6) 评论(0) 推荐(0)
摘要: C/C++对应的汇编语言 从汇编语言层面理解 i++ 与 ++i 的区别——以while循环为例 i++: 这里[rbp-0x4]对应 i ,之后把i的当前值0存到eax中,后面把当前值+1(rax + 0x1)存到edx,再覆盖原来的i (rbp - 0x4)的值,后面就是比较当前值与4的大小决定 阅读全文
posted @ 2026-05-07 13:35 %HuTao% 阅读(5) 评论(0) 推荐(0)