首页
社区
课程
招聘
[求助]dot net il 初学.
2011-7-26 15:23 4331

[求助]dot net il 初学.

2011-7-26 15:23
4331
IL_002b:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
    IL_0030:  callvirt   instance string [mscorlib]System.String::Trim()
    IL_0035:  ldstr      bytearray (AB 99 AD 98 AF 81 B1 8A B3 82 B5 87 )
    IL_003a:  ldloc      V_2
    IL_003e:  call       string a$PST06000001(string,
                                              int32)
    IL_0043:  call       bool [mscorlib]System.String::op_Equality(string,
                                                                   string)
    IL_0048:  ldc.i4.0
    IL_0049:  ceq
    IL_004b:  stloc.0
    IL_004c:  ldc.i4.1
    IL_004d:  br.s       IL_0052

    IL_004f:  ldc.i4.0
    IL_0050:  br.s       IL_0052

    IL_0052:  brfalse.s  IL_0054

请问上面 OP_Equailty 比较的两个字符串各是多少 从哪里可以看出来
dot net 他的字符串怎么搜索?
如果想在 OD里 下断 OP_Equality  如果通过 il 知道地址?

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
lelfei 23 2011-7-26 16:15
2
0
il都是针对堆栈的操作,第一个callvirt获取文本并放入堆栈,第二个callvirt获取堆栈中的字符串并去掉前后空格然后放入堆栈,然后载入字节数组放入堆栈,那个比较命令取出这二个值进行比较,将比较的结果放入堆栈中
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
claudedb 1 2011-7-27 11:55
3
0
一个参数
    a$PST06000001(bytearray (AB 99 AD 98 AF 81 B1 8A B3 82 B5 87 ),V2)

    ldstr      bytearray (AB 99 AD 98 AF 81 B1 8A B3 82 B5 87 )
    IL_003a:  ldloc      V_2
    IL_003e:  call       string a$PST06000001(string,
                                              int32)

另一个参数
System.Windows.Forms.Control::get_Text().Trim()

IL_002b:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
    IL_0030:  callvirt   instance string [mscorlib]System.String::Trim()
游客
登录 | 注册 方可回帖
返回