Skip to content

Commit 15a1bc7

Browse files
committed
修复栈溢出
1 parent c856481 commit 15a1bc7

File tree

9 files changed

+32
-3
lines changed

9 files changed

+32
-3
lines changed

dhook.sqlite

36.1 MB
Binary file not shown.

src/main/java/com/keven1z/controller/AgentController.java

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public int update(@RequestParam(value = "id") String id, String name) {
6666
*/
6767
@GetMapping("/del")
6868
public int del(String agentId) {
69+
classMapService.delete(agentId);
6970
return agentService.delete(agentId);
7071
}
7172

src/main/java/com/keven1z/controller/HookController.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ public ResponseEntity<Object> export(@RequestParam(value = "id") String id, Stri
130130
}
131131

132132
@PostMapping("/detail/add")
133-
public int addHookDetail(@RequestBody HookDetailEntity hookDetailEntity) {
134-
return hookService.addHookDetail(hookDetailEntity);
133+
public int addHookDetail(@RequestBody List<HookDetailEntity> hookDetailEntity) {
134+
return hookService.addHookDetails(hookDetailEntity);
135135
}
136136

137137
@GetMapping("/detail/find")
@@ -177,4 +177,8 @@ private static boolean inject(VirtualMachineDescriptor vmd,String agentPath) thr
177177
}
178178
return false;
179179
}
180+
181+
// public static void main(String[] args) throws Exception {
182+
// inject("cn.com.tcsec.goat.taint.TaintApplication","C:\\Users\\fbi\\Desktop\\gitProject\\DHookAgent\\target\\dHook.jar");
183+
// }
180184
}

src/main/java/com/keven1z/dao/IHookDao.java

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.keven1z.dao;
22

3+
import com.keven1z.entity.ClassMapEntity;
34
import com.keven1z.entity.HookDetailEntity;
45
import com.keven1z.entity.HookEntity;
56
import org.apache.ibatis.annotations.*;
@@ -93,6 +94,16 @@ public interface IHookDao {
9394
@Options(useGeneratedKeys=true, keyProperty="id")
9495
int addHookDetail(HookDetailEntity hookDetail);
9596

97+
@Insert("<script>" +
98+
"INSERT or ignore INTO hook_detail(hook_id, param, returnObject, thisObject,date,stacks) VALUES" +
99+
"<foreach collection=\"hookDetailEntities\" item=\"item1\" index=\"index\" separator=\",\">" +
100+
"(#{item1.hookId},#{item1.param},#{item1.returnObject},#{item1.thisObject},#{item1.date},#{item1.stacks})" +
101+
"</foreach>" +
102+
"</script>")
103+
@Result(column = "hook_id",property = "hookId")
104+
@Options(useGeneratedKeys=true, keyProperty="id")
105+
int addDetails(@Param(value="hookDetailEntities") List<HookDetailEntity> hookDetailEntities);
106+
96107
@Select("SELECT * FROM hook_detail WHERE id = #{id} order by date desc ")
97108
@Results(value={
98109
@Result(id = true,column = "id",property = "id"),

src/main/java/com/keven1z/netty/HeartBeatSimpleHandle.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ protected void channelRead0(ChannelHandlerContext ctx, CustomProtocol customProt
7070
NettySocketHolder.put(customProtocol.getId(), (NioSocketChannel) ctx.channel());
7171
String body = customProtocol.getBody();
7272
AgentEntity agentEntity = GsonUtil.toBean(body, AgentEntity.class);
73-
AgentUtil.register(agentEntity);
73+
try {
74+
AgentUtil.register(agentEntity);
75+
} catch (Exception e) {
76+
LOGGER.error("Register agent failed!reason:" + e.getMessage());
77+
}
7478
}
7579

7680
CustomProtocol protocol = HeartbeatInitializer.HeartQueue.poll();

src/main/java/com/keven1z/service/IHookService.java

+1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ public interface IHookService {
3030
HookDetailEntity findHookDetailById(int id);
3131
List<HookDetailEntity> findHookDetails();
3232
int addHookDetail(HookDetailEntity hookDetail);
33+
int addHookDetails(List<HookDetailEntity> hookDetails);
3334
}

src/main/java/com/keven1z/service/impl/HookServiceImpl.java

+4
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ public List<HookDetailEntity> findHookDetails() {
145145
public int addHookDetail(HookDetailEntity hookDetail) {
146146
return hookDao.addHookDetail(hookDetail);
147147
}
148+
@Override
149+
public int addHookDetails(List<HookDetailEntity> hookDetails) {
150+
return hookDao.addDetails(hookDetails);
151+
}
148152

149153
public boolean isInField(int fieldId,List<FieldEntity> fieldEntityList){
150154
for (FieldEntity fieldEntity:fieldEntityList){

src/main/java/com/keven1z/utils/AgentUtil.java

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.keven1z.entity.AgentEntity;
44
import com.keven1z.service.IAgentService;
5+
import com.keven1z.service.IClassMapService;
56
import org.springframework.stereotype.Component;
67

78
import javax.annotation.PostConstruct;
@@ -15,6 +16,8 @@
1516
public class AgentUtil {
1617
@Resource
1718
private IAgentService agentService;
19+
@Resource
20+
private IClassMapService classMapService;
1821

1922
public static AgentUtil agentUtil;
2023

@@ -28,5 +31,6 @@ public static void update(String id, int state, String time) {
2831
}
2932
public static void register(AgentEntity agentEntity) {
3033
agentUtil.agentService.register(agentEntity);
34+
agentUtil.classMapService.delete(agentEntity.getId());
3135
}
3236
}

src/main/resources/agent/dHook.jar

6.23 KB
Binary file not shown.

0 commit comments

Comments
 (0)