记录:一些有意思的汇编片段
计算一段假码的余数存储到edi+ebx中:
00401664 |. B9 0A000000 mov ecx,0xA ; 把0xA 赋值给ecx 00401669 |> 0FBE041E /movsx eax,byte ptr ds:[esi+ebx] ; 将 假码的第一个字节的机器码 赋值给eax 0040166D |. 99 |cdq ; 扩展命令 0040166E |. F7F9 |idiv ecx ; edx 和 eax合并 除以0xA 商放在eax 余数放在edx 00401670 |. 88141F |mov byte ptr ds:[edi+ebx],dl ; 将 余数edx 赋值给edi+ebx(用来存储 修改过的假码) 00401673 |. 43 |inc ebx ; ebx递增1 00401674 |. 3B1D 67344000 |cmp ebx,dword ptr ds:[0x403467] ; 判断当前的长度是否跟假码的长度相同 0040167A |.^ 75 ED \jnz short 软编码序.00401669 ; 不同 跳回去
用来检测调试:
7C81F424 > 64:A1 18000000 MOV EAX,DWORD PTR FS:[18] 7C81F42A 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30] 7C81F42D 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2]
可以用于进行判断跳转
7411EA99 . 66:83F8 00 CMP AX,0 ; 影响ZF的标志位 7411EA9D > B8 00000000 MOV EAX,0 ; EAX 为0 7411EAA2 . 0F94C0 SETE AL ; 根据ZF标志位判断,如果ZF为1那么al为1,ZF为0,那么al为0 7411EAA5 . F7D8 NEG EAX ; 0 - eax的值赋值给eax 相当于取反
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY