能力值:
( LV12,RANK:570 )
|
-
-
2 楼
|
能力值:
( LV9,RANK:290 )
|
-
-
3 楼
Thanks
|
能力值:
( LV9,RANK:170 )
|
-
-
4 楼
Good!
|
能力值:
( LV9,RANK:3410 )
|
-
-
5 楼
学习
第一篇公开的asp1.4脱壳笔记
|
能力值:
(RANK:10 )
|
-
-
6 楼
我认为attach的方法在某些时候脱出来的程序会发生莫名其妙的问题如果是在attach以后dump出来的程序,很多全局变量都是被初始化过了的,这就是为什么提倡在eop的时候dump(其实也不一定要在eop的时候dump,只要在壳解码完毕后dump都可以),很佩服
作者的运气..竟然能瞎撞到iat...我怎么就从来没有这么好的运气呢
.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
其实不要那个“碰到”的IAT也可以呀。fly那篇1.3的就是一个借鉴。
|
能力值:
( LV9,RANK:970 )
|
-
-
8 楼
用attach上的程序和壳比较一下就可以发现,壳的代码在程序运行后换成原程序的代码了。
我们要做的是恢复一份IAT。在进程空间bpx j,观察一下函数调用情况,都CALL到动态申请的空间了,有部分API没有处理。
看看一个地址项目:
call [cdca0c] cdca0c的内容是cdca18,去cdca18分析一下代码就可以找出原API地址。
(伪API代码cdca18紧接着cdca0c后面)
代码:--------------------------------------------------------------------------------
00CDCA18 33C0 XOR EAX,EAX
00CDCA1A 50 PUSH EAX
00CDCA1B 50 PUSH EAX
00CDCA1C 50 PUSH EAX
00CDCA1D FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00CDCA21 50 PUSH EAX
00CDCA22 F2: PREFIX REPNE: ; Superfluous prefix
00CDCA23 EB 01 JMP SHORT 00CDCA26
00CDCA25 90 NOP ==处理过花指令
00CDCA26 68 BF20C477 PUSH 77C420BF ==根据这个地址很容易就找出原API地址了
--------------------------------------------------------------------------------
有一个最苯的办法, 但却是最简单的办法,
把每一个调用都跟踪一遍, 就可确定 IAT.
100多个API, 半天时间. hehe
不用分析壳代码,自己分析也要半天时间吧.
当然要偷壳技术的例外.
|
能力值:
( LV12,RANK:570 )
|
-
-
9 楼
多谢pll621老大的提醒:D
StudentII大侠说的也对:)
to simonzh2000兄弟:好耐性:D :D
|
能力值:
( LV9,RANK:250 )
|
-
-
10 楼
文章不错,konfoo老兄你的那个软件通过api找地址好像并不好用。
|
能力值:
( LV12,RANK:570 )
|
-
-
11 楼
。。。没有到其它平台测试过:p
什么现象?
|
能力值:
( LV9,RANK:250 )
|
-
-
12 楼
win2000sp4
|
能力值:
( LV12,RANK:570 )
|
-
-
13 楼
找API名是用API地址找API名,比如输入77e7b65b就会找出是哪个API:D
|
能力值:
( LV9,RANK:250 )
|
-
-
14 楼
呵呵,搞错
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
呵呵........
好文章啊,不过看不懂啊!
菜啊!
买了本第二版的《加密与解密》,看了才一点呢。
恩,回家好好学了。
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
好!
|
能力值:
(RANK:1060 )
|
-
-
17 楼
这个方法直接dump然后dasm就……:D
不过还是支持。
|
能力值:
( LV12,RANK:570 )
|
-
-
18 楼
最初由 forgot 发布 这个方法直接dump然后dasm就……:D
详细点。。。不明白呢:(
|
能力值:
(RANK:1060 )
|
-
-
19 楼
最初由 kongfoo 发布
详细点。。。不明白呢:(
呵呵,开玩笑,不是说aspr1.4,像后来的样板弱壳直接dump用w32dasm找到iat嘛...
|
能力值:
( LV12,RANK:570 )
|
-
-
20 楼
oh i c :D
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
最初由 simonzh2000 发布 用attach上的程序和壳比较一下就可以发现,壳的代码在程序运行后换成原程序的代码了。 我们要做的是恢复一份IAT。在进程空间bpx j,观察一下函数调用情况,都CALL到动态申请的空间了,有部分API没有处理。 看看一个地址项目: call [cdca0c] cdca0c的内容是cdca18,去cdca18分析一下代码就可以找出原API地址。 (伪API代码cdca18紧接着cdca0c后面)
代码:-------------------------------------------------------------------------------- 00CDCA18 33C0 XOR EAX,EAX 00CDCA1A 50 PUSH EAX 00CDCA1B 50 PUSH EAX 00CDCA1C 50 PUSH EAX 00CDCA1D FF7424 10 PUSH DWORD PTR SS:[ESP+10] 00CDCA21 50 PUSH EAX 00CDCA22 F2: PREFIX REPNE: ; Superfluous prefix 00CDCA23 EB 01 JMP SHORT 00CDCA26 00CDCA25 90 NOP ==处理过花指令 00CDCA26 68 BF20C477 PUSH 77C420BF ==根据这个地址很容易就找出原API地址了 --------------------------------------------------------------------------------
有一个最苯的办法, 但却是最简单的办法, 把每一个调用都跟踪一遍, 就可确定 IAT.
100多个API, 半天时间. hehe 不用分析壳代码,自己分析也要半天时间吧. 当然要偷壳技术的例外.
把每一个调用都跟踪一遍,遇到这种情况怎么办?给点提示?
http://bbs.pediy.com/showthread.php?s=&threadid=947
|
能力值:
( LV12,RANK:570 )
|
-
-
22 楼
最初由 liuyilin 发布
把每一个调用都跟踪一遍,遇到这种情况怎么办?给点提示? http://bbs.pediy.com/showthread.php?s=&threadid=947
你被干扰啦:D
壳把API偷了过来,原API:(比较一下就可以发现怎样找原API了吧)
77D172EC > A1 60D0D677 MOV EAX,DWORD PTR DS:[77D6D060]
77D172F1 F640 02 04 TEST BYTE PTR DS:[EAX+2],4
77D172F5 56 PUSH ESI
77D172F6 8B7424 08 MOV ESI,DWORD PTR SS:[ESP+8]
77D172FA 0F85 6EE00200 JNZ USER32.77D4536E
77D17300 803E 00 CMP BYTE PTR DS:[ESI],0
77D17303 74 01 JE SHORT USER32.77D17306
77D17305 46 INC ESI
77D17306 8BC6 MOV EAX,ESI
77D17308 5E POP ESI
77D17309 C2 0400 RETN 4
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
我用od attack上某程序,然后按错了某fx建,od和程序同归于今了!^_^!
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
最初由 kongfoo 发布
你被干扰啦:D 壳把API偷了过来,原API:(比较一下就可以发现怎样找原API了吧)
77D172EC > A1 60D0D677 MOV EAX,DWORD PTR DS:[77D6D060] 77D172F1 F640 02 04 TEST BYTE PTR DS:[EAX+2],4 77D172F5 56 PUSH ESI 77D172F6 8B7424 08 MOV ESI,DWORD PTR SS:[ESP+8] 77D172FA 0F85 6EE00200 JNZ USER32.77D4536E 77D17300 803E 00 CMP BYTE PTR DS:[ESI],0 77D17303 74 01 JE SHORT USER32.77D17306 77D17305 46 INC ESI 77D17306 8BC6 MOV EAX,ESI 77D17308 5E POP ESI 77D17309 C2 0400 RETN 4
多谢kongfoo
麻烦你再看看这个API怎么跟??一直没有头绪???
0040467C FF15 A44B9A00 CALL DWORD PTR DS:[9A4BA4]
多谢
点击下载:附件!
|
能力值:
( LV12,RANK:570 )
|
-
-
25 楼
看到有MOV ECX,DWORD PTR DS:[77D6D060],77d6是user32的地址啦,
在user32中找这个命令,几次就可以找到了:
77D16349 > 8B0D 60D0D677 MOV ECX,DWORD PTR DS:[77D6D060]
77D1634F 8B91 F8080000 MOV EDX,DWORD PTR DS:[ECX+8F8]
77D16355 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
77D16359 8910 MOV DWORD PTR DS:[EAX],EDX
77D1635B 8B89 FC080000 MOV ECX,DWORD PTR DS:[ECX+8FC]
77D16361 8948 04 MOV DWORD PTR DS:[EAX+4],ECX
77D16364 33C0 XOR EAX,EAX
77D16366 40 INC EAX
77D16367 C2 0400 RETN 4
9a4ba8里面前面的几个指令只是干扰,没有作用的。
|
|
|