环境
Windows xp sp3

工具
1.VBExplorer
2.ollydbg

查壳
OD载入往上翻可以看出是vb程序,看到

00401042   .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>]              ;  MSVBVM50.MethCallEngine

可以知道是p-code的了
测试

OD载入后搜字符串是搜不到的东西了。
参考
《使用OllyDbg从零开始Cracking》第29和30章关于p-code的内容之后就可以分析出来了。

0040E393前面的是一些对输入内容长度格式等判断
0040E393 循环开始
0040E3A6 读入name
0040E3B8 name入栈
0040E3BB 将name从str变成variant类型
0040E3BE 这个是指向上面的variant的指针
0040E3C1 这是取第一个字符函数
0040E3C6 将上面的函数计算出的结果进栈
0040E3C9
0040E3CD 将刚刚进栈的字符转成数值
0040E3D2 将刚刚得到的数值保存起来
0040E3D5 将得到的数值转成10进制然后再转为字符串
0040E3D9 将得到的字符串转回variant
0040E3EF 跳回去0040E3930040E3F5 这里是将上面循环得到的字符串入栈
0040E3F8 得到上面入栈字符串的长度
0040E402 与0x9比较
0040E404 相等就跳到40E425
0040E407 将上面循环得到的字符串入栈
0040E40A push了一个圆周率
0040E416 字符串转为数值除以3.141592654
0040E41A 将结果入栈
0040E422  jmp 0040E3F50040E425 将上面的结果取整入栈
0040E430 将栈中的值转为16进制后再与0x30F85678进行异或运算
0040E434
0040E438 将上面的计算结果入栈
0040E43E
0040E441 将0xD8B3入栈
0040E445 将0040E438处入栈的值减去0xD8B3,并将结果入栈
0040E449
0040E44D
0040E452
0040E455 0040E45A  开始for循环
0040E460
0040E463
0040E464
0040E46D  读取serial
0040E472  serial入栈
0040E475
0040E478
0040E47A
0040E47D
0040E480  这里push了一个值
0040E481  和输入的serial比较是否相同
0040E483
0040E486
0040E489  相同则跳到0040E48C
0040E48C
0040E48F  跳回循环0040E4A2 读入serial
0040E4A7
0040E4AA 将字符串转为variant
0040E4AD 将上面的计算的值存了进来
0040E4B0 用字符串的字面值减去上面计算的值
0040E4B4
0040E4B7
0040E4C1 读入name
0040E4C6
0040E4C9 计算name长度
0040E4CF 判断是否相等,不相等就为0
0040E4DE 如果上面判断结果为0就跳到错误消息框,

还是和Native-code代码一样,在分析算法中还是存在许多东西可以跳过的。
指令的位置可以用VBExplorer反编译出来。
然后用OD动态调试观察执行细节就行了

总结起来就是:
将name中每一个字符转成ascii值。
如:abcdefg
变成:979899100101102103

再判断这个值长度是否大于0x9
如果是就除以3.141592654
重复直到长度不大于0x9
于是就有:351021547

再将结果与0x30F85678异或
变成:605323155

减去0xD8B3,
变成:605267680

最后加上name的长度7:
变成:605267687

160 - 38 CyberBlade.2相关推荐

  1. 160 - 37 CyberBlade.1

    环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD载入是VB程序. 测试 OD载入直接搜字符串. 这个是当输入为空时会弹出消息框告诉你要输入9个字符. ...

  2. MPB:北林张静等-丛枝菌根真菌(AMF)孢子、菌丝密度及侵染率定量测定方法

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  3. mysql服务重启后不见了_一次诡异的Mysql服务不断重启故障排查

    前段时间,有测试人员联系我,寻求帮助,让我帮忙看看,测试环境的一台mysql数据库不断的重启,导致他们的测试无法进行,时间拖的长了,会影响上线进度. 下面就来说说现象 在一个测试环境,mysql5.7 ...

  4. php 彩蛋 flag,php4的彩蛋

    今天看了一些代码,看到了一个小彩蛋. /* env.php */ phpinfo(); ?> 用浏览器访问 http://ipaddress/dirname/env.php?=PHPE9568F ...

  5. 一次Mysql服务不断重启排查,原因竟然是它

    前段时间,有测试人员联系我,需求帮助,让我帮忙看看,测试环境的一台mysql数据库不断的重启,导致他们的测试无法进行,时间拖的长了,会影响上线进度. 问题描述 在一个测试环境,mysql5.7部署在c ...

  6. 带轮轮毂长度l和带轮宽b表_B型V带轮的轮缘宽B_轮毂孔径D和轮毂长L.doc

    ---------B型V带轮的轮缘宽B,轮毂孔径D和轮毂长L-------- 轮槽数z 轮缘宽B 基准直径dd 轮毂孔径d 轮毂长度L 4 82 400 65 70 4 82 450 65 70 4 ...

  7. 带轮轮毂长度l和带轮宽b表_A型V带轮的轮缘宽B,轮毂孔径D和轮毂长L.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械理论及资料 A型V带轮的轮缘宽B,轮毂孔径D和轮毂 ...

  8. 基于CodeMirrorTernJS的汉语Javascript编辑器(和翻译器)

    http://www.ternjs.net/ TernJS.net提供了一个DEMO,正是支持语法高亮和智能感知的Javascript编辑器:于是我突发奇想,修改其中的Javascript parse ...

  9. r语言alasso的系数怎么看_R语言用msgps包做adaptive lasso,系数怎么提取啊?

    library(msgps) x=as.matrix(w[,2:11]);y=(w[,12]);x2=as.matrix(w[,13:76]) al=msgps(x2,y,penalty=" ...

最新文章

  1. HEAD元素使用集锦
  2. 世界上最大的超级计算机,科学网—区块链(blockchain)如何能造出世界上最大的超级计算机? - 刘进平的博文...
  3. 地球5000年变化全景动画——看完叹了口气:整个世界安静了
  4. nginx+tomcat的负载均衡
  5. css网页布局中文字排版的属性和用法
  6. codeforces229 D. Towers(dp+贪心)
  7. GIS实战应用案例100篇(一)-GEE主成分分析(含代码)
  8. Android 加入一个动作按钮
  9. Linux bash符号及含义,Linux下用bash命令执行名称中带有(符号的目录注意事项
  10. ios 判断数字大小_iOS开发积累2
  11. mpAndroidchart 坐标和图表距离_几个小细节--图表那些事
  12. java靜態常量_Java靜態變量、靜態常量、靜態方法
  13. jQuery WeUI日历calendar时间段(开始日期默认选中日期是今天,结束日期设置最小日期),显示日期格式是yyyy年mm月dd日
  14. fileupload的回调方法_fileupload指令实现
  15. PHP-laravel框架一1
  16. TPshop登录接口测试
  17. 01 什么是数据结构
  18. 回旋图形c语言编程,回旋形构成形式解析与应用研究.docx
  19. 应用安装失败“The application could not be installed: INSTALL_FAILED_USER_RESTRICTED”问题解决
  20. 1*1卷积核的作用(bottleneck的作用)

热门文章

  1. php连接mysql_PHP连接MySQL数据库的三种方式
  2. matlab怎么整合成一个模块,Matlab如何将m文件制定成模块
  3. 成功人士都有的好习惯
  4. java 本地方法栈_Java虚拟机栈和本地方法栈
  5. android view getwidth 0,Android中View.getWidth()和View.getMeasuredWidth()的区别
  6. react-router 源码浅析
  7. 小程序绘图工具painter-json文件绘制保存分享图-可点击任意元素触发函数
  8. HTML 中点击a标签,页面跳转执行过程
  9. BEM思想之彻底弄清BEM语法
  10. NSMutableDictionary中 setValue和setObject的区别