首页
社区
课程
招聘
开个头,帖一个小工具HexToStr
发表于: 2004-10-18 13:47 10343

开个头,帖一个小工具HexToStr

2004-10-18 13:47
10343
附件:HexToStr.rar

有时分析代码的时候有很多字符串常量,在调试器下就变成了16进制的ASCII码,有时这些字符串也能帮助你的分析,我以前是照着ASCII码表进行手工转换的,后来写了一个小工具方便多了。。。

像某壳的下面这一段代码

方便多了。。。

00461220     0F84 E5010000        je UnpackMe.0046140B                                ;跳出这个循环了
00461226     8138 45786974        cmp dword ptr ds:[eax],74697845              ; ExitProcess
0046122C     75 19                jnz short UnpackMe.00461247
0046122E     8178 04 50726F63     cmp dword ptr ds:[eax+4],636F7250
00461235     75 10                jnz short UnpackMe.00461247
00461237     8178 08 65737300     cmp dword ptr ds:[eax+8],737365
0046123E     75 07                jnz short UnpackMe.00461247
00461240     68 C7030000          push 3C7
00461245   ^ EB BC                jmp short UnpackMe.00461203
00461247     8138 56697274        cmp dword ptr ds:[eax],74726956              ; VirtualAlloc
0046124D     75 1F                jnz short UnpackMe.0046126E
0046124F     8178 04 75616C41     cmp dword ptr ds:[eax+4],416C6175
00461256     75 16                jnz short UnpackMe.0046126E
00461258     8178 08 6C6C6F63     cmp dword ptr ds:[eax+8],636F6C6C
0046125F     75 0D                jnz short UnpackMe.0046126E
00461261     8078 0C 00           cmp byte ptr ds:[eax+C],0
00461265     75 07                jnz short UnpackMe.0046126E
00461267     68 CB030000          push 3CB
0046126C   ^ EB 95                jmp short UnpackMe.00461203
0046126E     8138 56697274        cmp dword ptr ds:[eax],74726956              ; VirtualFree
00461274     75 1C                jnz short UnpackMe.00461292
00461276     8178 04 75616C46     cmp dword ptr ds:[eax+4],466C6175
0046127D     75 13                jnz short UnpackMe.00461292
0046127F     8178 08 72656500     cmp dword ptr ds:[eax+8],656572
00461286     75 0A                jnz short UnpackMe.00461292
00461288     68 CF030000          push 3CF
0046128D   ^ E9 71FFFFFF          jmp UnpackMe.00461203
00461292     8138 43726561        cmp dword ptr ds:[eax],61657243              ; CreateMutexA
00461298     75 1C                jnz short UnpackMe.004612B6
0046129A     8178 04 74654D75     cmp dword ptr ds:[eax+4],754D6574
004612A1     75 13                jnz short UnpackMe.004612B6
004612A3     8178 08 74657841     cmp dword ptr ds:[eax+8],41786574
004612AA     75 0A                jnz short UnpackMe.004612B6
004612AC     68 D3030000          push 3D3
004612B1   ^ E9 4DFFFFFF          jmp UnpackMe.00461203
004612B6     8138 4F70656E        cmp dword ptr ds:[eax],6E65704F              ; OpenProcess
004612BC     75 1C                jnz short UnpackMe.004612DA
004612BE     8178 04 50726F63     cmp dword ptr ds:[eax+4],636F7250
004612C5     75 13                jnz short UnpackMe.004612DA
004612C7     8178 08 65737300     cmp dword ptr ds:[eax+8],737365
004612CE     75 0A                jnz short UnpackMe.004612DA
004612D0     68 DB030000          push 3DB
004612D5   ^ E9 29FFFFFF          jmp UnpackMe.00461203
004612DA     8138 47657443        cmp dword ptr ds:[eax],43746547              ; GetCurrentProcessId
004612E0     75 2E                jnz short UnpackMe.00461310
004612E2     8178 04 75727265     cmp dword ptr ds:[eax+4],65727275
004612E9     75 25                jnz short UnpackMe.00461310
004612EB     8178 08 6E745072     cmp dword ptr ds:[eax+8],7250746E
004612F2     75 1C                jnz short UnpackMe.00461310
004612F4     8178 0C 6F636573     cmp dword ptr ds:[eax+C],7365636F
004612FB     75 13                jnz short UnpackMe.00461310
004612FD     8178 10 73496400     cmp dword ptr ds:[eax+10],644973
00461304     75 0A                jnz short UnpackMe.00461310
00461306     68 D7030000          push 3D7
0046130B   ^ E9 F3FEFFFF          jmp UnpackMe.00461203
00461310     8138 56697274        cmp dword ptr ds:[eax],74726956              ; VirtualProtectEx
00461316     75 25                jnz short UnpackMe.0046133D
00461318     8178 04 75616C50     cmp dword ptr ds:[eax+4],506C6175
0046131F     75 1C                jnz short UnpackMe.0046133D
00461321     8178 08 726F7465     cmp dword ptr ds:[eax+8],65746F72
00461328     75 13                jnz short UnpackMe.0046133D
0046132A     8178 0C 63744578     cmp dword ptr ds:[eax+C],78457463
00461331     75 0A                jnz short UnpackMe.0046133D
00461333     68 DF030000          push 3DF
00461338   ^ E9 C6FEFFFF          jmp UnpackMe.00461203
0046133D     8138 43726561        cmp dword ptr ds:[eax],61657243              ; CreateFileA
00461343     75 1C                jnz short UnpackMe.00461361
00461345     8178 04 74654669     cmp dword ptr ds:[eax+4],69466574
0046134C     75 13                jnz short UnpackMe.00461361
0046134E     8178 08 6C654100     cmp dword ptr ds:[eax+8],UnpackMe.0041656C
00461355     75 0A                jnz short UnpackMe.00461361
00461357     68 EB030000          push 3EB
0046135C   ^ E9 A2FEFFFF          jmp UnpackMe.00461203
00461361     8138 436C6F73        cmp dword ptr ds:[eax],736F6C43              ; CloseHandle
00461367     75 1C                jnz short UnpackMe.00461385
00461369     8178 04 6548616E     cmp dword ptr ds:[eax+4],6E614865
00461370     75 13                jnz short UnpackMe.00461385
00461372     8178 08 646C6500     cmp dword ptr ds:[eax+8],656C64
00461379     75 0A                jnz short UnpackMe.00461385
0046137B     68 E3030000          push 3E3
00461380   ^ E9 7EFEFFFF          jmp UnpackMe.00461203
00461385     8138 52656164        cmp dword ptr ds:[eax],64616552              ; ReadFile
0046138B     75 19                jnz short UnpackMe.004613A6
0046138D     8178 04 46696C65     cmp dword ptr ds:[eax+4],656C6946
00461394     75 10                jnz short UnpackMe.004613A6
00461396     8078 08 00           cmp byte ptr ds:[eax+8],0
0046139A     75 0A                jnz short UnpackMe.004613A6
0046139C     68 E7030000          push 3E7
004613A1   ^ E9 5DFEFFFF          jmp UnpackMe.00461203
004613A6     8138 4765744D        cmp dword ptr ds:[eax],4D746547              ; GetModuleFileNameA
004613AC     75 2D                jnz short UnpackMe.004613DB
004613AE     8178 04 6F64756C     cmp dword ptr ds:[eax+4],6C75646F
004613B5     75 24                jnz short UnpackMe.004613DB
004613B7     8178 08 6546696C     cmp dword ptr ds:[eax+8],6C694665
004613BE     75 1B                jnz short UnpackMe.004613DB
004613C0     8178 0C 654E616D     cmp dword ptr ds:[eax+C],6D614E65
004613C7     75 12                jnz short UnpackMe.004613DB
004613C9     66:8178 10 6541      cmp word ptr ds:[eax+10],4165
004613CF     75 0A                jnz short UnpackMe.004613DB
004613D1     68 EF030000          push 3EF
004613D6   ^ E9 28FEFFFF          jmp UnpackMe.00461203
004613DB     8138 47657450        cmp dword ptr ds:[eax],50746547              ; GetProcAddre
004613E1   ^ 0F85 F1FDFFFF        jnz UnpackMe.004611D8
004613E7     8178 04 726F6341     cmp dword ptr ds:[eax+4],41636F72
004613EE   ^ 0F85 E4FDFFFF        jnz UnpackMe.004611D8
004613F4     8178 08 64647265     cmp dword ptr ds:[eax+8],65726464
004613FB   ^ 0F85 D7FDFFFF        jnz UnpackMe.004611D8
00461401     68 BF030000          push 3BF
00461406   ^ E9 F8FDFFFF          jmp UnpackMe.00461203

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (12)
雪    币: 211
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
这东西有什么用的,介绍一下!
2004-10-18 14:25
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最好能相互转换哟
2004-10-18 22:27
0
雪    币: 211
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
为了促进技术讨论,所以用几分钟打字,写一写反转换代码,以作大家参考使用:
BOOL Asc2HexStr(PCHAR pAsc,PCHAR pHexStrBuf,int iHexStrBufSize)
{
        if(!pAsc || !pHexStrBuf || !iHexStrBufSize ||
                strlen(pAsc)>=(iHexStrBufSize>>1))
        {
                return FALSE;
        }
       
        while((*pAsc)!=0)
        {
                sprintf(pHexStrBuf,"%02X",*((BYTE*)pAsc));
                pAsc++;
                pHexStrBuf += 2;       
        }
       
        *pHexStrBuf = 0;
       
        return TRUE;
}
2004-10-19 11:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大家好:
我写了个中文查看asc(又转化成16进制)
但不知如何将asc转化成中文,
请帮助!
谢过了!
2004-10-19 15:02
0
雪    币: 211
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
要是想处理中文,要先了解以下知识:
1.中文是以2个byte的形式保存的,如中国的"中",Hex为0xd6,0xd0;
2.如果我们对这一些内存作copy时,函数就不能用strcpy,而应用wcscpy,其它的字符串函数都类同,只要注意了这一些,就可以了!
2004-10-20 15:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
代码都有,有兴趣的同志可以自己在加工一下:)

附件:strAsc.rar
另,问一下1楼的朋友,
转换中:的buf为什么不能直接换成edString???
begin
    TryStrToInt('$' + edHex.Text[i] + edHex.Text[i + 1], Ascii);
    buf := buf + Chr(Ascii);  <<=buf换成edString.text为什么不行    i := i + 2;       
  end;

  if cbReverse.Checked then
    buf := ReverseString(buf);

  edString.Text := buf;
2004-10-20 23:57
0
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
顶,支持:p
2004-10-21 11:43
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
9
吐血支持啊~~~
大家以后可以讨论开发东东拉~~~
也可以偷窥北人的原代码欧,偷窥888醉!!!
:D :D
2004-11-1 11:10
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢分享!
2004-11-2 08:28
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
11
最初由 yubing 发布
代码都有,有兴趣的同志可以自己在加工一下:)

附件:strAsc.rar
另,问一下1楼的朋友,
转换中:的buf为什么不能直接换成edString???
........


你的buf是定义的什么类型?
2004-11-2 13:10
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
不能 反向转换 呵呵
2004-12-23 13:45
0
雪    币: 222
活跃值: (145)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
收藏。。学习
2004-12-26 10:53
0
游客
登录 | 注册 方可回帖
返回
//